chore(release): open the 2.1 development line#436
Merged
Conversation
The 2.1 cycle ships the fixed-layout PPTX render backend and new public DocumentSession PPTX methods — additive public surface, so the next release is a minor, not the 2.0.1 patch the GA bump left as a placeholder. Move all 13 reactor version sites to 2.1.0-SNAPSHOT so the in-development version signals the minor and japicmp compares the 2.1 line against the 2.0.0 baseline. README/web/module install snippets stay on the latest published 2.0.0 until 2.1.0 ships — VersionConsistencyGuardTest enforces both halves.
Keep-with-next and the alpha-state helpers landed after the v2.0.0 tag, but their Javadoc claimed `@since 2.0.0` and their changelog entries sat under the dated `## v2.0.0 — 2026-07-13` heading. Both are published artifacts — the javadoc jar on Central is immutable and the changelog section becomes the GitHub Release notes — so a reader upgrading from 2.0.0 was told the API had always been there. Retag the six members that shipped in this cycle (`DocumentNode.keepWithNext`, `SectionBuilder.keepWithNext` and its boolean overload, `LineBuilder.keepWithNext` and its boolean overload, `NodeDefinition.firstSliceHeight`) to `@since 2.1.0`, and add the missing tag to five members that had none: `MarkdownInline`'s `appendTransformed` / `appendUpperCased` / `appendIfPresent` and `PdfRenderEnvironment`'s `fillAlphaState` / `strokeAlphaState`. Move the four keep-with-next entries out of the v2.0.0 section into v2.1.0 and open that section as `## v2.1.0 — Planned`, the header form the release script dates. Record the node-model delta the feature entries omitted: the new default method on `DocumentNode` and the trailing `keepWithNext` component on `SectionNode` (13 -> 14) and `LineNode` (17 -> 18), which leaves constructor calls working through the previous-arity overloads but changes what a record deconstruction pattern must bind. The compat constructors themselves keep no `@since` — their signatures were the canonical record constructors at v2.0.0 and have been callable since then. Verified: full reactor `clean verify` green (1508 tests, 0 failures); japicmp against the 2.0.0 baseline green with the gate active at 2.1.0-SNAPSHOT; `javadoc:javadoc` green across the six published modules.
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
Five public members that shipped after the
v2.0.0tag claim@since 2.0.0, and their changelog entries sit under the already-dated## v2.0.0 — 2026-07-13heading. Both are published artifacts: the javadoc jar on Central is immutable, and that changelog section becomes the GitHub Release notes. A reader upgrading from 2.0.0 is currently told the keep-with-next API had always been there. Five more new public members carry no@sinceat all, and the train poms still say2.0.1-SNAPSHOTwhile every tag, the changelog heading anddocs/api-stability.mdsay 2.1.0.Nothing in the repo catches this:
PublicApiSinceTagCoverageTestinspects class-level tags only, on a narrow root set, and never compares a tag's value to anything.What changed
2.1.0-SNAPSHOT.fonts/andemoji/are untouched — independent version lines.@since 2.0.0→2.1.0:DocumentNode.keepWithNext,SectionBuilder.keepWithNextand its boolean overload,LineBuilder.keepWithNextand its boolean overload,NodeDefinition.firstSliceHeight. Each verified absent fromv2.0.0andorigin/main; the work landed 2026-07-22, nine days after the tag.MarkdownInline.appendTransformed/appendUpperCased/appendIfPresent, andPdfRenderEnvironment.fillAlphaState/strokeAlphaState.## v2.1.0 — Planned— the header formcut-release.ps1dates.DocumentNode, and the trailingkeepWithNextrecord component onSectionNode(13 → 14) andLineNode(17 → 18). Constructor calls keep working through previous-arity overloads, but a record deconstruction pattern written against the 2.0.0 component list must add a binding.breakBuildOnSourceIncompatibleModificationsisfalse, so no gate reports it.The
SectionNode/LineNodecompat constructors deliberately carry no@since: those signatures were the canonical record constructors at 2.0.0 and have been callable since then.Verification
./mvnw -B -ntp clean verify— BUILD SUCCESS, 1508 tests, 0 failures, 15/15 modules../mvnw -P japicmp verify -pl :graph-compose-core— green with the gate active (2.1.0-SNAPSHOT≠ the 2.0.0 baseline), confirming the cycle is additive../mvnw javadoc:javadocon the six published modules — green.VersionConsistencyGuardTest12/12.*Node.javacomponent count againstv2.0.0confirms exactly two records changed arity.