docs: a SemVer compliance section, and what four tools do with a version #21
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
actions/changelog!21
Loading…
Reference in a new issue
No description provided.
Delete branch "mikluko/octant/1724-semver-compliance"
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?
Octant: T1724, on map D1726. Docs only — no behaviour changes.
The README said what this action reads and nothing about how the versions it emits behave once they leave. Each of these is documented where its own tool lives and nowhere near the specification, so a reader holding a valid version had no way to meet one except by running into it.
The constraint the section is written under
No assumptions about what the reader does with a version. Not your deploy will fail, not your chart will not reconcile. Each entry states what a named tool does, under what input, and stops.
Read rather than recalled
Every claim was checked against a primary source in this session, and each entry names the version it was read against.
x/mod/semvergo docon v0.40.0 — the two deviations are declared in its own package doc, andCanonicaldocuments discarding build metadataMasterminds/semver/v3getTagBySemverfetched fromfluxcd/source-controller, release v1.9.5distribution-spec/spec.md, plusgit check-ref-formatfor the disagreementTwo things the checking sharpened beyond the ticket:
-0on the constraint literal that admits pre-releases, not the range's width.>=0.0.0rejects1.2.3-rc.1and>=0.0.0-0accepts it;^1.0.0rejects and^1.0.0-0accepts. The ticket had one example (1.2.x-0) and read it as a width question.Masterminds/semver/v3itself. So itsspec.ref.semverinherits the pre-release rule, andsemver: "*"collects no pre-release tag at all — selection never gets a chance to rank one. The ticket had matching and selection as two separate facts; they chain.Also stated
This project's own two departures, which nothing outside a test records: the
uint64bound on a component, and a git tag being read more loosely than a heading (leadingv, andMAJOR/MAJOR.MINORshorthand, so a movingv1reads as a version).gen-readmeleaves the section alone — only the check table between the markers is generated. Suite green,vetandgofmtclean, and the document still readsvalid=true.