From 2904ac83934802781e501e246acc41e7dc3b01be Mon Sep 17 00:00:00 2001 From: T Date: Thu, 11 Jun 2026 12:16:46 -0500 Subject: [PATCH] fix(release): restore two-component config + linked-versions to fix CLI starvation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The single-component collapse (#222, #226) was the wrong shape. release-please v17.6.0 cannot create a release for a single root package with a scoped package-name: `this.component = options.component || normalizeComponent(name)` falsy-coerces any empty component and derives `cli` from `@opencodehub/cli`, then buildRelease's standalone-component check rejects the component-less release PR (`PR component: undefined does not match configured component: cli`) and tags nothing → release_created=false → npm never publishes. Proven from source; `component: ""` provably cannot work (the `||`). Why two components is correct: with 2 release entries the aggregate PR has length===2, so that standalone-component check is SKIPPED entirely — which is why this scheme released reliably for 20+ versions. The ORIGINAL starvation bug (root absorbs all commits → 0.8.5 while published cli starves at 0.7.4) is now fixed the purpose-built way: the `linked-versions` plugin links root+cli so any commit that bumps root bumps cli in lockstep. cli publishes every release. Manifest reseeded to the last component-format tags (root 0.8.5, cli 0.7.4 — both tags exist, so boundary detection is clean and there's no giant-changelog risk). package.json versions aligned. The bare v0.7.4/v0.7.5 bootstrap tags from the abandoned single-component attempt are inert under this config (no component → don't match). --- .release-please-config.json | 20 +++++++++++++------- .release-please-manifest.json | 3 ++- package.json | 2 +- packages/cli/package.json | 2 +- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.release-please-config.json b/.release-please-config.json index 1393d3b..237e274 100644 --- a/.release-please-config.json +++ b/.release-please-config.json @@ -21,13 +21,19 @@ ], "packages": { ".": { + "package-name": "opencodehub", + "component": "root" + }, + "packages/cli": { "package-name": "@opencodehub/cli", - "component": "", - "include-component-in-tag": false, - "changelog-path": "packages/cli/CHANGELOG.md", - "extra-files": [ - { "type": "json", "path": "packages/cli/package.json", "jsonpath": "$.version" } - ] + "component": "cli" } - } + }, + "plugins": [ + { + "type": "linked-versions", + "groupName": "opencodehub", + "components": ["root", "cli"] + } + ] } diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 84caa8a..1513e19 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,4 @@ { - ".": "0.7.6" + ".": "0.8.5", + "packages/cli": "0.7.4" } diff --git a/package.json b/package.json index 2293752..b89a640 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opencodehub-monorepo", - "version": "0.7.6", + "version": "0.8.5", "private": true, "description": "OpenCodeHub — Apache-2.0 code intelligence graph + MCP server for AI coding agents", "license": "Apache-2.0", diff --git a/packages/cli/package.json b/packages/cli/package.json index b771dc6..4f55bfb 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@opencodehub/cli", - "version": "0.7.6", + "version": "0.7.4", "description": "OpenCodeHub — codehub CLI (analyze, setup, mcp, list, status, clean, query, context, impact, sql)", "license": "Apache-2.0", "repository": {