docs: put the contributor surfaces on the 2.x vocabulary - #476
Open
DemchaAV wants to merge 1 commit into
Open
Conversation
Several documents still described an architecture that shipped out of the repository in 2.0, and a contributor following them wrote code that does not compile. CONTRIBUTING routed template authors to BusinessTheme, InvoiceTemplateV2 and ProposalTemplateV2, and its engine-primitive section described entities, container-growth markers and Breakable. None of those seven types exist in src/main. Both sections now describe what is there: the layered preset stack with create(BrandTheme), and the NodeDefinition pipeline where pagination is declared by the definition and a splittable node compiles through SplittableLeafCompiler. A dead link to ComputedPositionTest points at a test that exists. CONTRIBUTING, SECURITY and the architecture overview called the pptx module a semantic exporter. Its primary backend is fixed-layout, in document.backend.fixed.pptx, alongside the older semantic manifest — and a new fragment kind has to register a handler with both fixed-layout backends, or it renders in one output and silently vanishes from the other. The semantic wording is left in place everywhere it is still accurate. ROADMAP described 2.1 as in development and 2.0 as current stable, four days after 2.1.0 shipped. The README release-status block described 2.1.1 with 2.1.0's headline. docs/README listed five superseded 1.x upgrade guides on the main path and omitted the 2.0 migration guide entirely. The bug-report template asked for a v1.6-era version and offered a reproduction with no try-with-resources and no render call, so a repro pasted from it produced nothing. It now asks for the backend, the classpath, the font source and the generated artifact or layout snapshot. The feature-request template pointed at BusinessTheme; the pull-request template offered a lane that does not exist and required updating a count by hand. A new issue-template config routes usage questions to Discussions. Four places stated four different example totals — 63, 63, 54 and "26+" — where the runner invokes 94. The numbers are removed rather than synchronised; they have drifted every release since June. The release runbook grepped the README for a test-count claim the README does not make, so that gate always passed; it compared the gallery row count against the example file count, two numbers long diverged; and three items pointed at a migration path that moved. The gallery check is now a ShowcaseMetadata coverage check, and a new item covers ROADMAP. canonical-legacy-parity.md is refreshed rather than archived: eight live documents link it, and its three "Planned for v1.6" rows had all shipped. In the README, the comparison block moves below Architecture so it stops separating the first example from the next step, What's new in 2.0 compresses to its links, and the documentation catalogue collapses to four routes.
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
A contributor following
CONTRIBUTING.mdwrites code that does not compile.Its "new built-in template" section routes authors to
BusinessTheme,InvoiceTemplateV2andProposalTemplateV2; its engine-primitive section tells them to add a container-growth marker andBreakableto anEntity, with geometry inEntityBoundsand propagation inParentContainerUpdater. All seven types were removed in 2.0 — checked one by one againstsrc/main, none survive. The linkedComputedPositionTestdoes not exist either.The same drift runs through the release-facing surface.
ROADMAP.mdstill described 2.1 as "in development ondevelop, building toward the 2.1.0 minor" and 2.0 as the current stable line, five days afterv2.1.0was tagged and published.docs/README.mdlisted five superseded 1.x minor-to-minor upgrade guides on its main path and did not linkmigration/v2.0.0-modules.mdat all — the only migration guide that applies to anyone arriving today.And the example catalogue is stated four times with four different numbers:
examples/README.mdsays 63 twice,CONTRIBUTING.mdsays 54, the release runbook expects "26+Generated:lines".GenerateAllExamplesinvokes 94.What changed
Retired API. The two template-authoring paths collapse to the one that exists: the layered stack, every preset a
final classwith acreate(BrandTheme)factory, reference implementations named. The engine-primitive section describes the real pipeline — aNodeDefinitionthat prepares and measures, pagination declared on the definition rather than by a marker, continuation throughSplittableLeafCompiler, and container growth as a consequence of what children report duringpreparerather than a separate signal. The "Keep the entity core thin" block is deleted outright; every bullet in it named an absent type.PPTX backend location.
CONTRIBUTING.md(repository map and package roots),SECURITY.md(in-scope list) anddocs/architecture/overview.md(package roots) described the pptx module as a semantic exporter. Its primary backend is fixed-layout —document.backend.fixed.pptx, consuming the same resolvedLayoutGraphas the PDF backend — alongside the older semantic manifest skeleton, and both are now named. The handler-registration rule gains its second half: a new fragment kind must register withPdfFixedLayoutBackendandPptxFixedLayoutBackend, or it renders in one output and silently vanishes from the other.This is deliberately not a sweep.
PptxSemanticBackendstill exists andrender-pptx/README.md,docs/architecture/package-map.mdandrender-pptx/pom.xmldescribe it correctly; only the places calling it the module's primary surface are touched.Release surface.
ROADMAP.mdpromotes 2.1 to current stable, demotes 2.0 to history, and points## Nowat what follows. The README release-status block describes 2.1.1's own content instead of carrying 2.1.0's headline forward with the version number.docs/README.mdleads with the guides that apply and folds the historical ones behind a<details>.Templates and routing.
bug_report.mdis rewritten: the reproduction now uses try-with-resources and callsbuildPdf()— as shipped, a repro pasted from the template rendered nothing — and## Environmentasks for the output backend, the modules on the classpath and the font source rather than a hardcodedPDFBox: 3.0.7, with a new## Generated artifactsection accepting alayoutSnapshot().feature_request.mdswapsBusinessThemeforBrandThemeand lists each anchor with its package (all verified present).pull_request_template.mdgets the lanes the repository actually has and stops requiring a hand-updated gallery count. A newISSUE_TEMPLATE/config.ymlroutes usage questions to Discussions, which are enabled and were not linked from anywhere.Counts removed, not synchronised.
examples/README.md,CONTRIBUTING.md,web/index.htmland the release runbook. A number in prose has no owner and no guard.Runbook. One gate grepped
README.mdfor[0-9]+ green tests— the README makes no such claim, so it always passed. Another comparedexamples/README.mdgallery rows against*Example.javafiles: 48 against 100, already failing. Three items pointed atdocs/migration-v1-N-to-v1-M.md, a path that moved todocs/migration/. The gallery gate becomes aShowcaseMetadatacoverage check, and a new item coversROADMAP.md.README structure. The comparison block moves below
## Architecture— same file, no discovery lost — so it stops sitting between the first working example and the next step.## What's new in 2.0compresses from thirteen lines to its two links. The documentation catalogue collapses from four sub-lists to four routes, gainingROADMAP.mdandSUPPORT.md, which the landing page never linked. 372 → 361 lines.Two files fixed beyond the original scope, because #474 made them stale an hour before this branch:
CONTRIBUTING.md:32listed the pre-#474 guard names with no-plscope, and:73claimed a docs-only PR "runs the guards only", which is no longer how the paths filter behaves.Verification
BUILD SUCCESS, 13/13 modules, 2:01, zero failures.Claims were checked rather than assumed:
src/main— all absentComputedPositionTestis a dead linkfind— absent; repointed atLayoutInsetsTestCanvasLayerNode,ListBuilder.addItem(String, …),DocumentTableCell.node(DocumentNode)all presentgenerate()invocations, 100*Example.javafiles, 48 gallery rowssrc/mainCONTRIBUTING.mdBUILD SUCCESS#anchorin the restructured README, resolvesThe documented qa command was run on a warm
~/.m2, which is exactly its trap: a standalone-f qa/pom.xmlresolves itsgraph-compose-*dependencies from the local repository rather than the reactor, so without a priorinstallit quietly tests the last artifacts you installed instead of your working tree. That precondition is now part of the instruction.One decision to confirm
ISSUE_TEMPLATE/config.ymlsetsblank_issues_enabled: false. That is what forces the routing — every report goes through a template or a contact link — but it removes the blank-issue escape hatch, and it is the only behavioural change here rather than a textual one. Happy to flip it totrueand keep just the contact links.Not in scope
docs/contributing/implementation-guide.mdstill describes the removed execution layer and carries dead source links. Rewriting it is its own change; this PR demotes it from "read these files first" to background reading and addspackage-map.mdin its place.Nothing here is machine-checked: no guard scans
SECURITY.md,SUPPORT.md,ROADMAP.mdor.github/**, and none of the retired symbols are on a forbidden-token list, so every correction in this PR can silently return. Closing that is the next change in this series.