Contributing
Releasing
The release workflow for kiro-kit, from version bump to npm publication.
This document describes the release workflow for kiro-kit, from version bump to npm publication.
Pre-release Checklist
Before starting a release, verify:
- All CI checks pass on
main(lint, typecheck, test, build, structural tests) - CHANGELOG.md has entries under
[Unreleased]describing changes since last release - No known critical bugs or regressions
- Documentation is up to date with any new features or breaking changes
-
pnpm run buildsucceeds locally -
npm packoutput inpackages/cli/contains expected files (dist/, README, LICENSE, CHANGELOG) - Package size is reasonable (target < 5MB)
Release Steps
1. Bump Version
Update the version in packages/cli/package.json:
cd packages/cli
# For patch releases (bug fixes):
npm version patch --no-git-tag-version
# For minor releases (new features, backward-compatible):
npm version minor --no-git-tag-version
# For major releases (breaking changes):
npm version major --no-git-tag-version2. Update CHANGELOG
Move entries from [Unreleased] to a new version section:
## [Unreleased]
## [X.Y.Z] - YYYY-MM-DD
### Added
- ...
### Changed
- ...
### Fixed
- ...3. Commit and Tag
git add packages/cli/package.json CHANGELOG.md
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z4. Push
git push origin main
git push origin vX.Y.Z5. CI Publish
Pushing the vX.Y.Z tag triggers the .github/workflows/publish.yml workflow which:
- Runs full verification (lint, typecheck, test, build, structural tests)
- Publishes to npm with
--provenancefor supply chain security - Uses
NPM_TOKENsecret for authentication
Post-release Verification
After the publish workflow completes:
- Verify the package is available on npm:
npm info kiro-kit - Verify the correct version is published:
npm info kiro-kit version - Test installation:
npx kiro-kit@X.Y.Z --version - Run a quick smoke test:
npx kiro-kit@X.Y.Z list - Verify provenance attestation on npmjs.com package page
- Create a GitHub Release from the tag with CHANGELOG excerpt
Rollback Procedure
If a release contains a critical issue:
Option A: Publish a Patch Fix
- Fix the issue on
main - Follow the release steps above with a patch version bump
- Publish the fix
Option B: Deprecate and Unpublish (within 72 hours)
# Deprecate the broken version with a message
npm deprecate kiro-kit@X.Y.Z "Critical bug in this version, use X.Y.W instead"
# If within 72 hours of publish, unpublish is possible (use sparingly)
npm unpublish kiro-kit@X.Y.ZOption C: Revert and Re-release
git revert <commit-hash>
git push origin main
# Then follow normal release steps with a new patch versionNote: Prefer Option A (patch fix) over unpublishing. Unpublishing can break downstream users who pinned the version.
Version Policy
- Patch (0.0.x): Bug fixes, documentation updates, dependency patches
- Minor (0.x.0): New presets, new commands, new features (backward-compatible)
- Major (x.0.0): Breaking changes to CLI interface, manifest schema changes, removed commands