Skip to content

chore(build): inherit module versions via aggregator reactor#69

Merged
DemchaAV merged 1 commit into
developfrom
chore/version-inheritance-reactor
May 29, 2026
Merged

chore(build): inherit module versions via aggregator reactor#69
DemchaAV merged 1 commit into
developfrom
chore/version-inheritance-reactor

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Summary

  • examples and benchmarks now inherit their version from a new, non-published graphcompose-build aggregator (aggregator/pom.xml, packaging=pom) instead of pinning a literal.
  • Removes the hardcoded <graphcompose.version> in benchmarks/pom.xml that caused version drift after a bump — the benchmark dependency now tracks ${project.version}.
  • The library root pom.xml is unchanged, so JitPack coordinates and consumers are unaffected.
  • A single mvn -f aggregator/pom.xml versions:set -DnewVersion=X now bumps every module atomically.

Why

After a version bump, benchmarks kept building against the previous GraphCompose release because its version was an independent literal. Maven forbids a jar-packaging POM as a <parent>, so the parent is the aggregator (packaging=pom); the library stays a standalone module in the reactor (..).

Test plan

  • mvnw -DskipTests install (JitPack-faithful, root unchanged) — BUILD SUCCESS
  • mvnw -f aggregator/pom.xml -DskipTests install — library + examples + benchmarks build with inherited versions
  • mvnw -f aggregator/pom.xml versions:set -DnewVersion=1.6.5-TEST propagated to all 4 POMs, 0 stale (reverted)
  • mvnw clean verify -pl . — 990 tests green
  • All 26 examples regenerate, no layout errors

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.
@DemchaAV DemchaAV merged commit 2cb6c3c into develop May 29, 2026
9 checks passed
@DemchaAV DemchaAV deleted the chore/version-inheritance-reactor branch May 29, 2026 01:38
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.
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.
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