build: migrate to GraphCompose engine 2.0.0 - #48
Merged
Conversation
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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, theio.github.demchaav:graph-composecoordinate stays the drop-in default: it is now a thin aggregator overgraph-compose-core+graph-compose-render-pdf, so a consumer that renders PDF keeps compiling and rendering unchanged (per the engine'sv2.0.0-modulesmigration guide — "rendering PDF? Nothing changes").2.0.0 is published to Maven Central, so CI resolves it with no repo changes.
What changed
pom.xml—graphcompose.version1.9.1 → 2.0.0. This is the sole engine pin;cli/andexamples/resolve 2.0.0 transitively throughgraph-compose-markdown. The optionalgraph-compose-fonts/graph-compose-emojiadd-ons keep their own version lines and are unchanged.InlineRendererTest— 2.0 removed the deprecatedlinkOptions()read-accessor on the engine's inline runs. The test now reads the surrounding link throughlinkTarget()/ExternalLinkTarget.options().uri(), and now asserts the preserved URI rather than just non-null. This is the only source touched —src/maincompiled unchanged, confirming drop-in compatibility (MarkdownComposer/InlineRendererstill constructDocumentLinkOptionsand pass it toRichText.image/svgIcon, all still valid).CHANGELOG.md—[Unreleased] → ### Buildentry 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 test— 188 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.QuickStartExamplerenders a real PDF end-to-end (%PDF-, 1892 B) — proving therender-pdfbackend is present transitively (noMissingBackendExceptionfrom the lean core).0.4.0-SNAPSHOT(this is a dependency change on the dev line, not a library release).