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]
