lukaszlenart opened a new pull request, #1828:
URL: https://github.com/apache/struts/pull/1828

   Refinements to the `creating-version-notes` skill, each traced to something 
the Struts 7.3.0 release run exposed. Two of them are corrections the release 
manager had to make by hand.
   
   ## Corrections
   
   **Breaking changes were too long.** The skill quoted the paragraph-length 
7.2.1 `CookieInterceptor` entry as its model and asked authors to "say what 
stops working, and say what replaces it" — guidance that produces prose 
duplicating the ticket. Now: one sentence plus the ticket link, existing so a 
reader can judge *whether to open the ticket*.
   
   **`Won't Do` tickets were dropped.** Reconciliation only knew "listed" or 
"not in the release", so WW-1522 and WW-2635 vanished. They now go under a 
**Rejected requests** section — not into Improvement or New Feature, where they 
read as delivered, and not into the bin, because the decision is the news.
   
   ## New rules recorded
   
   - **Deprecations** gets its own section — nothing stops working yet, so 
mixing it into Breaking changes overstates the upgrade cost.
   - **Full page section order** is now explicit: Breaking changes → 
Deprecations → Rejected requests → issue types → Issue Detail → Issue List → 
Other resources.
   - **Security summaries** are truncated at a clause boundary when the ticket 
itself names the bypass or leak and the bulletin is unpublished. WW-5643 reads 
"… — maxDepth bypass and cross-request data leak"; the page stops at 
"concurrent requests". The cut is reported to the release manager rather than 
decided silently.
   - A ticket with no commit in range is **not automatically wrong** — check 
the component first, since `IDEA Plugin` and `Example Applications` live in 
other repositories.
   
   ## GitHub release
   
   - **Name the previous tag.** `gh api .../generate-notes -f 
previous_tag_name=…` produces a correct body first time, replacing the old 
detect-the-bad-range-then-prune advice. The 6.11.0 run needed 88 stale entries 
removed by hand.
   - **Creating a release that does not exist** is covered alongside editing 
one that does — 7.3.0 had no release at all.
   - **Verify the split by set-diff** of the sorted entry lists; a mixed 
dependency/CI PR stays in What's Changed.
   
   ## New: the test-build announcement
   
   The `[TEST] Apache Struts X.Y.Z test build is ready` mail is now the 
documented closing step, with its fixed body and four substitutions. The risk 
clause is keyed to reality — silent when there are no Breaking changes, "but it 
contains significant changes" when there are, exactly as 6.11.0 and 7.3.0 were 
sent. The recipient list is flagged as the release manager's call, since `dev@` 
and `user@` have both been used.
   
   ## Also
   
   Section-update verification generalised to any section write (shortening 
Breaking changes risks swallowing Deprecations, the same trap as the Migration 
Guide), and a note that `content_file` is rejected for paths outside the 
repository — pass the body inline.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to