Skip to content

Commit 71c59a5

Browse files
authored
docs(release): prep v1.6.7 — transitive cleanup summary + migration table (PR-1.6.7) (#114)
Replaces the placeholder "Scope being assembled" intro on the v1.6.7 — Planned CHANGELOG entry with the actual release summary: - Three-paragraph prose summary (what shipped, zero-breaking status, migration). Mirrors the structure used for v1.6.6 — Planned at cut time (bfaa839 in PR-1.6.6). - Migration table listing every transitive dependency consumers must now declare explicitly: kotlin-stdlib-jdk8, the relevant flexmark-ext-* modules, jackson-dataformat-yaml (YAML configs), jackson-module-jsonSchema, and commons-logging (rare — PDFBox routes via jcl-over-slf4j now, only callers who want the commons-logging API beyond SLF4J need an explicit declaration). - Pulls in the japicmp verdict (semver PATCH, compatible bug fix) so reviewers see at a glance that the I3 NodeRegistry-non-final change is the only surface delta and it's a fix, not a break. README release-status block + install snippets are intentionally not touched here — the post-release-of-1.6.6 commit (6eb4694) already flipped them to the right pre-1.6.7-cut shape (latest stable v1.6.6 / in develop v1.6.7 / planned v1.7.0). The version flip in the install snippets is part of cut-release.ps1 at release time, not this PR. Verification: ./mvnw test -pl . -Dtest=VersionConsistencyGuardTest,DocumentationCoverageTest,DocumentationExamplesTest - 22 tests, 0 failures. The full ./mvnw verify -P japicmp suite was green at b4720c6 (the I3 merge) and this PR touches only CHANGELOG prose.
1 parent b4720c6 commit 71c59a5

1 file changed

Lines changed: 43 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,49 @@ follow semantic versioning; release dates are ISO 8601.
55

66
## v1.6.7 — Planned
77

8-
**Dependency cleanup cycle.** Scope being assembled — entries are
9-
filled in as work lands on `develop`. No breaking changes are
10-
planned; the next minor with new canonical DSL primitives is
11-
**v1.7.0** (see [ROADMAP.md](ROADMAP.md)).
8+
**Transitive dependency cleanup.** v1.6.7 narrows the runtime
9+
classpath GraphCompose imposes on consumers. The Kotlin standard
10+
library is gone (the codebase is Java-first; no production
11+
`.kt` sources exist), the `flexmark-all` aggregator is replaced
12+
with the three modules `MarkDownParser` actually references,
13+
`jackson-dataformat-yaml` is marked `<optional>true</optional>`
14+
(mirroring the existing `poi-ooxml` pattern — only consumers that
15+
load YAML configs through `ConfigLoader` need to pull it in),
16+
`jackson-module-jsonSchema` and the explicit `snakeyaml`
17+
declaration are dropped as unused, and `jcl-over-slf4j` is added
18+
explicitly so PDFBox's `commons-logging` call sites keep routing
19+
through SLF4J after the flexmark narrowing (the bridge was
20+
previously provided transitively via `flexmark-all`). The cycle
21+
also fixes a latent layout-cache staleness bug on
22+
`DocumentSession.registry().register(...)` (Track I3): the
23+
registry returned by `registry()` is now a session-owned wrapper
24+
that invalidates the layout cache on every mutation, matching the
25+
semantics of `DocumentSession.registerNodeDefinition(...)`.
26+
27+
**Zero breaking public API changes.** The `japicmp` gate against
28+
the v1.6.6 baseline reports `semver PATCH, compatible bug fix`
29+
the one surface delta is `NodeRegistry` becoming non-`final` so
30+
`DocumentSession` can install the auto-invalidating subclass
31+
described above. All existing call sites compile and run
32+
unchanged. The transitive cleanup is a runtime-classpath change,
33+
not a compile-surface change.
34+
35+
**Migration from v1.6.6.** Consumers that relied on dependencies
36+
flowing transitively through GraphCompose must now declare them
37+
explicitly:
38+
39+
| If you transitively depended on… | Add to your build |
40+
|---|---|
41+
| Kotlin stdlib via GraphCompose | `org.jetbrains.kotlin:kotlin-stdlib-jdk8` |
42+
| Flexmark extensions (tables, footnotes, gfm-strikethrough, …) | the relevant `com.vladsch.flexmark:flexmark-ext-*` modules |
43+
| YAML config loading through `ConfigLoader` | `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` |
44+
| `jackson-module-jsonSchema` | `com.fasterxml.jackson.module:jackson-module-jsonSchema` |
45+
| The `commons-logging` API beyond SLF4J routing | declare `commons-logging:commons-logging` explicitly (GraphCompose intentionally excludes it from PDFBox and bridges via `jcl-over-slf4j`) |
46+
47+
No code changes are required for typical usage — pure-PDF
48+
consumers and JSON-only `ConfigLoader` callers carry on as before.
49+
The next minor with new canonical DSL primitives is **v1.7.0**
50+
(see [ROADMAP.md](ROADMAP.md)).
1251

1352
### Build
1453

0 commit comments

Comments
 (0)