Skip to content

fix: use feat: prefix in sync PR titles for release-please - #67

Merged
mateodelnorte merged 1 commit into
mainfrom
fix/sync-pr-conventional-commit
Mar 29, 2026
Merged

mateodelnorte merged 1 commit into
mainfrom
fix/sync-pr-conventional-commit

Conversation

@mateodelnorte

@mateodelnorte mateodelnorte commented Mar 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Sync PRs from child repos used chore: prefix which release-please ignores
  • Changed to feat: so child repo updates trigger version bumps and homebrew releases
  • This is why the meta_git_cli#25 fix didn't produce a release

Test plan

  • Next child repo sync creates a PR with feat(repo): sync ... title
  • release-please creates a release PR after the sync PR merges

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the categorization scheme for automated repository synchronization commits.

Sync PRs from child repos used chore: prefix which release-please
ignores. Changed to feat: so child repo updates trigger version bumps
and homebrew releases.
@mateodelnorte
mateodelnorte enabled auto-merge (squash) March 29, 2026 16:45
@coderabbitai

coderabbitai Bot commented Mar 29, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b06a2ac8-8651-4f4c-b4ca-9385a1993e84

📥 Commits

Reviewing files that changed from the base of the PR and between 2fe661d and b766c98.

📒 Files selected for processing (1)
  • .github/workflows/on-child-update.yml

Walkthrough

The workflow file .github/workflows/on-child-update.yml was modified to update the sync PR commit message and title prefix from chore to feat, changing the conventional commit type used when syncing child repository updates.

Changes

Cohort / File(s) Summary
Workflow Configuration
.github/workflows/on-child-update.yml
Updated sync PR commit message and title prefix from chore(${REPO_NAME}): sync ${SHORT_SHA} to feat(${REPO_NAME}): sync ${SHORT_SHA}.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Poem

🐰 A sync so fine, from chore to feat so grand,
Updates now proclaim: "fresh features in the land!"
With whiskers twitching, I hop and celebrate,
This tiny change that makes our commits first-rate! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/sync-pr-conventional-commit

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

@mateodelnorte
mateodelnorte merged commit 1518fc4 into main Mar 29, 2026
8 of 9 checks passed
@greptile-apps

greptile-apps Bot commented Mar 29, 2026

Copy link
Copy Markdown

Greptile Summary

This PR fixes a single-line issue in the child-repo sync workflow: the auto-created sync PRs were titled with a chore: prefix, which release-please ignores by design, so child-repo updates never triggered version bumps or homebrew releases. Changing the prefix to feat: makes release-please recognise the squash-merged commit and create a release PR.

  • Root cause correctly identified — chore: is explicitly excluded from release-please's default commit-type list; feat: (and fix:) are not.
  • Squash-merge flow is compatible — GitHub uses the PR title as the squash commit subject, so the feat(<repo>): sync <sha> message will land in main's history exactly as release-please expects.
  • Semantics consideration — feat: achieves the goal, but it will bump the minor version for every child-repo sync once the project passes v1.0.0. With the current pre-major config (bump-patch-for-minor-pre-major: true) there is no difference today, but fix: would lock the behaviour to patch bumps permanently and may better reflect what a dependency sync actually represents.

Confidence Score: 5/5

Safe to merge — single-line change with a clear, well-reasoned fix; the only feedback is a P2 style suggestion about semver semantics post-1.0.0.

All findings are P2 (style/best-practice). The change is minimal, directly addresses the stated root cause, and is compatible with the existing squash-merge and release-please setup.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/on-child-update.yml Single-character prefix change from chore to feat in the sync PR title so release-please picks up the commit and triggers version bumps; fix is minimal and targeted.

Sequence Diagram

sequenceDiagram
    participant CR as Child Repo
    participant GHA as on-child-update workflow
    participant GH as GitHub (PR / squash merge)
    participant RP as release-please (on-push-main)
    participant REL as release workflow

    CR->>GHA: repository_dispatch child-repo-updated
    GHA->>GH: git push sync/repo/sha branch
    GHA->>GH: gh pr create "feat(repo): sync sha"
    GHA->>GH: gh pr merge --auto --squash
    GH->>GH: squash commit → main<br/>"feat(repo): sync sha"
    GH->>RP: push to main triggers on-push-main.yml
    RP->>GH: create/update Release PR (version bump)
    Note over RP,GH: Previously "chore:" was ignored here
    GH-->>RP: Release PR merged
    RP->>REL: release_created=true → trigger-release job
    REL->>REL: build & publish homebrew release
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: .github/workflows/on-child-update.yml
Line: 38

Comment:
**`feat:` bumps minor after 1.0.0 — consider `fix:` for patch-only bumps**

Using `feat:` correctly triggers release-please (good!), but with `bump-minor-pre-major: true` / `bump-patch-for-minor-pre-major: true` the behavior changes once the project crosses `v1.0.0`:

- **Pre-1.0.0 today**: `feat:` is downgraded to a patch bump — identical to `fix:`.
- **Post-1.0.0**: `feat:` bumps the **minor** version on every child-repo sync, which may be more aggressive than intended for what is essentially a dependency-update commit.

If the intent is always a patch bump regardless of semver stage, `fix:` expresses that more precisely and keeps the behaviour consistent across the version boundary:

```suggestion
          PR_TITLE="fix(${REPO_NAME}): sync ${SHORT_SHA}"
```

This is a style/semantics concern rather than a bug — `feat:` still achieves the stated goal of triggering releases — but worth being intentional about.

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "fix: use feat: prefix in sync PR titles ..." | Re-trigger Greptile


BRANCH="sync/${REPO_NAME}/${SHORT_SHA}"
PR_TITLE="chore(${REPO_NAME}): sync ${SHORT_SHA}"
PR_TITLE="feat(${REPO_NAME}): sync ${SHORT_SHA}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 feat: bumps minor after 1.0.0 — consider fix: for patch-only bumps

Using feat: correctly triggers release-please (good!), but with bump-minor-pre-major: true / bump-patch-for-minor-pre-major: true the behavior changes once the project crosses v1.0.0:

  • Pre-1.0.0 today: feat: is downgraded to a patch bump — identical to fix:.
  • Post-1.0.0: feat: bumps the minor version on every child-repo sync, which may be more aggressive than intended for what is essentially a dependency-update commit.

If the intent is always a patch bump regardless of semver stage, fix: expresses that more precisely and keeps the behaviour consistent across the version boundary:

Suggested change
PR_TITLE="feat(${REPO_NAME}): sync ${SHORT_SHA}"
PR_TITLE="fix(${REPO_NAME}): sync ${SHORT_SHA}"

This is a style/semantics concern rather than a bug — feat: still achieves the stated goal of triggering releases — but worth being intentional about.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/on-child-update.yml
Line: 38

Comment:
**`feat:` bumps minor after 1.0.0 — consider `fix:` for patch-only bumps**

Using `feat:` correctly triggers release-please (good!), but with `bump-minor-pre-major: true` / `bump-patch-for-minor-pre-major: true` the behavior changes once the project crosses `v1.0.0`:

- **Pre-1.0.0 today**: `feat:` is downgraded to a patch bump — identical to `fix:`.
- **Post-1.0.0**: `feat:` bumps the **minor** version on every child-repo sync, which may be more aggressive than intended for what is essentially a dependency-update commit.

If the intent is always a patch bump regardless of semver stage, `fix:` expresses that more precisely and keeps the behaviour consistent across the version boundary:

```suggestion
          PR_TITLE="fix(${REPO_NAME}): sync ${SHORT_SHA}"
```

This is a style/semantics concern rather than a bug — `feat:` still achieves the stated goal of triggering releases — but worth being intentional about.

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

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