docs(changelog): cut the 1.5.0 entries to what changed and its effect - #1010
Conversation
|
NEEDS CHANGES at A ruled-out hypothesis was deleted rather than compressed. The Reflow residue: 3 doubled internal spaces, 0 on A claim of mine was wrong and I have corrected the body. I wrote "reflowed to 79 columns". Measured: 970 of 2719 lines here exceed 79, as 1032 of 3585 do on What it confirmed, several by stronger methods than mine. It resolved our 491-vs-492 citation disagreement: the 492nd match is the empty target inside the On sampling, it was candid about coverage: 250,095 characters removed across 77 hunks, of which roughly 15–20% read as prose. The rest is covered by an exhaustive sweep matching 23 rationale markers against every hunk's removed text and checking whether a distinctive token survives in the replacement — which is what caught |
* Shortens `docs/source/changelog/1.5.0.rst` from 3585 to 2623 lines (26.8%). Per #719, an entry should say what changed and what the effect is; the investigation belongs in the issue. * Cut: test and subtest tallies, coverage percentages, mutation and fuzz counts, byte-identical-regeneration claims, "how it was found" narrative, and restatements of the sentence before. * Kept, compressed: rejected alternatives and why, deliberate exceptions, ruled-out hypotheses, claims flagged as unverified, breaking-change migration notes, and which earlier issue or PR caused or fixed what -- #719 exempts the changelog from its timed-context rule. * All 491 `:issue:`/`:pr:`/`:discussion:`/`:rfc:` citations preserved as a multiset, 0 lost and 0 gained. Entry count unchanged at 155. * Reflowed to the file's own ~86 columns, keeping literals unbroken: max width 95 against 151 on main, lines over 89 cut from 90 to 12, none over 100. * Regenerated `CHANGELOG.md`; never hand-edited. tests/project/ 268 passed / 1 skipped / 864 subtests; util/changelog_md.py --check reports CHANGELOG.md in step.
7067e2e to
809e615
Compare
|
Fixed at
The strongest thing I can say about the delta: the word stream changed in exactly three places. Comparing It also re-wrapped the items a deletion had left ragged — 76 of them, more than the 3 I pointed at — to the file's own ~86 columns. That shows up as more lines over 79 (1639 against 970), but lines over 89 fell further, 19 to 12, max stays 95 against Re-verified at this head: |
|
GOOD TO GO at It closed a gap in my own proof. I had offered a whitespace-collapsed word diff showing exactly 3 token-level change blocks. It reproduced that — 3 raw opcodes, no grouping needed, separated by 6856 and 11147 identical tokens, token delta reconciling exactly at +43 — and then pointed out that such a diff is blind to a whitespace change inside a And it overturned my framing of the wrap question entirely — in the branch's favour. I had treated 79 columns as a reference point and reported the branch as departing from it. On my open question of whether a 76-item reflow belongs in a concision PR, it argued not: the three artifacts it flagged in round 1 were that same residue class, so fixing 3 and leaving 73 would have shipped the cuts half-tidied. I accept that. One caveat it raised that belongs in the body, and now is: 1261 of 2623 lines are new only as re-breaks, so line-by-line review is largely noise and the word diff is the only sensible way to read this revision. Re-verified at this head: citations 492 → 492 multiset-identical with no role's markup spanning a newline, 1 nested hit (the Round-2 scope was the delta by my instruction, so |
|
Ready to merge at Unpublished and unmerged, awaiting you. For the record, what this slice leaves for the rest of #719: the |
Please follow the guide below
make pylint,make mypy,make isort)make testpasses, and a test case covers the changedocs/source/changelog/and regeneratedCHANGELOG.md, if the change is user-visibleThis change is the changelog, so there is no new entry to add and no behaviour for a test to cover. The
make testbox is unticked rather than claimed: the full suite exhausts memory on the machine this was prepared on. I rantests/project/— 268 passed, 1 skipped, 864 subtests — which is where the changelog-generation tests live, including the one that pins the entry count.What is the purpose of your pull request?
fix— corrects a defectfeat— adds a featureperf— changes performance, not behaviourrefactor— changes neither behaviour nor performancetest— tests onlydocs— documentation onlyci— workflows or build toolingchore— anything elseDescription of your pull request and other information
First slice of #719, which asks for the changelog as its own PR and applies the concision rule to it while explicitly exempting it from the timed-context rule.
docs/source/changelog/1.5.0.rstgoes from 3585 to 2719 lines, 24.2%, and ~37.5k to ~27k words.Cut: test and subtest tallies, coverage percentages, mutation and fuzz counts, byte-identical-regeneration claims, "how it was found" narrative, and sentences restating the one before them.
Kept, compressed: rejected alternatives and the reason (
EnumErrorrejected as aTypeError), deliberate exceptions (why 115 stays unbound until anL2TPv3class exists; whywriteable()/truncatestay), claims flagged as unverified (the RPL change never checked against a real capture), breaking-change migration notes, and which earlier issue or PR caused or fixed what — #719 protects design rationale explicitly, and the changelog keeps its time-bound references.A few entries are deliberately still long because their bulk is a decision record — the 16-bit padding budget under #573, the HTTP/2 packing half of #668 with its rejected
max(computed, 1)fix, the HIP padding andLOCATOR_SETcancellation entries, and the release-workflow gate under #641 with its inert-until-configured caveat.What is provably unchanged. All 491
:issue:/:pr:/:discussion:/:rfc:roles survive, compared as a multiset of (kind, target) pairs rather than counted: 0 lost, 0 gained. The entry count is still 155 —tests/project/test_conventions_doc_claims.pypins it, and it caught a merge of two near-duplicate#604bullets during the work.1.5.0.rst's:rfc:959#section-5`` is intact, per #946's retargeting of dead sub-section anchors. No role sits inside**bold**, `italic` or a literal.Wrapping, against the width this repository actually documents.
CONTRIBUTING.md:146-148names 120 forpylintand 100 forisort, not PEP 8's 79, and no line-length setting exists inpyproject.toml,setup.cfg,.editorconfig,.pylintrcortox.ini. So 79 was never the target: this branch's max line width is 95, under even the stricter 100, against 151 onmain, with lines over 89 cut from 90 to 12 and none over 100. Literals are never broken, and no role's markup spans a newline. Raggedness — an indented continuation whose successor's first word would have fitted — falls from 1871 onmainto 350.How to review this revision. 1261 of 2623 lines are new only as re-breaks, so reading the diff line by line is mostly noise. The load-bearing check is the whitespace-collapsed word diff: against the first revision of this branch it reports exactly 3 token-level change blocks, separated by 6856 and 11147 identical tokens, so no fourth text change can hide in the reflow.
CHANGELOG.mdis regenerated, never hand-edited, andutil/changelog_md.py --checkreports it in step.