Repository navigation
docs(adr): record prerelease version identity as ADR 0033 - #1383
Conversation
Publishing v0.6.0-rc.1 to crates.io, PyPI and npm contradicts the wording in ADR 0017, which permits per-ecosystem spelling only for development builds and requires a public release to be exactly MAJOR.MINOR.PATCH everywhere. The decision and that sentence cannot both stand. ADR 0017 is Accepted, and this repository's ADR policy states that accepted records are immutable and superseded rather than rewritten. So this is a new ADR that supersedes one sentence, not an edit in place. The invariant ADR 0017 exists to protect is untouched: one release still carries one logical version across every registry, and the recovery rule and single-surface prohibition are unchanged. What changes is that the version may carry a prerelease identifier, and that its spelling is derived per ecosystem. PEP 440 normalizes 0.6.0-rc.1 to 0.6.0rc1 whether or not the project agrees, so the Python spelling is a derived fact rather than a convention. This generalizes the allowance ADR 0017 already makes for -dev, .dev0 and -dev.0. Also records that a prerelease is never the default install. cargo and PyPI enforce that themselves; npm assigns latest when no dist-tag is given, so it is stated as policy and applies to all eight npm packages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Publishing
v0.6.0-rc.1to crates.io, PyPI and npm contradicts ADR 0017, which permits per-ecosystem spelling only for development builds and requires a public release to be exactlyMAJOR.MINOR.PATCHeverywhere. The decision and that sentence cannot both stand.Why a new ADR rather than an edit
The request was to amend ADR 0017. This repository's own policy says not to:
ADR 0017 is Accepted. So this supersedes one sentence of it, following the pattern ADR 0002 and ADR 0003 already use, with a
Supersedes:line naming the specific part that changes. ADR 0017 is untouched.What changes, and what does not
The invariant ADR 0017 exists to protect is unchanged. One release still carries one logical version across every registry. The shared release set, the recovery rule and the prohibition on advancing a single surface all stand.
Two things are added.
A release version may carry a prerelease identifier, and its spelling is derived per ecosystem.
0.6.0-rc.10.6.0-rc.10.6.0rc1This is not a new mechanism. ADR 0017 already sanctions three spellings of one development version,
-dev,.dev0and-dev.0. Prereleases get the same treatment. The Python spelling is what PEP 440 normalization produces, so it is a derived fact rather than a convention, and it is why five of the eight blockers recorded on #1378 are Python filename and metadata comparisons.A prerelease is never the default install. cargo and PyPI exclude prereleases from default resolution on their own. npm assigns
latestwhenever no dist-tag is given, regardless of prerelease status, so it is stated as policy and applies to all eight npm packages. A prerelease main package alongside alatestnative package is a divergence of exactly the kind ADR 0017 forbids.Evidence
packaging.version.Version:0.6.0-rc.1,0.6.0-rc1and0.6.0rc1all normalize to0.6.0rc1.vfrom the tag, asserts the tag equalsvplus that version, then requires the workspace version to match. Tagging around the restriction is not possible.Part of #1378.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.