Skip to content

chore(tools): make_changelog missed and resurrected PRs#6108

Open
henryiii wants to merge 3 commits into
pybind:masterfrom
henryiii:fix-make-changelog-staleness
Open

chore(tools): make_changelog missed and resurrected PRs#6108
henryiii wants to merge 3 commits into
pybind:masterfrom
henryiii:fix-make-changelog-staleness

Conversation

@henryiii

@henryiii henryiii commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

🤖 AI text below 🤖

nox -s make_changelog skipped some PRs, showed old descriptions for others, and listed PRs whose label was already removed. There were three separate causes:

  1. Stale PR bodies. The requests were unauthenticated, so GitHub replied with Cache-Control: public and a shared CDN cache supplied old descriptions. The script now sends a token from GITHUB_TOKEN, GH_TOKEN, or gh auth token. This also raises the rate limit from 60/hr to 5000/hr, which pagination needs.
  2. Skipped entries. The heading regex required a trailing colon, so ## Suggested changelog entry without one was reported as missing. The colon is now optional.
  3. Unlabeled PRs coming back. GitHub's labels= list filter is eventually consistent and lagged a label removal by more than 20 minutes, even authenticated and with a cache-busting parameter. Each issue's own labels array is now re-checked on the client.

Two more changes on top:

  • Subcategories group automatically. Only the main categories are listed now. A conventional commit scope such as fix(cmake): becomes a group inside its main category, printed under <!-- fix(cmake) --> and sorted alphabetically after the entries that have no scope. The main heading also prints when a category holds only scoped entries, which feat(subinterpreter) did not get before. A breaking-change ! in the prefix is accepted.
  • 100 issues per page instead of the default 30.

Also moves to ghapi>=2 and its sync API.

Checked against the current label set: the false "missing" reports and the resurrected PRs are gone, and the remaining reports are PRs that really have no changelog heading.

Suggested changelog entry:

henryiii added 2 commits July 24, 2026 21:58
Three unrelated causes made the generated changelog wrong:

- Requests were unauthenticated, so GitHub returned
  "Cache-Control: public" and a shared CDN cache supplied stale PR
  bodies. Send a token from GITHUB_TOKEN, GH_TOKEN, or `gh auth token`.
- The heading regex required a trailing colon, so a PR that wrote
  "## Suggested changelog entry" without one was reported as missing.
- The server-side label filter lags behind label removals by many
  minutes, so PRs that no longer have the label came back. Re-check the
  label on each issue.

Also update to ghapi>=2 and its sync API.

Assisted-by: ClaudeCode:claude-opus-5
Assisted-by: ClaudeCode:claude-opus-5
@henryiii henryiii changed the title fix(tools): make_changelog missed and resurrected PRs chore(tools): make_changelog missed and resurrected PRs Jul 25, 2026
Only the main categories are listed now. A conventional commit scope on
the title, such as "fix(cmake):", becomes a group inside its main
category, sorted alphabetically after the entries that have no scope.
The main heading also prints when a category holds only scoped entries.

Assisted-by: ClaudeCode:claude-opus-5
@Skylion007

Copy link
Copy Markdown
Collaborator

@claude review this PR

1 similar comment
@henryiii

Copy link
Copy Markdown
Collaborator Author

@claude review this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants