Skip to content

Handle semver rule #4 in ABI check (major version zero)#57

Merged
thetic merged 1 commit into
mainfrom
abi-semver-rule4
Apr 16, 2026
Merged

Handle semver rule #4 in ABI check (major version zero)#57
thetic merged 1 commit into
mainfrom
abi-semver-rule4

Conversation

@thetic
Copy link
Copy Markdown
Owner

@thetic thetic commented Apr 16, 2026

Description

Under semver rule #4, major version zero (0.y.z) is for initial development — anything may change at any time. abi_check.sh previously applied stable-version rules unconditionally, so a 0.y.z patch bump would fail on any ABI change and breaking changes could never be allowed at all (no major bump is coming any time soon).

This change adds a separate rule path for major == 0:

  • patch bump (0.y.z0.y.z+1): compatible ABI additions are allowed
  • minor bump (0.y.z0.y+1.0): all ABI changes (including incompatible) are allowed
  • Stable-version rules (major >= 1) are unchanged.

Related Issues

Fixes # (issue number)

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Manual Verification (Optional)

Not applicable (script logic change, verified by reading the decision table).

Checklist

  • I have written/updated documentation in docs/ for any user-facing changes.
  • My code follows the project's naming conventions (mu::tiny namespace, INCLUDED_MUTINY_ guards, mutiny_ C-prefix).
  • For new features, I have considered if a C-interface adapter (.h and .c.cpp) is required for parity.
  • I have reviewed the CONTRIBUTING.md file to ensure compliance with architectural guidelines.

Under semver rule #4, major version zero (0.y.z) is for initial
development where anything may change. Align abi_check.sh with this:
minor bump allows incompatible ABI changes, patch bump allows compatible
ABI additions (formerly forbidden), and stable-version logic is
unchanged.
@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 98.753%. remained the same — abi-semver-rule4 into main

@thetic thetic merged commit 60b6bb2 into main Apr 16, 2026
40 checks passed
@thetic thetic deleted the abi-semver-rule4 branch April 16, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants