Skip to content

ci: match scoped release PR titles in auto-merge - #134

Merged
jdx merged 2 commits into
mainfrom
ci/match-scoped-release-titles
Sep 24, 2026
Merged

jdx merged 2 commits into
mainfrom
ci/match-scoped-release-titles

Conversation

@jdx

@jdx jdx commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

https://entire.io/gh/jdx/tak/trails/19

The release PR was never merged automatically. auto-merge-release.yml looked for an open PR whose title starts with chore: release. But when release-plz releases a single crate, it titles the PR with the crate as a scope, for example chore(tak-cli): release v0.0.12 (#133) or chore(tak-cli): release v0.0.11 (#100). Neither the daily schedule nor a manual gh workflow run auto-merge-release.yml (the early-release path in RELEASING.md) found them. On 2026-09-24, run 36034389411 logged No open release-plz release PR to main, and #133 had to be merged by hand.

Changes

  • auto-merge-release.yml: the title filter is now test("^chore(\\([^)]+\\))?: release( |$)"). It accepts both chore(<crate>): release v<version> and the unscoped chore: release that release-plz uses when it releases several crates at once (chore: release #27). The other checks are unchanged: head branch prefix release-plz-, head owner jdx, base main, and a non-empty body.
  • cliff.toml: the rule that keeps release commits out of the changelog now matches the same optional scope and requires a space or end of subject after release, like the PR-title filter (^chore(\([^)]+\))?: (release|Release)( |$)). A commit such as chore(ci): release-plz config therefore still appears in the changelog.

Verification

AI-assisted — Tool: Claude Code; model: anthropic/claude-opus-5-5; version: unavailable.

🤖 Generated with Claude Code


Note

Low Risk
CI and changelog regex tweaks only; no runtime or auth behavior changes.

Overview
Fixes release auto-merge failing when release-plz opens a single-crate PR titled chore(<crate>): release v<version> instead of the unscoped chore: release.

The auto-merge-release.yml jq title filter now uses a regex that accepts an optional scope before release, while keeping the existing guards (branch prefix, head owner, non-empty body). cliff.toml uses the same pattern so scoped release commits stay excluded from the changelog.

Reviewed by Cursor Bugbot for commit 4a6b591. Bugbot is set up for automated code reviews on this repo. Configure here.

release-plz titles its release PR `chore(tak-cli): release vX.Y.Z` when a
single crate is released, so the `startswith("chore: release")` filter never
matched and the release PR was never merged automatically. Accept an
optional scope, and make cliff.toml's release-commit skip rule match the
same titles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 36 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Advanced

Run ID: b63bd4c4-d8d4-4c12-8e9e-9af8f672d89a

📥 Commits

Reviewing files that changed from the base of the PR and between e065738 and 4a6b591.

📒 Files selected for processing (2)
  • .github/workflows/auto-merge-release.yml
  • cliff.toml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no outstanding finding remains.

Summary

The PR updates release-PR selection to recognize scoped and unscoped release titles, and aligns the changelog skip rule with those titles.

  • The change since the previous review adds a word boundary to the changelog rule, preserving maintenance commits such as chore(ci): release-plz config.

Reviews (2) · Last reviewed commit: "ci: require a word boundary after releas..."

Comment thread cliff.toml Outdated
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jdx
jdx enabled auto-merge (squash) September 24, 2026 17:52
@jdx
jdx merged commit 7fb149b into main Sep 24, 2026
17 of 18 checks passed
@jdx
jdx deleted the ci/match-scoped-release-titles branch September 24, 2026 17:53
@github-actions

Copy link
Copy Markdown

Instruction counts

Nothing was compared, and so nothing was gated. No series appears on both sides: either the base has no measurements recorded, or the two were measured on different runner classes, which are deliberately not comparable — counts shift between machine types by more than a real regression does.

New, nothing to compare against: help on jdx-perf-v1-ubuntu24.04-x64-tak-gha20260920.314.1-rust1.98.1-img5263c143, version on jdx-perf-v1-ubuntu24.04-x64-tak-gha20260920.314.1-rust1.98.1-img5263c143

Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run.

Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.

4a6b59192990 vs e065738428a3 · measured on the runner, not pushed to the history.

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.

1 participant