Skip to content

Commit bc81387

Browse files
committed
Release v1.5.1
Maintenance patch on the v1.5 line. - PDFBox bumped 3.0.5 → 3.0.7. - ShapeContainerVisualRegressionTest tolerates cross-platform PDF font drift between Windows-rendered baselines and the Linux CI runner via a calibrated mismatchedPixelBudget. - DocumentationCoverageTest scans the whole README for canonical-DSL coverage instead of pinning to the structural anchors that the v1.5.0 README slim removed. No public API changes; v1.5.0 consumers can upgrade with no code changes.
1 parent 1819351 commit bc81387

4 files changed

Lines changed: 30 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,30 @@ for the phased plan, verification gates, and ADRs.
6969

7070
---
7171

72+
## v1.5.1 — 2026-05-05
73+
74+
### Dependencies
75+
76+
- **PDFBox 3.0.7.** Bumped from 3.0.5 to 3.0.7 (Apache PDFBox patch
77+
release with upstream rendering and security fixes). No
78+
public-API impact for GraphCompose consumers.
79+
80+
### Tooling
81+
82+
- `ShapeContainerVisualRegressionTest` tolerates the cross-platform
83+
PDF font-rendering drift that surfaces between Windows-rendered
84+
baselines and the Linux CI runner (~1-2% pixel diff), via a
85+
calibrated `mismatchedPixelBudget` instead of bit-exact comparison.
86+
- `DocumentationCoverageTest` no longer pins to the structural
87+
section anchors that the v1.5.0 README slim removed; the guard now
88+
scans the whole README for canonical-DSL coverage and
89+
legacy-API leakage in one whole-file pass.
90+
91+
This is a maintenance patch release. There are no public API
92+
changes; v1.5.0 consumers can upgrade with no code changes.
93+
94+
---
95+
7296
## v1.5.0 — 2026-05-04
7397

7498
### Headline — "intuitive"

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Most Java PDF libraries hand you low-level drawing commands. GraphCompose gives
2929
- **PDFBox rendering, isolated.** PDF backend lives behind a single backend interface. The DOCX backend (Apache POI) is ready for callers who need an editable file.
3030
- **Tested at every layer.** 672 green tests on `develop` (525 → 672 across v1.5), including cinematic-feature tests, shape-as-container clip-path invariants, transform CTM checks, table row-span / zebra / repeated-header tests, public-API leak guards, and a `PdfVisualRegression` harness.
3131

32-
The current release is **v1.5.0** — the "intuitive" release. v1.5 turns the surface intuitive: shape-as-container with clip path, rotate / scale + per-layer z-index, advanced tables (row span, zebra, totals, repeating header), and two new theme-driven cinematic templates (`InvoiceTemplateV2`, `ProposalTemplateV2`). v1.5 is fully source-compatible with v1.4 — every public record gained back-compat constructors that default the new fields. See [`docs/migration-v1-4-to-v1-5.md`](docs/migration-v1-4-to-v1-5.md).
32+
The current release is **v1.5.1** — the "intuitive" release. v1.5 turns the surface intuitive: shape-as-container with clip path, rotate / scale + per-layer z-index, advanced tables (row span, zebra, totals, repeating header), and two new theme-driven cinematic templates (`InvoiceTemplateV2`, `ProposalTemplateV2`). v1.5 is fully source-compatible with v1.4 — every public record gained back-compat constructors that default the new fields. See [`docs/migration-v1-4-to-v1-5.md`](docs/migration-v1-4-to-v1-5.md).
3333

3434
## Who is GraphCompose for?
3535

@@ -65,13 +65,13 @@ Distributed through JitPack.
6565
<dependency>
6666
<groupId>com.github.DemchaAV</groupId>
6767
<artifactId>GraphCompose</artifactId>
68-
<version>v1.5.0</version>
68+
<version>v1.5.1</version>
6969
</dependency>
7070
```
7171

7272
```kotlin
7373
repositories { maven("https://jitpack.io") }
74-
dependencies { implementation("com.github.demchaav:GraphCompose:v1.5.0") }
74+
dependencies { implementation("com.github.demchaav:GraphCompose:v1.5.1") }
7575
```
7676

7777
The DOCX backend depends on `org.apache.poi:poi-ooxml`, declared as `optional` &mdash; add it explicitly when you call `session.export(new DocxSemanticBackend())`.

examples/pom.xml

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

77
<groupId>io.github.demchaav</groupId>
88
<artifactId>graphcompose-examples</artifactId>
9-
<version>1.5.0</version>
9+
<version>1.5.1</version>
1010
<name>GraphCompose Examples</name>
1111
<description>Runnable file-render examples for GraphCompose templates.</description>
1212

1313
<properties>
14-
<graphcompose.version>1.5.0</graphcompose.version>
14+
<graphcompose.version>1.5.1</graphcompose.version>
1515
<logback.version>1.5.18</logback.version>
1616
<maven.compiler.release>21</maven.compiler.release>
1717
</properties>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>io.github.demchaav</groupId>
88
<artifactId>graphcompose</artifactId>
9-
<version>1.5.0</version>
9+
<version>1.5.1</version>
1010

1111
<name>GraphCompose</name>
1212
<description>A declarative layout engine for programmatic document generation, implemented primarily in Java.</description>

0 commit comments

Comments
 (0)