Skip to content

Commit e9b0a73

Browse files
dmealingclaude
andcommitted
docs(changelog): record the Maven-coordinate consolidation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NTcEKXTQMYt84fAjuw5A2M
1 parent 663f67d commit e9b0a73

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,35 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
77

88
## [Unreleased]
99

10+
### Fixed — four release scripts derived the Maven coordinate and two were wrong
11+
12+
ADR-0035's decoupled cut fixes the JVM major at **`npm major + 7`**, so `1.0.0` on
13+
npm/PyPI/NuGet is `8.0.0` on Maven Central. Four scripts each worked that out for themselves:
14+
`finish-release.mjs` (correct, rationale written out); `release-verify.mjs` (correct, but only
15+
since it was fixed for asking Central for `7.0.0` — a version *below* the last release — and
16+
would have reported all nine live modules missing); **`prerelease.mjs`** (`const MAVEN_MAJOR =
17+
7`, so a `1.0.0` base derives `7.0.0-rc.N` — the same defect, still shipped, in the script that
18+
PUBLISHES); and **`release.mjs`** (prints `java-v7.<minor>.<patch>` as the tag to create — an
19+
instruction to a human, and therefore the hardest of the four to catch, because nothing
20+
executes it and no gate reads it).
21+
22+
Two of those are one defect wearing a different hat, which is what a rule with four doors
23+
eventually produces. `scripts/maven-coordinate.mjs` is now the single derivation and all four
24+
import it; no hardcoded `7` remains outside it.
25+
26+
**The 1.0 cases are the whole reason it needs a test:** every one of them is a version this
27+
repo has never released, which is exactly how two derivations stayed wrong with every gate
28+
green. The test pins the historical `0.x` mappings unchanged, the `1.0`/`2.0` majors, an RC
29+
suffix surviving verbatim (`1.0.0-rc.5` → `8.0.0-rc.5`), and malformed input throwing rather
30+
than deriving a plausible-looking wrong coordinate. It runs in `gate_release_tag`, beside the
31+
tag gate it serves. `finish-release.test.ts` copies the script under test into a temp tree, so
32+
it now copies the module too — a REAL copy, not a stub, because a stub would let that suite
33+
pass while the shipped derivation was wrong.
34+
35+
Verified end to end rather than by inspection: `release-verify.mjs 1.0.0-rc.5
36+
--registries=maven` derives `8.0.0-rc.5` through the shared module and finds all nine modules
37+
live on Central.
38+
1039
### Fixed — the 1.0 upgrade path told adopters to destroy records 1.0 keeps
1140

1241
`verified-by-retirement.md` §2 says, in bold, *"Not 'change its status' — **delete the

0 commit comments

Comments
 (0)