Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 19 additions & 17 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,26 @@ follow semantic versioning; release dates are ISO 8601.
## v1.6.6 — Planned

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

**Zero breaking changes from v1.6.5.** Existing JitPack callers continue
to resolve through the same coordinates; existing API surface compiles
and runs unchanged (validated by the new `japicmp` gate against the
v1.6.5 baseline). New: the `@Beta` annotation marker, the `@since 1.0.0`
class-level Javadoc on entry-point packages, and a curated docs pass
(decision guide for the two template surfaces, examples maturity index,
explicit API stability policy).

**Migration from v1.6.5:** no code changes required. Optionally swap
the JitPack `<dependency>` for the Maven Central equivalent
(`io.github.demchaav:graphcompose:1.6.6`); both publish paths continue
to ship the same artefact.
to resolve through the same coordinates (`com.github.DemchaAV:GraphCompose:v1.6.5`);
existing API surface compiles and runs unchanged (validated by the new
`japicmp` gate against the v1.6.5 baseline). New: the `@Beta`
annotation marker, the `@since 1.0.0` class-level Javadoc on
entry-point packages, and a curated docs pass (decision guide for
the two template surfaces, examples maturity index, explicit API
stability policy).

**Migration from v1.6.5:** no code changes required. Swap the
JitPack `<dependency>` for the Maven Central form
(`io.github.demchaav:graph-compose:1.6.6`). The legacy JitPack URL
keeps resolving for callers pinned to v1.6.5 and earlier.

### Build

Expand Down Expand Up @@ -63,7 +65,7 @@ to ship the same artefact.
alongside the existing JitPack step.
- **Hosted Javadocs via `javadoc.io`** (Track H3). README's
distribution-status note now points callers at
[javadoc.io/doc/io.github.demchaav/graphcompose](https://javadoc.io/doc/io.github.demchaav/graphcompose),
[javadoc.io/doc/io.github.demchaav/graph-compose](https://javadoc.io/doc/io.github.demchaav/graph-compose),
which auto-mirrors any artefact published to Maven Central within
minutes — no separate hosting infrastructure required. The note
also pins Maven Central as the going-forward primary distribution
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ GraphCompose follows a fork &rarr; feature branch &rarr; pull request flow. Exte

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.
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`).
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.
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.
4. **GitHub Release** is created with notes from the matching `CHANGELOG.md` section.

See [docs/contributing/release-process.md](./docs/contributing/release-process.md) for the full checklist (audit gates, hotfix protocol, lessons learned).
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<p align="center">
<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>
<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>
<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>
<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>
<img src="https://img.shields.io/badge/Java-17%2B-orange?style=for-the-badge&logo=openjdk" alt="Java 17+"/>
<img src="https://img.shields.io/badge/PDFBox-3.0-red?style=for-the-badge" alt="PDFBox 3.0"/>
<img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="MIT License"/>
Expand Down Expand Up @@ -96,18 +96,18 @@ GraphCompose uses PDFBox under the hood as the rendering backend &mdash; the com
```xml
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graphcompose</artifactId>
<artifactId>graph-compose</artifactId>
<version>1.6.6</version>
</dependency>
```

```kotlin
dependencies { implementation("io.github.demchaav:graphcompose:1.6.6") }
dependencies { implementation("io.github.demchaav:graph-compose:1.6.6") }
```

> **Distribution** &mdash; Maven Central is the canonical channel from **v1.6.6** onwards
> (`io.github.demchaav:graphcompose:<version>`). Hosted Javadocs auto-publish to
> [javadoc.io/doc/io.github.demchaav/graphcompose](https://javadoc.io/doc/io.github.demchaav/graphcompose)
> (`io.github.demchaav:graph-compose:<version>`). Hosted 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. The legacy JitPack URL
> (`com.github.DemchaAV:GraphCompose:v<version>`) remains resolvable for callers
> pinned to v1.6.5 and earlier but is no longer the documented install option.
Expand Down
4 changes: 2 additions & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ In flight on `main` / `develop`.

- v1.6 polish &mdash; documentation, examples, visual baselines, fixes.
- Open-source hygiene &mdash; security policy, support guidance, dependency automation, security scanning.
- **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).
- **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).

## Next (v1.7)

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

- **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.
- **Backend-neutral layout measurement.** Decouple measurement from PDFBox-specific resources so non-PDF backends do not pull PDFBox into the dependency graph.
- **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.
- **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.
- **DOCX maturity.** Either expand DOCX coverage toward PDF parity, or move DOCX behind an explicitly experimental flag.
- **Property-based testing.** Random table spans, pagination edge cases, deeply nested layouts.
- **Real PPTX export.** Current state is a manifest skeleton. Will only be built out if there is concrete user demand.
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ In scope:
- DOCX / PPTX semantic backends (`com.demcha.compose.document.backend.semantic`).
- Templates shipped in `com.demcha.compose.document.templates`.
- Public authoring API (`GraphCompose`, `DocumentSession`, DSL).
- 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.
- 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.

Out of scope:

Expand Down
2 changes: 1 addition & 1 deletion aggregator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>

<groupId>io.github.demchaav</groupId>
<artifactId>graphcompose-build</artifactId>
<artifactId>graph-compose-build</artifactId>
<version>1.6.5</version>
<packaging>pom</packaging>

Expand Down
10 changes: 5 additions & 5 deletions benchmarks/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

<parent>
<groupId>io.github.demchaav</groupId>
<artifactId>graphcompose-build</artifactId>
<artifactId>graph-compose-build</artifactId>
<version>1.6.5</version>
<relativePath>../aggregator/pom.xml</relativePath>
</parent>

<artifactId>graphcompose-benchmarks</artifactId>
<artifactId>graph-compose-benchmarks</artifactId>
<name>GraphCompose Benchmarks</name>
<description>
Performance benchmarks, stress tests, and endurance harnesses for
Expand Down Expand Up @@ -49,19 +49,19 @@
<!-- The library under benchmark. -->
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graphcompose</artifactId>
<artifactId>graph-compose</artifactId>
<version>${graphcompose.version}</version>
</dependency>

<!--
graphcompose's test-only fixtures (com.demcha.mock.*) used by
graph-compose's test-only fixtures (com.demcha.mock.*) used by
CanonicalBenchmarkSupport for CV / invoice / proposal sample
data. Pulled in via the tests-classifier jar published by
the main module's maven-jar-plugin test-jar execution.
-->
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graphcompose</artifactId>
<artifactId>graph-compose</artifactId>
<version>${graphcompose.version}</version>
<type>test-jar</type>
<classifier>tests</classifier>
Expand Down
Loading