The host CLI (packages/tiny-engineer-cli, npm package tiny-engineer) is versioned and published separately from firmware GitHub Releases.
Firmware tags (v*) build flash artifacts via .github/workflows/release.yml. They do not publish npm. See CONTRIBUTING.md.
| Artefact | Where the version lives | Git tag |
|---|---|---|
| Firmware / web flash | git describe → FW_VERSION |
v0.2.0 (existing release flow) |
| npm CLI | packages/tiny-engineer-cli/package.json → "version" |
optional cli-v<version> |
Use SemVer only for the CLI surface users depend on:
| Bump | When |
|---|---|
| patch | bugfix, docs in the published package, no behavior change for hooks/setup |
| minor | new command/flag/IDE integration, backward-compatible |
| major | breaking: removed/renamed CLI flag, hook event id, or setup behavior that breaks existing hook configs |
CLI 0.1.0 need not match firmware v0.2.0. Do not bump npm because of CAD, PCB, or firmware-only changes.
Deprecated per-IDE packages (tiny-engineer-cursor, etc.) are not published to npm.
- npm account with 2FA;
npm login/npm whoamilocally - Publish only from
packages/tiny-engineer-cli(not the repo rootpackage.json) - Package name on npm is
tiny-engineer(bin:tiny-engineer)
-
Land the CLI change on
main(or the branch you release from). Tests green:npm test --prefix packages/tiny-engineer-cli -
Bump version in
packages/tiny-engineer-cli/package.json(and keeppackage-lock.jsonname/versionin sync if present). Prefer a manual edit in this monorepo overnpm versionat the package root. -
Commit (conventional commits, scope
integrations), e.g.:chore(integrations): release tiny-engineer 0.1.1 -
Dry-run (optional but recommended):
cd packages/tiny-engineer-cli npm pack --dry-run npm publish --dry-runExpect a small tarball (
bin/,src/,LICENSE,README.md,package.json) — notest/, no firmware/CAD. -
Publish:
cd packages/tiny-engineer-cli npm publish --access publicEnter the npm OTP when prompted.
-
Verify:
npm view tiny-engineer version npx -y tiny-engineer@0.1.1 --help # use the version you just published -
Optional git tag (docs / future CI only; not required for npm):
git tag cli-v0.1.1 git push origin cli-v0.1.1
Do not use a bare
v*tag for CLI — that triggers the firmware release workflow. -
Docs: user install path is
npx -y tiny-engineer …(integration.md). Bump docs only if flags or setup behavior changed.
- Do not
npm publishfrom the repository root (root wraps CLI + deprecated cursor bin for tarballnpx). - Do not bump or publish deprecated per-IDE packages.
- Do not expect a firmware
v*GitHub Release to update npm. - Do not invent a second public name; users run
npx tiny-engineer/tiny-engineer setup.
A GitHub Action can publish on push of tags matching cli-v* using an npm Automation token (NPM_TOKEN). Until that exists, the checklist above is the full process.