Release Process
Fleet follows a structured release process from feature branches through to npm publication and production deployment.
Version scheme
Fleet uses semver:
- Major (2.0.0) — breaking changes to CLI interface or config format
- Minor (1.5.0) — new features, new commands, new MCP tools
- Patch (1.4.1) — bug fixes, security patches, doc updates
The version lives in package.json and is the single source of truth.
Release workflow
1. Accumulate features on develop
Features are merged to develop via pull requests from feat/* branches. Each PR is reviewed before merge.
2. Prepare the release
When enough features have accumulated:
# On develop, bump the versionnpm version minor # or major/patch
# This updates package.json and creates a git tag3. Create a GitHub release
# Push the taggit push origin v1.5.0
# Create the release on GitHubgh release create v1.5.0 --title "v1.5.0" --generate-notes4. npm publish (automated)
The publish.yml GitHub Action triggers on release creation:
- Checks out the tagged commit
- Installs dependencies
- Builds TypeScript
- Publishes to npm as
@matthesketh/fleet
The action requires the NPM_TOKEN secret configured in the repository.
5. Merge to main
After the release is published:
# Create PR from develop to maingh pr create --base main --head develop --title "Release v1.5.0"Main is updated only through these release PRs.
Package contents
The npm package includes only what’s in the files field of package.json:
dist/— compiled JavaScriptdata/registry.example.json— example registry fileLICENSEREADME.md
Source TypeScript, tests, docs site, and the Go bot are excluded.
Post-release
After publishing:
- Verify the package installs correctly:
npm install -g @matthesketh/fleet@latest - Run
fleet --versionto confirm - Deploy to production servers:
npm update -g @matthesketh/fleet
Hotfix process
For urgent fixes that can’t wait for a normal release:
git checkout -b fix/critical-bug develop# make the fix, test, commitgit checkout develop && git merge fix/critical-bugnpm version patch# follow normal release steps