Skip to content

chore: rename Maven artifactId graphcompose -> graph-compose ahead of Central debut#105

Merged
DemchaAV merged 1 commit into
developfrom
chore/rename-artifact-to-graph-compose
May 31, 2026
Merged

chore: rename Maven artifactId graphcompose -> graph-compose ahead of Central debut#105
DemchaAV merged 1 commit into
developfrom
chore/rename-artifact-to-graph-compose

Conversation

@DemchaAV
Copy link
Copy Markdown
Owner

Summary

Reads better on Maven Central. Done now while there is still no artefact on Central to break — the v1.6.6 cut will be the first publish, and we choose hyphenated coordinates from day one. After v1.6.6 ships under `graph-compose`, this rename becomes irreversible without coordinating two artifactIds in parallel.

What renames

Site Before After
Root library `graphcompose` `graph-compose`
Reactor parent `graphcompose-build` `graph-compose-build`
Examples module `graphcompose-examples` `graph-compose-examples`
Benchmarks module `graphcompose-benchmarks` `graph-compose-benchmarks`

What stays

  • Internal Maven property `<graphcompose.version>` — build-tool wiring, not a documented coord; renaming would ripple across every `${graphcompose.version}` reference for zero external benefit
  • System properties like `-Dgraphcompose.visual.approve` — behaviour flags, not coords
  • Java package `com.demcha.compose` and the brand class `GraphCompose` — the rename is a coord-level concern, not a brand or codebase rename
  • Historical lessons-learned in `docs/contributing/release-process.md` §167-169 — they describe what happened with the old artifactId at the time

Files (15 total)

  • 4 poms atomically: `pom.xml` + `aggregator/pom.xml` + `examples/pom.xml` + `benchmarks/pom.xml` (parents, deps, finalNames)
  • 2 forward-facing user docs: README install snippet + Maven Central badge + javadoc.io URL + Distribution note; `docs/index.html` JSON-LD downloadUrl + Maven + Gradle install snippet panels
  • 5 supporting docs: `CONTRIBUTING.md`, `SECURITY.md`, `ROADMAP.md`, `docs/templates/which-template-system.md`, `docs/roadmaps/v1.6-roadmap.md`, `docs/contributing/release-process.md` — all coord references updated
  • CHANGELOG v1.6.6 Planned: hero paragraph rewritten to call out the hyphenated artifactId, JitPack legacy notice clarified, javadoc.io URL flipped
  • `scripts/cut-release.ps1`: primary regex switches to `graph-compose`, legacy `graphcompose` and JitPack regexes kept as ordered fallbacks
  • `VersionConsistencyGuardTest`: regex list extended to try `graph-compose` first, then `graphcompose`, then the JitPack format — passes on any of the three during the transition

Test plan

  • 4-pom dependency resolution OK
    • `./mvnw -DskipTests install -pl .` → BUILD SUCCESS
    • `./mvnw -f examples/pom.xml clean compile` → BUILD SUCCESS
    • `./mvnw -f benchmarks/pom.xml clean compile` → BUILD SUCCESS
  • Guard suite: `CanonicalSurfaceGuardTest + DocumentationExamplesTest + DocumentationCoverageTest + VersionConsistencyGuardTest + PublicApiNoEngineLeakTest + SemanticLayerNoPdfBoxDependencyTest` = 33/0/0
  • `GenerateAllExamples` → exit 0, 53 PDFs, no layout errors
  • CI: standard guard suite + JDK 17/21/25 + binary-compat + examples smoke + perf smoke

After merge

`develop` carries `graph-compose` as the canonical Maven Central artifactId. At v1.6.6 cut, the artefact ships to Central under `io.github.demchaav:graph-compose:1.6.6` — the coordinate users see and copy from day one is the readable form.

… Central debut

Reads better on Maven Central. Done now while there is still no
artefact on Central to break — the v1.6.6 cut will be the first
publish, and we choose hyphenated coordinates from day one.

All four artefacts rename:
- root library    graphcompose            -> graph-compose
- reactor parent  graphcompose-build      -> graph-compose-build
- examples module graphcompose-examples   -> graph-compose-examples
- benchmarks      graphcompose-benchmarks -> graph-compose-benchmarks

The internal Maven property <graphcompose.version> stays as-is — it
is build-tool wiring, not a documented coord, and renaming it would
ripple across every ${graphcompose.version} reference for zero
external benefit. Same for system properties like
-Dgraphcompose.visual.approve and the Java package
com.demcha.compose: the rename is a coord-level concern, not a
brand or codebase rename.

Build chain updated atomically (4 poms) so dependency resolution
keeps working end-to-end: examples/pom.xml + benchmarks/pom.xml
parent refs flip to graph-compose-build, their library dep flips
to graph-compose, and the property they read (graphcompose.version)
still resolves from the same source via the reactor.

Forward-facing docs all switch to the new coord:
- README install snippet (Maven + Gradle) + the Maven Central badge
  URL + the "Distribution" note + the javadoc.io URL
- docs/index.html JSON-LD downloadUrl + the Maven + Gradle install
  snippet panels
- CONTRIBUTING.md release-flow javadoc.io URL
- SECURITY.md artifacts line
- ROADMAP.md "Maven Central distribution" entry + the hypothetical
  future split into graph-compose-{core,pdf,docx,templates,testing}
- docs/templates/which-template-system.md "Maven coordinates do not
  change in 2.0" section
- docs/roadmaps/v1.6-roadmap.md Phase E README-snippet wording +
  the benchmark-module artifact reference + the release-identity
  Maven coords line
- docs/contributing/release-process.md top distribution coords
  block + Phase 0.D parent-artifact name + Phase 2.B dependency:get
  command + Phase 6 done-criteria dependency:get command
- CHANGELOG.md v1.6.6 Planned: hero paragraph rewritten to call out
  the hyphenated artifactId, JitPack legacy notice clarified, the
  javadoc.io URL flipped

Historical lessons-learned in docs/contributing/release-process.md
sections 167-169 keep verbatim references to graphcompose-build /
the graphcompose dependency — they describe what happened during
v1.6.0 / v1.6.5 prep when the artifactId was graphcompose, and
rewriting them would falsify history.

scripts/cut-release.ps1 regexes:
- Update-ReadmeVersion: primary Maven Central regex now matches
  <artifactId>graph-compose</artifactId>; legacy graphcompose +
  JitPack regexes kept as ordered fallbacks
- Update-IndexHtmlVersion: Central downloadUrl regex, Maven snippet
  regex, and Gradle snippet regex all switch to graph-compose

VersionConsistencyGuardTest regex list extended to try
graph-compose first, then graphcompose, then the legacy JitPack
format — the snippet check passes on any of the three. Same pattern
on README and docs/index.html. Once the rename is the only form
left, the older patterns can be removed in a cleanup PR; keeping
them now means the test does not flake during the transition
window if any stale snippet sneaks through review.

Build verified: 4-pom dependency resolution OK (./mvnw -DskipTests
install -pl . + ./mvnw -f examples/pom.xml clean compile + ./mvnw
-f benchmarks/pom.xml clean compile all green). Guard suite green:
CanonicalSurfaceGuardTest + DocumentationExamplesTest +
DocumentationCoverageTest + VersionConsistencyGuardTest +
PublicApiNoEngineLeakTest + SemanticLayerNoPdfBoxDependencyTest =
33/0/0. GenerateAllExamples exit 0, 53 PDFs, no layout errors.
@DemchaAV DemchaAV merged commit e71a886 into develop May 31, 2026
11 checks passed
@DemchaAV DemchaAV deleted the chore/rename-artifact-to-graph-compose branch May 31, 2026 21:26
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