Skip to content

feat(publish): Sprint 1.2 — ESM-only publish-readiness for all @sigops/* packages - #1

Merged
diskhacker merged 1 commit into
mainfrom
release/publish-readiness
Apr 17, 2026
Merged

feat(publish): Sprint 1.2 — ESM-only publish-readiness for all @sigops/* packages#1
diskhacker merged 1 commit into
mainfrom
release/publish-readiness

Conversation

@diskhacker

Copy link
Copy Markdown
Owner

Summary

Sprint 1.2 — flip all 6 @sigops/* packages to ESM-only publish-readiness. Mirrors cluster-shared Sprint 1.1 pattern.

Per package

  • version: 0.1.01.0.0
  • main / module./dist/index.js (was ./dist/index.cjs, which never existed on disk since tsc doesn't emit .cjs)
  • exports: drop require condition, reorder to types-first, ESM-only
  • Add repository field with directory: packages/<name> (required by registries)
  • Add publishConfig { registry: https://registry.npmjs.org, access: public }

Exceptions

@sigops/cli → renamed to @sigops/dev-cli with bin: sigops-dev (was sigops). Rationale: the standalone sigops-cli repo reserves the sigops command — shipping two global bins with the same name would collide on install. Rename is safe because this package has never been published. Call-sites in the monorepo still reference the workspace path, not the name.

@sigops/vscode-ext marked "private": true. VS Code extensions ship via vsce to the VS Code Marketplace, not npm. Still gets the version bump + repository field for consistency.

Workflow

Adds .github/workflows/publish.yml:

  • Triggers on v*.*.* tags + manual dispatch
  • Uses packageManager field as source of truth for pnpm version (no version: input to pnpm/action-setup — lesson from cluster-shared PR #6)
  • pnpm -r --filter='!@sigops/vscode-ext' publish --access public --no-git-checks
  • Reads NPM_TOKEN from repo secrets

Test plan

  • CI green on this PR
  • pnpm -r build green — emits only .js / .d.ts (no stray .cjs references)
  • After merge, Vivek configures NPM_TOKEN secret and tags v1.0.0

https://claude.ai/code/session_01VZPc4xQECHmaTddwaq6zf2

…s/* packages

Flip all 6 packages to ESM-only dist exports + version 1.0.0 + publishConfig
pointing at npmjs.com (public). Mirrors cluster-shared Sprint 1.1 pattern.

Changes per package:
- version: 0.1.0 → 1.0.0
- main/module → ./dist/index.js (was ./dist/index.cjs — broken: tsc doesn't
  emit .cjs, so the advertised CJS entry point never existed on disk)
- exports: remove 'require' condition; reorder to types-first (ESM-only)
- Add repository field (directory: packages/<name>) — needed for publish
- Add publishConfig { registry: https://registry.npmjs.org, access: public }

Exceptions:
- @sigops/cli renamed to @sigops/dev-cli + bin renamed to 'sigops-dev' to
  avoid conflict with the standalone sigops-cli repo that reserves the
  'sigops' command. Rename is safe because this package has never been
  published.
- @sigops/vscode-ext marked private (ships via VS Code Marketplace via
  vsce, not npm). Still gets version bump + repository field.

Also adds .github/workflows/publish.yml — tag-triggered (v*.*.*) + manual
dispatch. Uses 'packageManager' field in root package.json as source of
truth for pnpm version (no 'version:' input to pnpm/action-setup — lesson
from cluster-shared PR #6). Filters vscode-ext out of publish command.

https://claude.ai/code/session_01VZPc4xQECHmaTddwaq6zf2
@coderabbitai

coderabbitai Bot commented Apr 17, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@diskhacker has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 0 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 57 minutes and 0 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6514a6c6-b4f1-418d-be10-503c420d0f6b

📥 Commits

Reviewing files that changed from the base of the PR and between e1d48dd and ef5d702.

📒 Files selected for processing (7)
  • .github/workflows/publish.yml
  • packages/cli/package.json
  • packages/plugin-sdk/package.json
  • packages/sel-tools/package.json
  • packages/template-sdk/package.json
  • packages/tool-sdk/package.json
  • packages/vscode-ext/package.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/publish-readiness

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@diskhacker
diskhacker merged commit c900db6 into main Apr 17, 2026
0 of 2 checks passed
@diskhacker
diskhacker deleted the release/publish-readiness branch April 17, 2026 03:45
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.

2 participants