test(build): guard version consistency across modules and README#70
Merged
Conversation
examples and benchmarks inherit their version from a new, non-published
graphcompose-build aggregator (pom packaging) instead of hardcoding it.
Removes the benchmarks graphcompose.version literal that caused drift
after a bump; the dependency now tracks ${project.version}. The library
root pom.xml is unchanged so JitPack coordinates are unaffected. A single
`mvn -f aggregator/pom.xml versions:set -DnewVersion=X` bumps every
module atomically.
VersionConsistencyGuardTest asserts the GraphCompose version is identical
across pom.xml, the aggregator, and the inherited examples/benchmarks
modules, that benchmarks derives its dependency from ${project.version}
rather than a literal, and that the README install snippets match. Wires
it into the fast CI guard job so a bump that misses a module — the drift
that let benchmarks build against the previous release — fails fast.
4 tasks
DemchaAV
added a commit
that referenced
this pull request
May 29, 2026
…cut (#71) After the aggregator-reactor change (#69) the version lives in the library pom, the aggregator, and the children's inherited <parent> refs — but cut-release.ps1 bumped only three POMs (skipping the aggregator) and never touched the README JitPack snippets. A cut would have failed the new version guard (#70) and shipped a stale README install snippet. cut-release.ps1 now also bumps aggregator/pom.xml and rewrites the README Maven + Gradle install snippets to the release tag in the same release commit (Phase 2.3: README version flips at release-execution time), and stages both files.
4 tasks
DemchaAV
added a commit
that referenced
this pull request
May 29, 2026
…ase.yml (#74) Updates the release runbook to match the v1.6.5 plumbing (#69 #70 #71 #72 #73): - README install snippets now flip in the release commit (cut-release.ps1), enforced by VersionConsistencyGuardTest — replaces the old "stay pinned to the previous tag, flip post-release" model that contradicted the guard. - Version lives in four sites (library pom, aggregator, inherited examples/benchmarks parents); the script bumps all four + README in one pass. - GitHub Release is created automatically by release.yml on tag push; the manual gh release create is now the documented fallback. - Adds VersionConsistencyGuardTest to the pre-release guard-suite gate, and a v1.6.5 lesson that supersedes the v1.6.0 graphcompose.version property note. The graphcompose-release-engineer skill (local config, Claude + Codex copies) was aligned in lockstep.
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
VersionConsistencyGuardTestasserting the GraphCompose version is identical acrosspom.xml, the aggregator, and the inheritedexamples/benchmarksmodules; thatbenchmarksderives its dependency from${project.version}(no literal); and that the README install snippets match.ci.yml) next to the existing architecture/documentation guards.Why
Locks in the version model from #69 so a future bump that misses a module — or leaves the README snippet stale — fails CI fast instead of silently shipping a drifted benchmark.
Notes
chore/version-inheritance-reactor(chore(build): inherit module versions via aggregator reactor #69). Base retargets todeveloponce chore(build): inherit module versions via aggregator reactor #69 merges.benchmarksgraphcompose.versionmakesbenchmarksDependencyDerivesVersionAndIsNotHardcodedfail.Test plan
VersionConsistencyGuardTest— 4/4 greenmvnw clean verify -pl .— 994 tests green