feat(release): publish @opencoven/coven wrapper alongside @opencoven/cli#257
Merged
Conversation
The npm release pipeline now publishes both wrapper names from one tag: - @opencoven/cli (existing primary; backward-compatible) - @opencoven/coven (new co-published alias) Both wrappers share the same native @opencoven/cli-* platform packages as optional dependencies, so installing either ends up with the same binary. Co-publishing lets the canonical \"coven\" name be advertised in docs without breaking existing installs of @opencoven/cli. Implementation: - publish-npm.mjs: writeWrapperPackage now takes a packageName, rewrites README.md and bin/coven.js text via wrapperTextForPackage, and emits into npm/dist/<wrapperPackageDirName>. The main loop publishes both. - release-npm.yml: comment updated to call out both wrapper packages. - publish-npm-test.mjs: two new tests pin wrapperPackageNameList(), wrapperPackageDirName, and wrapperTextForPackage so the regex only rewrites the bare @opencoven/cli reference (not @opencoven/cli-macos). Verified: 37 tests pass (existing 35 + 2 new).
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the npm release tooling to co-publish an additional wrapper package name intended to be an alias for the existing CLI wrapper, while keeping the same platform-specific native optional dependencies.
Changes:
- Publish wrapper packages in a loop over multiple wrapper package names (instead of publishing only
@opencoven/cli). - Add wrapper text rewriting utilities so README/bin copy can reflect the selected wrapper package name while preserving
@opencoven/cli-*native package references. - Extend Node tests to pin wrapper package name list/dir mapping and validate the rewrite regex behavior; update release workflow comments to mention both wrapper packages.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| scripts/publish-npm.mjs | Adds multi-wrapper publishing and wrapper text rewriting helpers. |
| scripts/publish-npm-test.mjs | Adds tests for wrapper name list/dir mapping and rewrite behavior. |
| .github/workflows/release-npm.yml | Updates workflow header comments to document trusted-publisher setup. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+10
to
12
| const primaryWrapperPackageName = '@opencoven/cli'; | ||
| const wrapperPackageNames = [primaryWrapperPackageName, '@opencoven/coven']; | ||
|
|
Comment on lines
+6
to
+8
| # Auth: npm trusted publishing via GitHub Actions OIDC — no long-lived NPM_TOKEN required. Configure | ||
| # @opencoven/cli, @opencoven/coven, and each @opencoven/cli-* native package on npmjs.com | ||
| # -> Settings -> Trusted Publishers before the first OIDC release. |
Comment on lines
+61
to
+65
| test('release publishes the current and coven-named wrapper packages', () => { | ||
| assert.deepEqual(wrapperPackageNameList(), ['@opencoven/cli', '@opencoven/coven']); | ||
| assert.equal(wrapperPackageDirName('@opencoven/cli'), 'coven'); | ||
| assert.equal(wrapperPackageDirName('@opencoven/coven'), 'coven-alias'); | ||
| }); |
BunsDev
added a commit
that referenced
this pull request
Jun 24, 2026
Document v0.0.49 changes across English, Spanish, and Russian release notes: - Co-published @opencoven/coven wrapper alongside @opencoven/cli (PR #257). Both wrappers depend on the same native cli-* platform packages and resolve to the same binary. - Coven Group Chat product + tech spec (PR #258) under specs/coven-group-chat/. Implementation tracked separately. - OpenMeow references scrubbed from docs, api test fixture, and task-manager skill (PR #256). Product-neutral language. No runtime behavior changes for end users in this release.
BunsDev
added a commit
that referenced
this pull request
Jun 25, 2026
@opencoven/coven was never a real product surface. PR #257 added it as a co-published wrapper, but it never finished publishing (the v0.0.49 release blocked on missing Trusted Publisher setup) and we won't keep it. The canonical npm install path remains @opencoven/cli; all native platform packages stay @opencoven/cli-*. publish-npm.mjs / publish-npm-test.mjs / release-npm.yml: - wrapperPackageNames is now [primaryWrapperPackageName] only. - Tests updated: drop the wrapper-list/dir/text-rewrite tests that pinned both names. Add a smaller pin that confirms we publish only @opencoven/cli and that wrapperTextForPackage is a no-op for the primary name. Re-target the packageVersionPublished negative-case test at a synthetic 99.99.99 placeholder. - Release workflow comment updated to drop the @opencoven/coven Trusted Publisher requirement. Docs (en / es / ru / superpowers): - Every "external @opencoven/coven plugin" / "@opencoven/coven package" reference now reads "external OpenClaw bridge plugin" (or "OpenClaw bridge" in mermaid node labels). The OpenClaw integration is still described as an external compatibility adapter; only the placeholder npm name goes away. - 46 files touched, 86 literal references replaced via a single sed pass; rg confirms zero remaining @opencoven/coven references in docs/ or scripts/. Verification: - node --test scripts/publish-npm-test.mjs -> 40/40 pass - rg "@opencoven/coven" docs/ scripts/ -> 0 hits @opencoven/coven was never successfully published to npm (E404'd on the first attempt because the new package needed Trusted Publisher setup we never finished). Nothing to unpublish.
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 npm release pipeline now publishes both wrapper names from one signed tag:
@opencoven/cli— existing primary; fully backward-compatible.@opencoven/coven— new co-published alias.Both wrappers depend on the same native
@opencoven/cli-*platform packages as optional dependencies, so installing either ends up with the same binary. Co-publishing lets the canonical coven name be advertised in docs without breaking existing installs of@opencoven/cli.Implementation
scripts/publish-npm.mjs—writeWrapperPackagenow takes apackageName, rewritesREADME.mdandbin/coven.jstext viawrapperTextForPackage, and emits intonpm/dist/<wrapperPackageDirName>(covenfor the primary,coven-aliasfor the new name). The main loop publishes both..github/workflows/release-npm.yml— comment updated to call out both wrapper packages so trusted-publisher setup is documented.scripts/publish-npm-test.mjs— two new tests pinwrapperPackageNameList(),wrapperPackageDirName, andwrapperTextForPackageso the regex only rewrites the bare@opencoven/clireference (not@opencoven/cli-macosor similar).Verification
Before the first OIDC release of
@opencoven/coven, configure it as a Trusted Publisher on npmjs.com — same procedure as the existing packages.