Repository navigation
docs(changelog): file the 2.5 DOCX fixes under Fixed, add a summary and a 2.4 migration note - #1016
Merged
Merged
Conversation
…nd a 2.4 migration note The v2.5.0 entry kept 256 DOCX bullets under Public API, 9 of which add public API. The other 247 move, in order, to a new Fixed section. A Highlights block says what the DOCX export is in 2.5, and a migration note tells a 2.4 user what changes in the file, the log and the code. Sentences that a later change in the cycle replaced get the entry's own "(since ...: see ...)" pointer to the newer entry, 62 of them. The acceptance figures are measured again: Word 16 passes 77 of the 84 corpus documents and LibreOffice 24.2 on CI 48, where the bullet quoted the first run's 41 and 37 of 62 presets.
…ter a verb 2.4 already wrote a page zone, as one line of runs on every page; the summary and the migration note now say that, and what 2.5 changes about it: the zone as the page lays it out, on the pages its predicate picks where Word has such a header or footer, and the warning logged only for a predicate Word cannot follow. The rule note says the 12pt limit holds for a line as well as a divider. Pointers that read as fragments get a verb, and the lines they lengthened are wrapped to the entry's width.
…ix two pointers Two pointers read wrongly where they stood: NavySidebar's now says the date is on the title's line and the preset on one page, and the panel cut's says the page is written as a Word section. A zone predicate that picks odd pages goes to Word's ordinary header, which the migration note now names, and the acceptance bullet says a document is set on as many pages as the engine sets it on, as the summary does. Each paragraph that a pointer lengthened is reflowed to the entry's width; no word changes.
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
The v2.5.0 entry grew one bullet per DOCX change, all of them under
### Public API: 256bullets, about 4,800 lines, of which 9 add or change public API. A reader had no summary of
what the DOCX export became in 2.5, and nothing told a 2.4 user what changes in the file they
get or in the code they write. Older bullets still stated as current behaviour that later
changes in the same cycle replaced — line heights written
exacton every paragraph, a timelinerail drawn as a bar, shapes anchored to the page. And the acceptance figures a Tests bullet quotes,
41 of 62 presets in Word and 37 in LibreOffice, came from the corpus's first run.
What changed
### Highlightsat the top of the entry: what the DOCX export is in 2.5 — written fromthe compiled layout, Word charts with an embedded workbook,
DocxExportReport, bytes identicalon one platform with
deterministic(true),buildDocx/writeDocx/toDocxBytes, and thecorpus it is held to, with the acceptance measured today. One line for the PDF text layer of an
inline icon.
### Migrating the DOCX export from 2.4: code keeps compiling (the Stablesession.export(new DocxSemanticBackend())path, kept constructors); what a reader of the fileshould expect instead (Word numbering,
Normal-style runs, chart parts, anchored drawings,fixed-layout tables, one-line bands, spacers, a page zone as the page lays it out and on the
pages its predicate picks — 2.4 wrote it as one line on every page — and the text headers,
footers and page backgrounds 2.4 ignored); which log warnings went and came, and that the
report names every node; the layout pass the export now costs; embedded fonts;
where an editable rule comes from; byte comparisons through a deterministic backend passed to
export(...);graph-compose-render-docxno longer needingrender-pdfdeclared by hand; thetwo record-pattern source breaks (
SemanticExportContext,ShapeNode). Each point is takenfrom the 2.4.1 recipe against the current recipe, matrix and code.
### Fixed: the 247 bullets that change what the export writes and add no public API moveout of
### Public API, in their order. The 9 that add public API stay (the members come fromthe knowledge-pack diff
v2.4.1..HEAD). No line is dropped or reworded by the move.in the form the entry already uses —
(since …: see "<newer entry>")— rather than being cut;each names a newer entry. The deterministic-bytes entry also says the bytes match on one
platform.
LibreOffice 24.2 on CI's Linux, keeping 41 and 37 as the first run's; the corpus bullet counts
64 presets and 20 built documents rather than 62.
No version, date or release metadata changes; the entry stays "Planned".
Verification
scripts/docx-visual/word-fidelity.ps1(Word16.0.20527) — 77 of 84 pass, all 64 presets, gate green against
word-windows.tsv; CI run42135867817 on
2.5-devat 5f42b51,measured-libreoffice-acceptance.md— 48 of 84, 40 presets.after it are the same multiset, plus the one
### Fixedheading. Every new pointer's quotedtitle is checked to be an existing bullet lead.
./mvnw -B -ntp test -pl :graph-compose-core -Dtest='com.demcha.documentation.**'— 172 tests,0 failures (
VersionConsistencyGuardTest, which reads the CHANGELOG headings, included)../mvnw -B -ntp test -f qa/pom.xml -Dtest='com.demcha.documentation.**'— 28 tests, 0 failures.scripts/release-notes.mjson the extracted 2.5 section: 520,452 characters, condensed to its322 entry leads (31,111 characters) for the GitHub Release, Highlights and Migration first;
node --test scripts/release-notes.test.mjspasses.clean verifyas CI runs it, the four knowledge checks,core javadoc, install and the examples tests): passed — core 841, render-pdf 339,
render-docx 2539, testing 5, render-pptx 142, templates 128, qa 1910, examples 93; 0 failures,
0 javadoc warnings.
Lane: documentation only — no code, test or generated file changes.