ci: automate release notes and PR labeling#392
Conversation
Exclude Dependabot PRs from release notes and group changes into "Features & Enhancements", "Bug Fixes", and "Other Changes" categories using existing repository labels. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Apply repository type labels to PRs automatically when opened or edited, based on the Conventional Commits prefix in the PR title. Respects manually applied labels by skipping when a conflicting type label already exists. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add docs/code/developer-workflows.md covering Conventional Commits usage, PR guidelines, and automatic labeling rules. Add a Release Notes section to docs/releases.md explaining category groupings and Dependabot exclusions. Link both from docs/code/README.md. Replace the inline commit/PR guidelines in AGENTS.md with a pointer to the new doc. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@dcalhoun This looks good, but I should mention that Claude found one potential issue (which most likely isn't a problem):
Also, can you clarify what is meant by, "Creating a release and confirming Dependabot PRs are excluded?" If this means a signed release build I don't believe I'm able to do that. |
Avoid including Dependabot alias.
- add Breaking Changes section to release.yml using [Type] Breaking Change label - update label-pr regex to correctly parse Conventional Commits breaking change indicator (!) - apply [Type] Breaking Change exclusively when ! is present, skipping the type label Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Excludes [Type] Automated Testing, [Type] Build Tooling, [Type] Task, [Type] Developer Documentation, and dependencies from the Other Changes category, keeping release notes focused on user-visible changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nbradbury thanks for sharing. I was unable to find definitive documentation on which name is correct. I ultimately excluded both in bb3c820 to be sure. I add a few additional changes as well:
I meant creating a new release via the project's |
|
@dcalhoun I'll approve this but wanted to mention a couple of items Claude suggested upon re-review:
|
What?
Adds GitHub configuration and documentation to automate release notes generation and PR labeling based on Conventional Commits.
Why?
Release notes were noisy — Dependabot dependency bump PRs dominated the changelog, making it hard to see meaningful changes. There was also no consistent labeling of PRs by type, and the commit/PR conventions lived only in AGENTS.md (AI agent guidance) rather than human-facing docs.
How?
.github/release.yml: Configures GitHub's automatic release notes to exclude Dependabot PRs and group changes into four categories — "Breaking Changes", "Features & Enhancements", "Bug Fixes", and "Other Changes" — using existing repository type labels. Noise labels ([Type] Automated Testing,[Type] Build Tooling,[Type] Task,[Type] Developer Documentation,dependencies) are excluded from "Other Changes" to keep the changelog focused on user-visible changes..github/workflows/label-pr.yml: On PR open or edit, parses the Conventional Commits prefix and breaking change indicator (!) from the PR title and applies the matching repository label. When!is present (e.g.feat!:,fix(scope)!:), only[Type] Breaking Changeis applied. Skips if a conflicting type label is already present, so developers can override the auto-assigned label.bin/release.sh: Release commits now follow the Conventional Commits format (chore(release): x.y.z).docs/code/developer-workflows.md(new): Human-facing documentation covering Conventional Commits usage, PR guidelines, and the automatic labeling rules.docs/releases.md: Added a "Release Notes" section explaining category groupings, Dependabot exclusions, and linking to the labeling rules.docs/code/README.md: Linked to the newdeveloper-workflows.md.AGENTS.md: Replaced inline commit/PR guidelines with a pointer to the new doc.Conventional Commits → label mapping:
feat[Type] Enhancementfix[Type] Bugperf[Type] Performancetest[Type] Automated Testingdocs[Type] Developer Documentationbuild,ci[Type] Build Toolingrefactor,task,chore,style[Type] Task![Type] Breaking ChangeTesting Instructions
We can forgo testing for now, as the changes will not take effect until they are merged.
Accessibility Testing Instructions
N/A — no UI changes.