Skip to content

chore: release main#225

Merged
theagenticguy merged 1 commit into
mainfrom
release-please--branches--main
Jun 11, 2026
Merged

chore: release main#225
theagenticguy merged 1 commit into
mainfrom
release-please--branches--main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Automated release via release-please

0.7.6

0.7.6 (2026-06-11)

Bug Fixes

  • release: make npm publish idempotent on stuck-release re-runs (#224) (12e1c66)

This PR was generated with Release Please. See documentation.

@github-actions github-actions Bot requested a review from theagenticguy as a code owner June 11, 2026 16:08
@theagenticguy theagenticguy reopened this Jun 11, 2026
@theagenticguy theagenticguy merged commit dc27084 into main Jun 11, 2026
42 checks passed
@theagenticguy theagenticguy deleted the release-please--branches--main branch June 11, 2026 16:13
theagenticguy added a commit that referenced this pull request Jun 11, 2026
…hes (#226)

## The actual root cause (npm stuck at 0.7.4)

After collapsing to one published component (#222, `package-name:
"@opencodehub/cli"`, no `component`), release-please **infers** the
component from the package-name 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 → `release_created=false` → the
`workflow_call` to `release.yml` never fires → npm never publishes. The
*"untagged, merged release PRs outstanding - aborting"* message is only
the **downstream symptom** in `createPullRequests` (it refuses to open a
new PR while a merged `autorelease: pending` PR exists).

Found by reading the failing run's `Building releases` trace (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
1. `createReleases` finds the outstanding `autorelease: pending`
**#225**, now component-matches → builds + tags **v0.7.6**, flips #225 →
`autorelease: tagged`, sets `release_created=true`.
2. `release-please.yml` release job fires → `workflow_call` →
`release.yml` → **npm publish 0.7.6** (entry workflow =
`release-please.yml` → matches the trusted publisher → OIDC succeeds).
3. `createPullRequests` then 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.

Co-authored-by: T <t@example.com>
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>
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