| name | release-node-sdk |
| description | Release a new version of the Kessel Node.js SDK (@project-kessel/kessel-sdk). Guides through version bump, quality checks, npm publish, git tagging, and GitHub release creation. Use when the user wants to release, publish, bump version, or cut a new release of the Node SDK. |
Release Kessel Node.js SDK
Prerequisites
- Write access to the GitHub repository
- npm account with publish access to
@project-kessel/kessel-sdk
- Node 20+
- buf for protobuf/gRPC code generation
- jq for extracting the version from
package.json
- gh (GitHub CLI) for creating releases
Release Process
Step 1: Determine the Version
Check existing tags to find the current version:
git fetch --tags
git tag --sort=-v:refname | head -5
Or via GitHub:
gh release list --limit 5
Choose the new version following Semantic Versioning:
- MAJOR: incompatible API changes
- MINOR: backward-compatible new functionality
- PATCH: backward-compatible bug fixes
Step 2: Update the Version
Edit package.json and set the version field to the new version number.
Then set the VERSION env var from package.json for use in subsequent steps:
export VERSION=$(cat package.json | jq .version -r)
echo "Releasing version: v${VERSION}"
Step 3: Update Dependencies
npm install
Step 4: Run Quality Checks
npm test
npm run lint
npm run prettier:check
npm run build
Step 5: Review and Confirm Changes
Before committing, summarize what is included in this release for the user.
- Run the following to gather context:
LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log ${LAST_TAG}..HEAD --oneline
git diff --stat
-
Analyze the commits and diffs, then present a natural-language summary to the user that includes:
- The release type (major, minor, or patch) and version number
- The number of commits and files changed since the last tag
- A concise description of what functionality is being added, changed, or fixed
-
Use the AskQuestion tool to confirm before proceeding:
- Option A: "Yes, commit and continue the release"
- Option B: "No, I want to make more changes first"
If the user chooses B, stop the release process and wait for further instructions.
Step 6: Commit and Push
git add package.json package-lock.json
git commit -m "chore: bump version to ${VERSION}"
git push origin main
Include any other changed files (generated code, etc.) in the commit.
Step 7: Build and Publish to npm
npm run build
npm publish
Step 8: Tag the Release
git tag -a v${VERSION} -m "Release version ${VERSION}"
git push origin v${VERSION}
Step 9: Create GitHub Release
gh release create v${VERSION} --title "v${VERSION}" --generate-notes
Or manually:
- Go to the GitHub Releases page
- Click "Create a new release"
- Select the tag you just created
- Add release notes describing the changes
- Publish the release
Quick Reference Checklist
Release v${VERSION}:
- [ ] Check existing tags and determine new version
- [ ] Update package.json version
- [ ] Set VERSION env var
- [ ] Update dependencies (npm install)
- [ ] Run npm test, npm run lint, npm run prettier:check, npm run build
- [ ] Review changes and confirm with user before committing
- [ ] Commit and push version bump
- [ ] Publish to npm (npm publish)
- [ ] Create and push git tag (v${VERSION})
- [ ] Create GitHub release