satoshibits-cli
v1.0.0
Published
[](https://github.com/prettier/prettier) [](http://commitizen.github.io/cz-cli/) [!
Readme
satoshibits-cli
This is a monorepo for managing and publishing CLI packages responsible for generating templates.
Getting started
You can find each CLI's instructions in their respective READMEs.
Working within the monorepo
Changes that should trigger a package publish
- Make your changes and group them to the relevant package.
pnpm run commit:publish— this runschangeset, stages the changeset file, and opens commitizen.- Open a PR to
main. CI runs build, lint, typecheck, and tests automatically. - On merge, the release workflow creates a "Version Packages" PR that bumps versions and updates changelogs.
- When the Version Packages PR is merged, changed packages are published to npm.
Changes that don't require publishing
- Make your changes.
- Run
pnpm changeset --emptyto create an empty changeset (signals "no release needed"). This is required because CI enforces changeset presence for any PR that touches package files. pnpm run commit:cz
If your changes are entirely outside of packages/ (e.g., CI config, root docs), you can skip the empty changeset.
Adding a new package
npm enforces 2FA on first-time package publishes, so new packages cannot be published from CI until they exist on the registry.
- Create your package under
packages/. - Publish the first version manually with 2FA from your local machine:
cd packages/<new-package> npm publish --access public - Update your npm granular access token to include the new package.
- From this point on, CI handles all subsequent releases.
The
ci:publishscript includes a pre-publish check (scripts/check-new-packages.js) that will fail the release early with clear instructions if a package hasn't been manually published yet.
CI/CD
| Workflow | Trigger | What it does |
|----------|---------|--------------|
| CI (.github/workflows/ci.yml) | Pull request to main | Runs build, lint, typecheck, test, test:e2e, and validates changeset presence |
| Release (.github/workflows/release.yml) | Push to main | Creates a Version Packages PR (via changesets), or publishes to npm if versions were already bumped |
Prerequisites
- Set
NPM_AUTH_TOKENas a repository secret in GitHub. Generate one here. - The token must be a granular access token with publish permissions for all
@satoshibits/*packages.
