Skip to content

build(japicmp): exclude internal layout.payloads from the binary-compat gate#135

Merged
DemchaAV merged 1 commit into
developfrom
chore/japicmp-exclude-internal-payload
Jun 7, 2026
Merged

build(japicmp): exclude internal layout.payloads from the binary-compat gate#135
DemchaAV merged 1 commit into
developfrom
chore/japicmp-exclude-internal-payload

Conversation

@DemchaAV

@DemchaAV DemchaAV commented Jun 7, 2026

Copy link
Copy Markdown
Owner

What

Exclude the internal com.demcha.compose.document.layout.payloads package from the japicmp binary-compatibility gate, and correct the stale CI job label vs v1.6.8 -> vs v1.6.9.

Why

document.layout.payloads is internal layout->render handoff plumbing (~25 *FragmentPayload / Prepared*Layout / Transform* records). They carry engine-internal types (TextStyle, Padding, ...) and evolve with rendering features, so they are not part of the canonical public API (document.api/dsl/node/style) and carry no binary-compatibility promise.

In the 1.7.0 cycle, ParagraphFragmentPayload gained a verticalAlign component (9e25006), changing its canonical record constructor. japicmp flagged this as CONSTRUCTOR_REMOVED on every develop PR (the check runs only on pull_request, so develop push builds stayed green and the failure was latent). It was non-required, but it reddened every PR and trains reviewers to ignore the gate.

The pom baseline (japicmp.baseline) is already v1.6.9; only the CI job label still said v1.6.8.

Verification

./mvnw -B -ntp -DskipTests -P japicmp verify -pl . -> BUILD SUCCESS (was: CONSTRUCTOR_REMOVED failure). This PR's own japicmp check should now be green.

…at gate

The document.layout.payloads package is internal layout->render handoff plumbing: its records carry engine-internal types (TextStyle, Padding, ...) and evolve with rendering features. ParagraphFragmentPayload gained a verticalAlign component in 1.7.0 (9e25006), changing its canonical record constructor -> japicmp flagged CONSTRUCTOR_REMOVED on every develop PR. These types are not part of the canonical public API (document.api/dsl/node/style) and carry no binary-compat promise, so exclude the package from the gate.

Also corrects the CI job label "vs v1.6.8" -> "vs v1.6.9" (the pom baseline japicmp.baseline is already v1.6.9; the label was stale). Verified locally: ./mvnw -DskipTests -P japicmp verify -pl . -> BUILD SUCCESS.
@DemchaAV DemchaAV merged commit 4ebc6ee into develop Jun 7, 2026
11 checks passed
@DemchaAV DemchaAV deleted the chore/japicmp-exclude-internal-payload branch June 7, 2026 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant