Skip to content

fix(release): bump every train coordinate in the root README - #694

Merged
DemchaAV merged 1 commit into
developfrom
fix/release-readme-train-snippets
Sep 14, 2026
Merged

DemchaAV merged 1 commit into
developfrom
fix/release-readme-train-snippets

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

v2.4.0 shipped a README whose graph-compose-testing snippet read 2.3.0 beside graph-compose 2.4.0. The testing snippet arrived with #690, and the release commit bumped only the bare graph-compose coordinate:

  • Update-ReadmeInstallVersion rewrote the first graph-compose Maven and Gradle match, and nothing else.
  • VersionConsistencyGuardTest read the root README the same way.

The train is a tested-compatible set only at one version, so a reader following that page mixed two releases, with every gate green.

What changed

  • scripts/cut-release.ps1: the root README bump rewrites every graph-compose* coordinate, Maven and Gradle, and skips graph-compose-fonts and graph-compose-emoji. Update-ModuleReadmeInstallVersion already applies that rule to module READMEs and docs pages. The legacy JitPack fallback is unchanged.
  • VersionConsistencyGuardTest: readmeInstallSnippetsMatchTheProjectVersion keeps its graph-compose Maven and Gradle assertions.
    • It now also holds every GraphCompose coordinate on the page to the train version, and a companion to its own pom.
    • It reuses the coordinate scan from the docs/ check, extracted as coordinatesIn and driftIn. The docs check behaves as before.
  • .github/workflows/release-script-check.yml: a new unit check lifts Update-ReadmeInstallVersion by AST, like the checks around it, and asserts that something calls it. It then runs the function twice:
    • on a fixture, against an exact expected text: graph-compose and graph-compose-testing move, fonts and emoji stay, and a second run changes nothing;
    • on a copy of the real README: no train coordinate is left behind and no other line changes.
  • README.md: the graph-compose-testing snippet reads 2.4.0.
  • docs/contributing/release-process.md: §1 step 2 now says what the root README pass rewrites.

Verification

  • Before the README fix: VersionConsistencyGuardTest failed with README.md:196 graph-compose-testing advertises 2.3.0, expected one of [2.4.0]. After it, 23/23 pass.
  • Documentation guards: ./mvnw -B -ntp test -pl :graph-compose-core -Dtest=com.demcha.documentation.** gives BUILD SUCCESS with 145 tests. That includes the guards that parse cut-release.ps1: ReleaseAssetStepGuardTest, ReleaseKnowledgeGateGuardTest, ReleaseScriptGitExitCodeGuardTest, ReleaseScriptInstallListGuardTest and ReleaseScriptRoadmapGuardTest.
  • The new workflow step, run locally from the workflow file:
    • it passes on this branch, checking 3 README coordinates;
    • against a copy of the script with the bare-coordinate regexes restored, it fails with "the fixture did not bump to its expected text".
  • Dry run: cut-release.ps1 -Version 2.4.99 -Branch develop -DryRun -SkipShowcase exits 0 and reports the README Maven and Gradle bumps.
  • Hygiene: the script parses with 0 errors, and git diff --check is clean.

Lane: build. Covers the release script, its CI check, one guard test and two documentation lines; no library code.

v2.4.0 shipped a README whose graph-compose-testing snippet read 2.3.0 beside
graph-compose 2.4.0. Update-ReadmeInstallVersion rewrote only the first bare
graph-compose Maven and Gradle coordinate, and VersionConsistencyGuardTest read
the root README the same way. A second train coordinate on the page could fall a
release behind with every gate green.

- cut-release.ps1: the root README bump rewrites every graph-compose* coordinate,
  Maven and Gradle, skipping graph-compose-fonts and graph-compose-emoji. That is
  the rule Update-ModuleReadmeInstallVersion already applies.
- VersionConsistencyGuardTest: the README check holds every GraphCompose
  coordinate on the page to the train version, and a companion to its own pom. It
  uses the coordinate scan the docs/ check uses, now shared as coordinatesIn and
  driftIn.
- release-script-check.yml: a unit check lifts the bump by AST and runs it on a
  fixture with an exact expected result, then on the real README.
- README.md: the graph-compose-testing snippet reads 2.4.0.
- release-process.md: says what the root README pass rewrites.
@DemchaAV
DemchaAV merged commit 930ab98 into develop Sep 14, 2026
14 checks passed
@DemchaAV
DemchaAV deleted the fix/release-readme-train-snippets branch September 14, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant