fix(release): set explicit empty component so the CLI release PR matches#226
Merged
Merged
Conversation
The single-component collapse (#222) set package-name "@opencodehub/cli" with no `component`. release-please then INFERS the component from the package name's scope as "cli", but the release PR (branch release-please--branches--main, title "chore: release main") carries NO component. In buildRelease's standalone-component check this mismatches: ⚠ PR component: undefined does not match configured component: cli so release-please builds ZERO candidate releases for the merged release PR, tags nothing, and returns release_created=false — the workflow_call to release.yml never fires and npm never publishes. (This is the real cause behind the "untagged, merged release PRs outstanding" abort, which is only a downstream symptom in createPullRequests.) Fix: set `"component": ""` explicitly so the configured component is empty and matches the PR's empty parsed component. With this, createReleases builds and tags v0.7.6 for the outstanding #225, flips it to autorelease:tagged, sets release_created=true, and the automated release-please.yml → workflow_call → release.yml chain publishes via the matching trusted-publisher OIDC path.
theagenticguy
added a commit
that referenced
this pull request
Jun 11, 2026
…LI starvation (#227) ## Why the single-component approach failed (proven from source) The collapse to one root package (#222, #226) **structurally cannot create a release** in release-please v17.6.0: - `this.component = options.component || normalizeComponent(packageName)` — the `||` falsy-coerces `component: ""`, so it derives `cli` from `@opencodehub/cli`. - `buildRelease`'s standalone-component check (single release entry) then compares the release PR's component (`undefined` — branch `release-please--branches--main`) against `cli` → mismatch → **zero releases built**, `release_created=false`, npm never publishes. - Observed live: `⚠ PR component: undefined does not match configured component: cli`. `component: ""` provably can't fix it. ## Why two components is the correct shape With **2 components** the aggregate release PR has 2 release entries (`length === 2`), so that broken standalone-component check is **skipped entirely** — which is exactly why this scheme released reliably for 20+ versions. Reverting is the proven path, not a regression. ## The original bug, fixed properly The starvation bug you hit (private root absorbs every commit → ran to 0.8.5, while the published cli only saw `packages/cli/**` → starved at 0.7.4) is now fixed with the purpose-built **`linked-versions`** plugin: ```json "plugins": [{ "type": "linked-versions", "groupName": "opencodehub", "components": ["root", "cli"] }] ``` linked-versions keeps root + cli in lockstep — any commit that bumps root bumps cli to the same version. **The published CLI now advances on every release**, which is the actual fix you asked for. ## State reconciliation - Manifest reseeded to the last component-format tags: `root 0.8.5`, `cli 0.7.4` (both tags exist → clean boundary detection, no giant-changelog risk). - `package.json` versions aligned (root 0.8.5, cli 0.7.4 = npm latest). - Cleared the stuck `autorelease: pending` label on the abandoned single-component PR #225. - The bare `v0.7.4`/`v0.7.5` bootstrap tags from the abandoned attempt are inert under this config (no component → don't match). ## Expected on merge release-please opens a release PR bumping **both** components to **0.8.6** (linked, highest+patch). Merging it → `release_created=true` → tags `root-v0.8.6` + `cli-v0.8.6` → automated `release-please.yml → release.yml` chain → **npm publishes `@opencodehub/cli@0.8.6`** via the matching trusted-publisher OIDC path. (npm jumps 0.7.4 → 0.8.6; forward + valid. cli now tracks the unified line.) Co-authored-by: T <t@example.com>
Merged
theagenticguy
pushed a commit
that referenced
this pull request
Jun 11, 2026
🤖 Automated release via release-please --- <details><summary>root: 0.8.6</summary> ## [0.8.6](root-v0.8.5...root-v0.8.6) (2026-06-11) ### Bug Fixes * **release:** collapse release-please to one published @opencodehub/cli component ([#222](#222)) ([ab749bd](ab749bd)) * **release:** make npm publish idempotent on stuck-release re-runs ([#224](#224)) ([12e1c66](12e1c66)) * **release:** restore two-component config + linked-versions to fix CLI starvation ([#227](#227)) ([f849f24](f849f24)) * **release:** set explicit empty component so the CLI release PR matches ([#226](#226)) ([4188b52](4188b52)) </details> <details><summary>cli: 0.8.6</summary> ## [0.8.6](cli-v0.7.4...cli-v0.8.6) (2026-06-11) ### Bug Fixes * **release:** restore two-component config + linked-versions to fix CLI starvation ([#227](#227)) ([f849f24](f849f24)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The actual root cause (npm stuck at 0.7.4)
After collapsing to one published component (#222,
package-name: "@opencodehub/cli", nocomponent), release-please infers the component from the package-name scope ascli. But the release PR (branchrelease-please--branches--main, titlechore: release main) carries no component. InbuildRelease's standalone-component check this mismatches:So release-please builds zero candidate releases for the merged release PR → tags nothing →
release_created=false→ theworkflow_calltorelease.ymlnever fires → npm never publishes. The "untagged, merged release PRs outstanding - aborting" message is only the downstream symptom increatePullRequests(it refuses to open a new PR while a mergedautorelease: pendingPR exists).Found by reading the failing run's
Building releasestrace (line 50). #225's branch/title are identical to PRs that released fine — so it wasn't a branch-name issue; it's the inferred-vs-empty component mismatch.Fix
One line:
"component": ""on the.package, so the configured component is empty and matches the PR's empty parsed component.Expected sequence on merge
createReleasesfinds the outstandingautorelease: pendingchore: release main #225, now component-matches → builds + tags v0.7.6, flips chore: release main #225 →autorelease: tagged, setsrelease_created=true.release-please.ymlrelease job fires →workflow_call→release.yml→ npm publish 0.7.6 (entry workflow =release-please.yml→ matches the trusted publisher → OIDC succeeds).createPullRequeststhen opens a fresh 0.7.7 PR for this config-fix commit.This finally unsticks the published CLI via the automated (trusted-publisher-matching) path — no npm-account change needed.