Skip to content

build: migrate to GraphCompose engine 2.0.0 - #48

Merged
DemchaAV merged 1 commit into
developfrom
feat/engine-2.0.0
Jul 13, 2026
Merged

build: migrate to GraphCompose engine 2.0.0#48
DemchaAV merged 1 commit into
developfrom
feat/engine-2.0.0

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

GraphCompose 2.0 is out. Its headline change is a packaging split — the monolithic engine is broken into per-concern modules (graph-compose-core, graph-compose-render-pdf, graph-compose-templates, graph-compose-render-docx/pptx, graph-compose-testing, graph-compose-bundle). Crucially, the io.github.demchaav:graph-compose coordinate stays the drop-in default: it is now a thin aggregator over graph-compose-core + graph-compose-render-pdf, so a consumer that renders PDF keeps compiling and rendering unchanged (per the engine's v2.0.0-modules migration guide"rendering PDF? Nothing changes").

2.0.0 is published to Maven Central, so CI resolves it with no repo changes.

What changed

  • pom.xmlgraphcompose.version 1.9.1 → 2.0.0. This is the sole engine pin; cli/ and examples/ resolve 2.0.0 transitively through graph-compose-markdown. The optional graph-compose-fonts / graph-compose-emoji add-ons keep their own version lines and are unchanged.
  • InlineRendererTest — 2.0 removed the deprecated linkOptions() read-accessor on the engine's inline runs. The test now reads the surrounding link through linkTarget() / ExternalLinkTarget.options().uri(), and now asserts the preserved URI rather than just non-null. This is the only source touched — src/main compiled unchanged, confirming drop-in compatibility (MarkdownComposer / InlineRenderer still construct DocumentLinkOptions and pass it to RichText.image / svgIcon, all still valid).
  • CHANGELOG.md[Unreleased] → ### Build entry documenting the bump.
  • README.md — refresh the stale "GraphCompose 1.9" quickstart sample prose to 2.0.

We do not use templates, BusinessTheme, DocumentSession.builder(), DocumentDsl.text(), or the PDF-typed chrome overloads that 2.0 also removed, so the accessor above is the only break this library hits.

Verification

  • ./mvnw clean test188 library tests green on engine 2.0.0.
  • ./mvnw -f cli/pom.xml clean test — CLI suite green (transitive 2.0.0).
  • ./mvnw -f examples/pom.xml clean compile — examples compile.
  • QuickStartExample renders a real PDF end-to-end (%PDF-, 1892 B) — proving the render-pdf backend is present transitively (no MissingBackendException from the lean core).
  • Version-lockstep guard unaffected — root/cli/examples stay 0.4.0-SNAPSHOT (this is a dependency change on the dev line, not a library release).

GraphCompose 2.0 splits the monolithic engine into per-concern modules,
but the `io.github.demchaav:graph-compose` coordinate stays the drop-in
default — it is now a thin aggregator over `graph-compose-core` +
`graph-compose-render-pdf`. So this consumer migrates with a single-line
version bump and keeps rendering PDF with no dependency change and no
change to any public type.

What changed:
- pom.xml: graphcompose.version 1.9.1 -> 2.0.0 (the sole engine pin;
  cli/ and examples/ resolve 2.0.0 transitively, fonts/emoji keep their
  own version lines).
- InlineRendererTest: 2.0 removed the deprecated linkOptions() read
  accessor on the engine's inline runs; the test now reads the surrounding
  link through linkTarget() / ExternalLinkTarget.options().uri() (and now
  asserts the preserved URI, not just non-null). Main source is unchanged.
- CHANGELOG: [Unreleased] Build entry documenting the bump.
- README: refresh the stale "GraphCompose 1.9" sample prose to 2.0.

Verification: 188 library tests + the CLI suite pass on 2.0.0, the
examples module compiles, and QuickStartExample renders a real PDF
end-to-end (proving the render-pdf backend is present transitively — no
MissingBackendException). Version-lockstep is untouched (all 0.4.0-SNAPSHOT).
@DemchaAV
DemchaAV merged commit 7f9095b into develop Jul 13, 2026
4 checks passed
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