Skip to content

Add relayburn install wrapper so npm i -g relayburn exposes burn#150

Merged
willwashburn merged 4 commits intomainfrom
feat/relayburn-install-wrapper
Apr 27, 2026
Merged

Add relayburn install wrapper so npm i -g relayburn exposes burn#150
willwashburn merged 4 commits intomainfrom
feat/relayburn-install-wrapper

Conversation

@willwashburn
Copy link
Copy Markdown
Member

@willwashburn willwashburn commented Apr 27, 2026

Summary

  • Adds a thin packages/relayburn wrapper package (unscoped name relayburn) so users can run npm i -g relayburn and get the burn command. The existing npm i -g @relayburn/cli install path continues to work unchanged — both produce the same binary.
  • The wrapper's bin is a one-line shim that imports @relayburn/cli/dist/cli.js. dependencies: { "@relayburn/cli": "workspace:*" } packs to a concrete version at publish time, pinning the wrapper to the cli version it shipped with.
  • Root workspace renamed from relayburnrelayburn-monorepo (still private) to resolve a name collision: pnpm --filter relayburn would otherwise match both the root and the new package.
  • publish.yml and verify-publish.yml updated to handle the unscoped name. Hardcoded @relayburn/$pkg references replaced with a per-package npm-name lookup (node -p require('./packages/$pkg/package.json').name), and the pack step derives the tarball filename from the npm name (relayburn-0.33.0.tgz for the wrapper vs. relayburn-cli-0.33.0.tgz for cli). relayburn added to the all publish order after cli.

Test plan

  • pnpm -r run build passes (wrapper build is just chmod +x bin/burn.js)
  • pnpm run test passes (no regressions)
  • node packages/relayburn/bin/burn.js --help prints the burn help banner
  • pnpm --filter relayburn pack produces exactly one tarball (relayburn-0.33.0.tgz) and the packed package.json rewrites workspace:* to "@relayburn/cli": "0.33.0"
  • After merge: trigger Publish Package workflow with package: all and custom_version: 0.35.0 (or next bump) — both @relayburn/cli@0.35.0 and relayburn@0.35.0 should publish, and Verify Publish with package: relayburn should pass the burn --help smoke test

🤖 Generated with Claude Code


Open in Devin Review

Adds a thin `packages/relayburn` wrapper package whose only job is to
re-export `@relayburn/cli`'s `burn` bin under the unscoped `relayburn`
name. Both `npm i -g @relayburn/cli` and `npm i -g relayburn` now
install the same `burn` command — users no longer need to know the
scoped package name to get started.

Implementation:
- `packages/relayburn/bin/burn.js` is a one-line shim that imports
  `@relayburn/cli/dist/cli.js`. The cli's `main()` runs at module
  top-level, so the import alone triggers the CLI.
- `dependencies: { "@relayburn/cli": "workspace:*" }` — `pnpm pack`
  rewrites this to a concrete version at publish time, so the shipped
  tarball pins to the exact cli version released alongside it.
- Root workspace renamed from `relayburn` to `relayburn-monorepo` to
  resolve a name collision: `pnpm --filter relayburn` would otherwise
  match both the root and the new package.

Publish workflow updates:
- `relayburn` added to package choices and to the `all` list (after
  `cli`, since the wrapper depends on it).
- Hardcoded `@relayburn/$pkg` references replaced with a per-package
  npm-name lookup (`node -p require('./packages/$pkg/package.json').name`)
  so the workflow handles both scoped and unscoped names.
- Pack/publish step derives the tarball filename from the npm name
  (`relayburn-0.33.0.tgz` for the wrapper vs. `relayburn-cli-0.33.0.tgz`
  for cli).
- `verify-publish.yml` gains a `relayburn` choice that runs the same
  `burn --help` smoke test as `@relayburn/cli`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

AGENTS.md still described the workspace as "five published packages"
and listed the dep-order chain, package-choice flag, and bump-order
step without `relayburn`. CHANGELOG.md still said releases applied
to "all five (`reader`, `ledger`, `analyze`, `mcp`, `cli`)". Update
all four AGENTS sections and the root CHANGELOG header to include
the new wrapper.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Sets the wrapper's package.json to 0.34.0 to match the cli's current
published version. This is the manual baseline for the first publish
of `relayburn` to npm — done locally to bootstrap OIDC trusted-publisher
registration on npmjs.com (the trusted publisher is configured per
package, so the package has to exist before OIDC can be wired up).

After this lands, lockstep `package: all` releases keep wrapper +
cli versions aligned without needing custom_version overrides.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Line 8 (Layout) and CHANGELOG.md:5 were updated to "six packages" in
f256bd7, but line 39 in the Changelog section still said "applies to
all five packages". Bring it in sync so contributors reading the
changelog guidance don't see a stale count.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@willwashburn willwashburn merged commit 0e99c3c into main Apr 27, 2026
2 checks passed
@willwashburn willwashburn deleted the feat/relayburn-install-wrapper branch April 27, 2026 23:20
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