docs: add ECMWF Versioning (SemVer) policy and cross-link it#71
Open
tlmquintino wants to merge 7 commits into
Open
docs: add ECMWF Versioning (SemVer) policy and cross-link it#71tlmquintino wants to merge 7 commits into
tlmquintino wants to merge 7 commits into
Conversation
Replace the Versioning.md placeholder with the authoritative Semantic Versioning policy: tag format (clean x.y.z, no 'v' prefix), MAJOR/MINOR/PATCH bump rules, 0.y.z initial development, deprecation/compatibility, production vs prerelease (x.y.z-upstream.N) tags, single-source-of-truth (git tag), and — the previously missing piece — how to version multi-language / multi-package repositories under one version number (all artefacts released together; independent version lines imply separate repositories; compiled-wheel x.y.z.C build identifier). Cross-reference it from the documents that touch versioning: - Languages/README (index description), Guidelines/Branching, Guidelines/ External-Contributions (Tagging Rules), Languages/Python-Wheels, the open-source-audit skill's version-tag check, and the SMP release-strategy line. - Remove the resolved Versioning gap from TODO.md.
There was a problem hiding this comment.
Pull request overview
This PR replaces the placeholder versioning guidance with an authoritative ECMWF Semantic Versioning policy and cross-links that policy from other documents that reference version tags and release practices.
Changes:
- Add a complete
Languages/Versioning.mdpolicy covering SemVer bump rules, tag format (novprefix), prerelease vs production tags, and single-version guidance for multi-language repos. - Cross-link the new versioning policy from Branching, External Contributions, Python Wheels, the open-source-audit skill, and the Software Management Plan.
- Remove the now-resolved
Languages/Versioning.mdgap fromTODO.md.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| TODO.md | Removes the Versioning.md placeholder item from the gaps tracker. |
| Software Management Plan/README.md | Links SMP “Versioning system” guidance to the canonical Versioning policy. |
| Languages/Versioning.md | Adds the authoritative ECMWF SemVer/tagging/version-source-of-truth policy. |
| Languages/README.md | Updates the Languages index entry to describe and link the new Versioning policy. |
| Languages/Python-Wheels.md | Frames x.y.z.C wheel versioning as an extension of the base Versioning policy. |
| Guidelines/External-Contributions.md | Adds an explicit reference from Tagging Rules to the Versioning policy. |
| Guidelines/Branching.md | Notes release version numbers/tags follow the Versioning policy. |
| Agent Skills/open-source-audit/SKILL.md | Updates the SemVer tag check to cite Languages/Versioning.md. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ceholders (Copilot) - Versioning.md: x.y.z.N is a packaging/build identifier for wheels, not a SemVer version; the release version and git tag remain x.y.z. - Python-Wheels: correct the A/C placeholder swap so the example matches its own definition (multio=A, mir=B, eckit=C); rename the 4th-component counter to N to avoid clashing with eckit's version letter C.
…ion' (Copilot) - Python-Wheels: the later pip example now uses the consistent placeholders (multio.A.1/eckit.C.1/eckit.C+1.2); fix 'dully' -> 'duly'. - Versioning.md: 'used in production' instead of 'used in anger'.
… code (Copilot) - Versioning.md: git tag is the single source of truth; prefer deriving the version automatically; any in-repo version field is a single mirror that must match the tag. - Python-Wheels: format the x.y.z.N / N literals as inline code.
…s inline code (Copilot)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the versioning gap: the dedicated
Languages/Versioning.mdwas an emptyTODO, even though several documents (Branching, External Contributions, the open-source-audit skill, the SMP) already relied on a SemVer convention. This PR writes the authoritative ECMWF Versioning (SemVer) policy and cross-references it from every document that touches versioning.Languages/Versioning.md— what it coversMAJOR.MINOR.PATCHwith clear bump rules (MAJOR = breaking, MINOR = backwards-compatible feature/deprecation, PATCH = backwards-compatible fix).vprefix on ECMWF release tags (the form checked by theopen-source-auditskill), noting third-party action tags likeactions/checkout@v4keep their own convention.0.y.zinitial development and how it relates to Project Maturity.x.y.zonmain/masterfor production;x.y.z-upstream.Nfor non-production contractor/prerelease builds.setuptools_scm), generated_version.pynot committed.x.y.z.Cbuild identifier (which does not change thex.y.zrelease version).Cross-references added (so the policy is discoverable from everywhere versioning is mentioned)
Languages/README.md— index entry describes the policy.Guidelines/Branching.md— release tags follow the Versioning policy.Guidelines/External-Contributions.md— Tagging Rules point to the policy for the full definition.Languages/Python-Wheels.md— thex.y.z.Cscheme is framed as an extension of the base policy.Agent Skills/open-source-audit/SKILL.md— the version-tag check now citesLanguages/Versioning.md.Software Management Plan/README.md— the release-strategy versioning line links the policy.TODO.md— the resolved Versioning gap removed.Notes