This release includes breaking changes for platform teams planning a safe upgrade.
Published 1mo
Build & Package
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
business-documents
cv-templates
declarative-api
document-generation
invoice-template
java
+12 more
java-17
layout-engine
maven
pagination
pdf
pdf-generator
pdf-lib
pdf-library
pdfbox3
report-generation
snapshot-testing
template-engine
Summary
AI summaryUpdates Public API, Build, and docs/operations/visual-regression-testing.md across a mixed release.
Full changelog
v1.6.9 — 2026-06-03
Housekeeping cycle plus the public pixel-level visual-regression API (Track N).
Public API
- Promoted the pixel-level visual-regression harness to public API.
com.demcha.compose.testing.visual.PdfVisualRegressionand
com.demcha.compose.testing.visual.ImageDiff(@since 1.6.9) move from the
test source set intosrc/main/java, alongside the existing
com.demcha.compose.testing.layout.*semantic snapshot helpers. Library
consumers can now run the same render-PDF → diff-PNG baseline gate against
their own presets and templates instead of copying the harness. Behaviour is
unchanged; the PDF→image step is inlined on PDFBox'sPDFRenderer. - Exposed
PdfVisualRegression.APPROVE_PROPERTY(@since 1.6.9) — the
graphcompose.visual.approvesystem-property name — so consumers can toggle
baseline-approve mode without hard-coding the string (mirrors
LayoutSnapshotAssertions.UPDATE_PROPERTY).
Documentation
- Added
docs/operations/visual-regression-testing.md:
pixel-vs-semantic guidance, thePdfVisualRegressionAPI, approve mode,
baseline layout, and cross-platform tolerance calibration. - README "Which API should I use?" gains a pixel-level visual-regression row.
- Made the entire
com.demcha.compose.document.*public API Javadoc
doclint-clean. Added the missing@param/@return/@throwstags and
element descriptions across 142 files somvn javadoc:javadoc
(doclint=all) runs warning-free. Java's default-Xmaxwarns=100cap had
masked ~90% of the gaps (true count: 929 warnings, not the ~100 first
visible). Additive Javadoc only — no behaviour change; the only code
additions are 16 behaviour-neutral no-arg constructors in
layout/definitions/*(documenting the otherwise-synthesised public default
constructor) and removal of the@deprecatedblock-tagsdoclintforbids in
package-info.java(the@Deprecatedannotation + prose body already carry
the notice).
Build
- CI Javadoc validation (
maven-javadoc-plugin,doclint=all) now covers the
publiccom.demcha.compose.testing.*helpers (testing.layout+testing.visual)
in addition to the canonicaldocumentAPI, so Javadoc regressions on the
testing surface fail fast in CI. No artifact or behaviour change. - Bumped
central-publishing-maven-plugin0.9.0 → 0.10.0 (the Maven Central
publishing plugin) and removed the Dependabot block on 0.10.0; the
release-profile build is verified locally and the Central upload is exercised
at the next publish.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About GraphCompose 2.0
All releases →Related context
Related tools
Earlier breaking changes
- v2.0.0 Package rename: layered template packages dropped `.v2` suffix; update imports.
- v2.0.0 Removed dormant ECS engine internals (EntityManager, SystemECS, Entity components, render pipeline).
- v2.0.0 Removed linkOptions() accessor; use linkTarget() and ExternalLinkTarget.options().
- v2.0.0 Removed PDF‑typed document‑chrome overloads on DocumentSession; use backend‑neutral metadata/watermark/protect/header/footer.
- v2.0.0 Removed DSL name-aliases DocumentSession.builder() and DocumentDsl.text(); use builder() and paragraph().
Beta — feedback welcome: [email protected]