Tell the release notes the redesign has landed (refs #439) - #488
Conversation
The RC preamble has been promising that "the Xcode-native report redesign lands later in the RC line, with its own notes appended to this document as it arrives." It has arrived: the summary header, the tests tree restyle, the per-view shell and its device picker, the filters, and a Logs view that can be read and searched are all on main. The document still said it was coming. So the preamble now says it has landed — ordinally, "from the second candidate on", never as a tag string, because this document is shared by every candidate and by the final release, and the per-tag banner is what carries install lines and asset names. The section itself is the user-facing story only, sourced from what the five merged PRs actually changed for a reader: what the header states and what clicking a failure digest row does; the outline's badges, indentation and duration column, and that the list can finally be scrolled from a keyboard; each view owning its surface, with the two behaviour changes called out as behaviour changes — the sidebar's Identifier: line is gone, and the narrow layout is redesigned around a list that used to put its last rows somewhere unreachable; the filters, including the expected-failure bucket that had no pill at all; and the Logs view leaving the iframe, which is both what makes its filter possible and what fixes it rendering as a white slab in dark mode. It sits after the parity table and before the fixes, so it reads as "and the report itself now looks like this" once the reader has the migration's content deltas. The existing "The Logs tab actually contains the log" section gains a pointer to it: that section says the log exists, this one says where you read it. The RC framing itself stays. It comes out at 4.0.0 final, not at a candidate.
|
Warning Review limit reached
Next review available in: 39 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Comment |
Refs #439. Notes only — no code, no workflow, no template. One file:
docs/release-notes/4.0.0.md.The RC preamble has been writing a cheque since #474:
It has arrived — #476, #483, #484, #486 are all on
main, and #482 gave theLogs tab something to show. The document still said it was coming. This cashes
the cheque.
What changed
1. The preamble's tense. "lands later in the RC line" → "has landed", plus
what landed and that it is the second thing we are asking for soak time on. The
paragraph above it moves to the past tense for the same reason ("were the first
thing we asked for soak time on"), and the closing sentence now ends the
candidate line on both the reader rewrite and the redesign going a cycle
clean, not just the reader rewrite.
2. A new
## The Xcode-native report redesignsection, six subsections:the summary header and the failure digest; the tests tree; the per-view shell
and the device picker; the filters; the Logs view; and dark mode, contrast and
accessibility as one.
3. A pointer from the existing The Logs tab actually contains the log
section down to it. That section says the log exists; the new one says where
you read it.
Where the section sits, and why
Between What still differs between the two readers and Fixes.
Everything above it is the migration: why a major release, the
--jsonbreak,the reader flag, the content deltas both readers share, and what could not be
converged. The redesign is a different axis — presentation, independent of
either reader — so it reads best as "…and the report itself now looks like
this" after the reader has the content story, not interleaved into it.
It also has to come after The Logs tab actually contains the log, because the
Logs subsection is written as a callback to it: that log is the thing the
rebuilt Logs view now has to show. Putting the redesign higher would have made
that a forward reference to a section explaining a bug the reader had not met
yet.
Nothing rc2-specific is hardcoded
The #474 discipline holds: this document is looked up per
X.Y.Z, so4.0.0rc1,4.0.0rc2, … and4.0.0final all resolve to this file, and the per-tagbanner
release.ymlgenerates is what carries the tag, the install line and theasset name.
So the preamble names the candidate ordinally — "from the second candidate
on" — matching the "The first candidate is…" sentence already there. No tag
string, no install command, no archive name is added, and every sentence stays
true verbatim when 4.0.0 final publishes the same file.
grep -nE 'rc[0-9]|xchtmlreport-4' docs/release-notes/4.0.0.mdmatches exactlyone line, and it is the pre-existing
`4.0.0rc1`, `4.0.0rc2`, …thatexplains the scheme.
The F7 item is not due yet
F7 asks for the RC framing to come out. It stays, and this PR does not
touch it beyond tense. The framing is what tells a reader the tag they are
looking at is a pre-release, that Homebrew and Mint still resolve to 3.x, and
that a candidate is opt-in — all of which is true of every candidate including
this one. It is due at 4.0.0 final, when the same document publishes behind
no banner at all and "4.0 ships as a release-candidate line" would be the first
false sentence on the page.
Flagging one thing: I could not find F7's own text. #474 carries a single
CodeRabbit review (the hardcoded-rc1 finding, which is the discipline applied
above) and no numbered findings on the PR, in its comments, or anywhere in the
tree. The paragraph above is my reading of the item as the task described it,
not a quote — if F7 says something else, say so and I will redo this part.
Sourcing, and one correction to the brief
Every claim is from a merged PR body and then checked against
main, nottranscribed. Spot-checks that changed the copy:
Configurations" card; Give each view its own surface and the report one device picker (refs #439) #484 dissolved it into the picker
(
RunSummary+HTML.swift: "the picker the header's device bars became"). Afirst draft described both, which would have documented a card that no longer
renders. The section now has the header state the ring, the legend, the total,
the duration and the digest, and hands the per-device bar and tally to the
picker subsection, where it is something you can act on.
list took no focus, so Page Up/Down, Home and End did nothing in it; arrow
keys ran off a document-level handler and worked, as did the wheel. The bullet
now says what was actually broken.
23 executions,N of M lines,tabindex="0"on both the tests list and thelog body, and the absent "No Selected Attachment" placeholder are each grepped
out of
HTMLTemplates.swiftrather than taken from a PR body.Internal vocabulary is out by construction: no A1/A2/A3 labels, no
KnownLossMasker, no allow-list, no test names, no byte-region tables. Issuenumbers stay, because the document already cites them (#430 and #462 were
already in it; #439 and #460 are new).
The two behaviour changes, called out as behaviour changes
Asked for explicitly, and both are bolded Behaviour change: bullets rather
than left inside a feature list:
Identifier:line is gone. Since fix: derive report identifiers from bundle content so runs are reproducible #430 it carried thereport's own path digest rather than the destination's identifier, so it named
nothing a reader could match against anything outside the page.
list scrolls inside its own share of the height — it did not before, and
because the page itself does not scroll, the overflow was unreachable: on a
long run the last test in the report could not be brought on screen at all.
Verification
swift testis notaffected and was not run.
.githooks/pre-commitrun manually: exit 0 (nothing staged that it lints).The commit is signed.
cross-references read correctly in a release body.
mainat 611f78e, so the section describes the mergedstate of all five PRs rather than any one branch's.