fix(semver): implement §11 prerelease precedence in semver_compare (post-#329 follow-up) #347
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#347
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Anchor
Surveyor
bf37observation on #344 (which closed #329):semver_compareignores prerelease precedence per SemVer 2.0.0 §11. Correct for release-tag comparison (rarely prerelease post-cut), harmless for #344's scope, but the likely NEXT cold-read completeness observation.Current behavior
scripts/lib/semver.sh:semver_comparecompares major/minor/patch only. Prerelease + build metadata ignored:Correct behavior per SemVer 2.0.0 §11
"When major, minor, and patch are equal, a pre-release version has lower precedence than a normal version." Plus field-by-field ordering rules for prerelease identifiers (numeric < alphanumeric, numeric identifiers compared numerically, alphanumeric compared lexically, shorter set of dot-separated identifiers has lower precedence when otherwise equal).
Build metadata (
+...) is IGNORED in precedence per spec.Scope
semver_compareto walk prerelease identifiers per §111.0.0-alpha < 1.0.0)1.0.0-1 < 1.0.0-alpha)1.0.0-alpha.1 < 1.0.0-alpha.2)1.0.0-alpha < 1.0.0-alpha.1)1.0.0+build1 == 1.0.0+build2)Priority
priority/mediumsize/M— not currently v1.0.0-blocking because our release-tag comparison use case is always release-vs-release (no prerelease in the manifest state). But the likely NEXT cold-read completeness observation on the SemVer axis; folding pre-cut keeps the success criterion clear.Related
bf37adversarial review notes on #344 — the surface for this trackerAnchor: pre-v1.0.0 sprint (Bosun 7f3e), Surveyor bf37 forward-look observation.