Skip to content

Commit e71a886

Browse files
authored
chore: rename Maven artifactId graphcompose -> graph-compose ahead of Central debut (#105)
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.
1 parent 49f0aac commit e71a886

15 files changed

Lines changed: 61 additions & 55 deletions

File tree

CHANGELOG.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,26 @@ follow semantic versioning; release dates are ISO 8601.
66
## v1.6.6 — Planned
77

88
**First Maven Central release.** GraphCompose now ships under
9-
`io.github.demchaav:graphcompose:1.6.6` alongside the existing
10-
JitPack distribution. The release adds publishable sources/javadoc
11-
jars, GPG-signed artefacts, a binary-compatibility gate against
12-
v1.6.5, the metadata Maven Central requires, and a substantial
13-
documentation polish for the maturity / stability / migration story.
9+
`io.github.demchaav:graph-compose:1.6.6` — note the **hyphenated**
10+
artifactId, chosen for readability ahead of the Central debut. The
11+
release adds publishable sources/javadoc jars, GPG-signed artefacts,
12+
a binary-compatibility gate against v1.6.5, the metadata Maven
13+
Central requires, and a substantial documentation polish for the
14+
maturity / stability / migration story.
1415

1516
**Zero breaking changes from v1.6.5.** Existing JitPack callers continue
16-
to resolve through the same coordinates; existing API surface compiles
17-
and runs unchanged (validated by the new `japicmp` gate against the
18-
v1.6.5 baseline). New: the `@Beta` annotation marker, the `@since 1.0.0`
19-
class-level Javadoc on entry-point packages, and a curated docs pass
20-
(decision guide for the two template surfaces, examples maturity index,
21-
explicit API stability policy).
22-
23-
**Migration from v1.6.5:** no code changes required. Optionally swap
24-
the JitPack `<dependency>` for the Maven Central equivalent
25-
(`io.github.demchaav:graphcompose:1.6.6`); both publish paths continue
26-
to ship the same artefact.
17+
to resolve through the same coordinates (`com.github.DemchaAV:GraphCompose:v1.6.5`);
18+
existing API surface compiles and runs unchanged (validated by the new
19+
`japicmp` gate against the v1.6.5 baseline). New: the `@Beta`
20+
annotation marker, the `@since 1.0.0` class-level Javadoc on
21+
entry-point packages, and a curated docs pass (decision guide for
22+
the two template surfaces, examples maturity index, explicit API
23+
stability policy).
24+
25+
**Migration from v1.6.5:** no code changes required. Swap the
26+
JitPack `<dependency>` for the Maven Central form
27+
(`io.github.demchaav:graph-compose:1.6.6`). The legacy JitPack URL
28+
keeps resolving for callers pinned to v1.6.5 and earlier.
2729

2830
### Build
2931

@@ -63,7 +65,7 @@ to ship the same artefact.
6365
alongside the existing JitPack step.
6466
- **Hosted Javadocs via `javadoc.io`** (Track H3). README's
6567
distribution-status note now points callers at
66-
[javadoc.io/doc/io.github.demchaav/graphcompose](https://javadoc.io/doc/io.github.demchaav/graphcompose),
68+
[javadoc.io/doc/io.github.demchaav/graph-compose](https://javadoc.io/doc/io.github.demchaav/graph-compose),
6769
which auto-mirrors any artefact published to Maven Central within
6870
minutes — no separate hosting infrastructure required. The note
6971
also pins Maven Central as the going-forward primary distribution

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ GraphCompose follows a fork &rarr; feature branch &rarr; pull request flow. Exte
7878

7979
1. **Release prep** lands on `develop` &mdash; version bumps propagate via `aggregator/pom.xml` to all modules in one pass; fresh CHANGELOG entry; migration guide for minor releases. **README install snippet stays pinned to the previously published version** until Maven Central confirms the new artifact, otherwise consumers copying the snippet during the publish window hit a 404.
8080
2. **`scripts/cut-release.ps1 -Version <X.Y.Z>`** automates the bump + CHANGELOG date + commit + tag + push from `develop`. The maintainer fast-forwards `main` from `develop` after the tag lands (`git push origin develop:main`).
81-
3. **Maven Central** picks up the new tag automatically via [`.github/workflows/publish.yml`](./.github/workflows/publish.yml) &mdash; the workflow re-runs `mvnw verify` at the tagged commit, signs the four artefacts (main / sources / javadoc / pom) with the repo's GPG key, and uploads via the `central-publishing-maven-plugin`. Hyphenated tags (`-rc`, `-alpha`, `-beta`) are skipped on Central; they ship only to the GitHub Release pre-release surface. Javadocs auto-publish to [javadoc.io/doc/io.github.demchaav/graphcompose](https://javadoc.io/doc/io.github.demchaav/graphcompose) shortly after each Central release.
81+
3. **Maven Central** picks up the new tag automatically via [`.github/workflows/publish.yml`](./.github/workflows/publish.yml) &mdash; the workflow re-runs `mvnw verify` at the tagged commit, signs the four artefacts (main / sources / javadoc / pom) with the repo's GPG key, and uploads via the `central-publishing-maven-plugin`. Hyphenated tags (`-rc`, `-alpha`, `-beta`) are skipped on Central; they ship only to the GitHub Release pre-release surface. Javadocs auto-publish to [javadoc.io/doc/io.github.demchaav/graph-compose](https://javadoc.io/doc/io.github.demchaav/graph-compose) shortly after each Central release.
8282
4. **GitHub Release** is created with notes from the matching `CHANGELOG.md` section.
8383

8484
See [docs/contributing/release-process.md](./docs/contributing/release-process.md) for the full checklist (audit gates, hotfix protocol, lessons learned).

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<p align="center">
1313
<a href="https://github.com/DemchaAV/GraphCompose/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/actions/workflow/status/DemchaAV/GraphCompose/ci.yml?branch=main&style=for-the-badge&label=CI" alt="CI"/></a>
1414
<a href="https://github.com/DemchaAV/GraphCompose/releases/latest"><img src="https://img.shields.io/github/v/release/DemchaAV/GraphCompose?style=for-the-badge&label=Release" alt="Latest release"/></a>
15-
<a href="https://central.sonatype.com/artifact/io.github.demchaav/graphcompose"><img src="https://img.shields.io/maven-central/v/io.github.demchaav/graphcompose?style=for-the-badge&label=Maven%20Central" alt="Maven Central"/></a>
15+
<a href="https://central.sonatype.com/artifact/io.github.demchaav/graph-compose"><img src="https://img.shields.io/maven-central/v/io.github.demchaav/graph-compose?style=for-the-badge&label=Maven%20Central" alt="Maven Central"/></a>
1616
<img src="https://img.shields.io/badge/Java-17%2B-orange?style=for-the-badge&logo=openjdk" alt="Java 17+"/>
1717
<img src="https://img.shields.io/badge/PDFBox-3.0-red?style=for-the-badge" alt="PDFBox 3.0"/>
1818
<img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="MIT License"/>
@@ -96,18 +96,18 @@ GraphCompose uses PDFBox under the hood as the rendering backend &mdash; the com
9696
```xml
9797
<dependency>
9898
<groupId>io.github.demchaav</groupId>
99-
<artifactId>graphcompose</artifactId>
99+
<artifactId>graph-compose</artifactId>
100100
<version>1.6.6</version>
101101
</dependency>
102102
```
103103

104104
```kotlin
105-
dependencies { implementation("io.github.demchaav:graphcompose:1.6.6") }
105+
dependencies { implementation("io.github.demchaav:graph-compose:1.6.6") }
106106
```
107107

108108
> **Distribution** &mdash; Maven Central is the canonical channel from **v1.6.6** onwards
109-
> (`io.github.demchaav:graphcompose:<version>`). Hosted Javadocs auto-publish to
110-
> [javadoc.io/doc/io.github.demchaav/graphcompose](https://javadoc.io/doc/io.github.demchaav/graphcompose)
109+
> (`io.github.demchaav:graph-compose:<version>`). Hosted Javadocs auto-publish to
110+
> [javadoc.io/doc/io.github.demchaav/graph-compose](https://javadoc.io/doc/io.github.demchaav/graph-compose)
111111
> shortly after each Central release. The legacy JitPack URL
112112
> (`com.github.DemchaAV:GraphCompose:v<version>`) remains resolvable for callers
113113
> pinned to v1.6.5 and earlier but is no longer the documented install option.

ROADMAP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ In flight on `main` / `develop`.
88

99
- v1.6 polish &mdash; documentation, examples, visual baselines, fixes.
1010
- Open-source hygiene &mdash; security policy, support guidance, dependency automation, security scanning.
11-
- **Maven Central distribution** &mdash; debut shipping in v1.6.6 under `io.github.demchaav:graphcompose`. Replaces JitPack as the primary install channel; the JitPack URL stays alive for existing pinned consumers but is no longer documented as a primary option. Tracked in [#7](https://github.com/DemchaAV/GraphCompose/issues/7).
11+
- **Maven Central distribution** &mdash; debut shipping in v1.6.6 under `io.github.demchaav:graph-compose`. Replaces JitPack as the primary install channel; the JitPack URL stays alive for existing pinned consumers but is no longer documented as a primary option. Tracked in [#7](https://github.com/DemchaAV/GraphCompose/issues/7).
1212

1313
## Next (v1.7)
1414

@@ -23,7 +23,7 @@ Not committed. Reflects current thinking; priorities may shift based on user fee
2323

2424
- **DOCX visibility for unsupported nodes.** Make currently-silent skips (`shape`, `line`, `ellipse`, `barcode`) loud &mdash; minimum a warn log, ideally a strict-mode flag that fails instead of dropping content silently.
2525
- **Backend-neutral layout measurement.** Decouple measurement from PDFBox-specific resources so non-PDF backends do not pull PDFBox into the dependency graph.
26-
- **Multi-module Maven layout.** Split the artifact into `graphcompose-core` / `graphcompose-pdf` / `graphcompose-docx` / `graphcompose-templates` / `graphcompose-testing` if there is clear demand. Adds release complexity, so requires a real adoption signal first.
26+
- **Multi-module Maven layout.** Split the artifact into `graph-compose-core` / `graph-compose-pdf` / `graph-compose-docx` / `graph-compose-templates` / `graph-compose-testing` if there is clear demand. Adds release complexity, so requires a real adoption signal first.
2727
- **DOCX maturity.** Either expand DOCX coverage toward PDF parity, or move DOCX behind an explicitly experimental flag.
2828
- **Property-based testing.** Random table spans, pagination edge cases, deeply nested layouts.
2929
- **Real PPTX export.** Current state is a manifest skeleton. Will only be built out if there is concrete user demand.

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ In scope:
4747
- DOCX / PPTX semantic backends (`com.demcha.compose.document.backend.semantic`).
4848
- Templates shipped in `com.demcha.compose.document.templates`.
4949
- Public authoring API (`GraphCompose`, `DocumentSession`, DSL).
50-
- Build and release artifacts on Maven Central (`io.github.demchaav:graphcompose`). The legacy JitPack URL remains available for consumers pinned to v1.6.5 and earlier but is no longer the documented install channel.
50+
- Build and release artifacts on Maven Central (`io.github.demchaav:graph-compose`). The legacy JitPack URL remains available for consumers pinned to v1.6.5 and earlier but is no longer the documented install channel.
5151

5252
Out of scope:
5353

aggregator/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66

77
<groupId>io.github.demchaav</groupId>
8-
<artifactId>graphcompose-build</artifactId>
8+
<artifactId>graph-compose-build</artifactId>
99
<version>1.6.5</version>
1010
<packaging>pom</packaging>
1111

benchmarks/pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
<parent>
88
<groupId>io.github.demchaav</groupId>
9-
<artifactId>graphcompose-build</artifactId>
9+
<artifactId>graph-compose-build</artifactId>
1010
<version>1.6.5</version>
1111
<relativePath>../aggregator/pom.xml</relativePath>
1212
</parent>
1313

14-
<artifactId>graphcompose-benchmarks</artifactId>
14+
<artifactId>graph-compose-benchmarks</artifactId>
1515
<name>GraphCompose Benchmarks</name>
1616
<description>
1717
Performance benchmarks, stress tests, and endurance harnesses for
@@ -49,19 +49,19 @@
4949
<!-- The library under benchmark. -->
5050
<dependency>
5151
<groupId>io.github.demchaav</groupId>
52-
<artifactId>graphcompose</artifactId>
52+
<artifactId>graph-compose</artifactId>
5353
<version>${graphcompose.version}</version>
5454
</dependency>
5555

5656
<!--
57-
graphcompose's test-only fixtures (com.demcha.mock.*) used by
57+
graph-compose's test-only fixtures (com.demcha.mock.*) used by
5858
CanonicalBenchmarkSupport for CV / invoice / proposal sample
5959
data. Pulled in via the tests-classifier jar published by
6060
the main module's maven-jar-plugin test-jar execution.
6161
-->
6262
<dependency>
6363
<groupId>io.github.demchaav</groupId>
64-
<artifactId>graphcompose</artifactId>
64+
<artifactId>graph-compose</artifactId>
6565
<version>${graphcompose.version}</version>
6666
<type>test-jar</type>
6767
<classifier>tests</classifier>

0 commit comments

Comments
 (0)