Skip to content

chore(release): pin cli + compound-engineering to 3.0.2 via per-package release-as#667

Merged
tmchow merged 2 commits intomainfrom
tmchow/fix-version-bump
Apr 24, 2026
Merged

chore(release): pin cli + compound-engineering to 3.0.2 via per-package release-as#667
tmchow merged 2 commits intomainfrom
tmchow/fix-version-bump

Conversation

@tmchow
Copy link
Copy Markdown
Collaborator

@tmchow tmchow commented Apr 24, 2026

Summary

Fixes the incorrect version scoping in PR #661 by (1) reverting the empty pin commit 7a6c84d and (2) pinning only cli + compound-engineering to 3.0.2 via per-package release-as config — the actual supported mechanism in release-please.

Background

PR #665 tried to re-pin the pending release from 3.1.0 back to 3.0.2 using an empty commit with Release-As: cli@3.0.2 / Release-As: compound-engineering@3.0.2 footers. This had two unsupported assumptions:

  1. <component>@<version> is not real syntax. release-please's parser (src/commit.ts) ignores the component@ prefix and reads the whole value as a version. Both footers effectively became Release-As: 3.0.2.
  2. Empty commits fan out to every package bucket. src/util/commit-split.ts with includeEmpty: true pushes file-less commits into every package. Combined with (1), this caused release PR chore: release main #661 to propose bumping all five packages to 3.0.2:
    • cli 3.0.1 → 3.0.2 ✓ (intended)
    • compound-engineering 3.0.1 → 3.0.2 ✓ (intended)
    • coding-tutor 1.3.0 → 3.0.2 ✗ (unintended)
    • marketplace 1.0.2 → 3.0.2 ✗ (unintended)
    • cursor-marketplace 1.0.1 → 3.0.2 ✗ (unintended)

What this PR does

  • Revert 7a6c84d3 (empty commit). Because the reverted commit is empty, the revert is also empty — this exists as an intent signal in git history. Note: a revert commit does NOT remove the ancestor commit's Release-As footers from release-please's view. That is handled separately (see below).

  • Add "release-as": "3.0.2" to the . and plugins/compound-engineering blocks in release-please-config.json. This is the supported mechanism — strategies/base.ts#buildNewVersion short-circuits the bump calculation only for packages that have config-level release-as, leaving the other three packages' buckets untouched.

  • (Already applied) Edited PR chore: pin next release to 3.0.2 #665's description to include a BEGIN_COMMIT_OVERRIDE / END_COMMIT_OVERRIDE block. This tells release-please to treat commit 7a6c84d3 as chore: no-op on every future run, which neutralizes the fanned-out RELEASE AS note that would otherwise still bump the other three packages.

Expected effect after merge

On the release-please workflow run triggered by this merge:

  • PR chore: release main #661 regenerates with:
    • cli 3.0.1 → 3.0.2
    • compound-engineering 3.0.1 → 3.0.2
    • No changes to coding-tutor, marketplace, or cursor-marketplace.
  • Changelog entries only appear for cli and compound-engineering.

Follow-up (required)

After PR #661 merges and the 3.0.2 release ships, open a cleanup PR that removes the two "release-as": "3.0.2" entries from release-please-config.json. Otherwise every subsequent release will stay pinned at 3.0.2.

Test plan

  • After this PR merges, confirm release-please workflow runs and PR chore: release main #661 regenerates.
  • Confirm the regenerated PR chore: release main #661 diff ONLY touches:
    • package.json (cli)
    • .github/.release-please-manifest.json (only . and plugins/compound-engineering lines change)
    • CHANGELOG.md, plugins/compound-engineering/CHANGELOG.md
    • plugins/compound-engineering/.claude-plugin/plugin.json
    • plugins/compound-engineering/.codex-plugin/plugin.json
    • plugins/compound-engineering/.cursor-plugin/plugin.json
  • Confirm the regenerated PR chore: release main #661 does NOT touch:
    • plugins/coding-tutor/**
    • .claude-plugin/marketplace.json, .claude-plugin/CHANGELOG.md
    • .cursor-plugin/marketplace.json, .cursor-plugin/CHANGELOG.md
  • If regeneration looks wrong, DO NOT MERGE chore: release main #661 — investigate.
  • After chore: release main #661 merges and releases ship, open cleanup PR to remove the two release-as entries.

🤖 Generated with Claude Code

tmchow added 2 commits April 23, 2026 23:08
Per-package `release-as` is the supported release-please mechanism for
pinning a subset of monorepo packages to a specific version. Unlike the
commit-footer form (`Release-As:`), this short-circuits only the two
configured packages in `strategies/base.ts#buildNewVersion` and does not
affect the other three packages' buckets.

Paired with:

- The BEGIN_COMMIT_OVERRIDE block in #665's body (neutralizes the
  fanned-out `Release-As` footer from the empty pin commit for
  coding-tutor, marketplace, and cursor-marketplace).
- The revert of 7a6c84d in the preceding commit (git-history-level
  intent signal; does not by itself remove the footer from
  release-please's view — the PR body override does that).

These `release-as` entries must be removed in a follow-up PR after the
3.0.2 release ships, or every subsequent release will stay pinned at
3.0.2.
@tmchow tmchow merged commit e136d7f into main Apr 24, 2026
2 checks passed
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