Releases Documentation #
In this section #
- Hasami Release Tool — release notes, version bumping, changelogs
- Production Release Pipeline — what a tag push actually does: the deploy jobs, the Linear status automation, and how the pipeline identifies the release type
- Hotfix Releases — shipping a fix without the release train, via
/hotfixin Slack
Hasami Release Management #
BonsAI uses Hasami (meaning “scissors” in Japanese) for managing release notes across all projects in the monorepo. Hasami automates version bumping, changelog generation, and release tag creation.
How Hasami Works #
- Create Release Notes: Developers create release notes for their changes using
hasamiCLI - Automated PR Creation: When changes are pushed to main/next branches, a GitHub Action creates a “Hasami Version Update” PR with updated changelogs
- Release Trigger: An admin runs
/releasein Slack, which merges the “Hasami Version Update” PR to main - Automated Tag Creation: The merge creates release tags in yyyy-mm-dd format, and the tag push deploys to production
Release Process #
The BonsAI release process follows these steps:
-
Developers create release notes for their changes using the Hasami CLI:
hasami -
Release notes are stored in the
.hasami/directory -
When changes are merged to main/next, the
release-notes.ymlGitHub Action:- Runs
hasami publishto generate changelogs - Creates a PR titled “Hasami Version Update”
- Runs
-
After review, an admin runs
/releasein Slack. n8n checks the caller is in the admin Slack user group and merges the PR to main — nobody merges the Hasami PR by hand. There is no confirmation prompt: the command merges immediately and the release proceeds -
The
release-tags.ymlGitHub Action:- Detects the merged “Hasami Version Update” PR
- Creates release tags in the format specified in
.hasami/config.toml(yyyy-mm-dd) - Attaches the tags to the main branch
-
The tag push triggers
prod-deploy.yaml, which builds and deploys every service and moves the Linear tickets throughDeploying to ProdtoDone. See Production Release Pipeline — in particular the Linear status automation, which sweeps tickets by status rather than by what is in the diff.
Two conventions the rest of the release tooling depends on: tags are dates, not versions, and the latest tag is what is in production.
To ship a fix without waiting for this train, see Hotfix Releases.
Hasami CLI Usage #
For detailed documentation on using Hasami, refer to:
- Hasami README
- Run
hasami --helpfor command-line options
Common commands:
hasami- Start interactive release note creationhasami publish- Publish all release notes to changelogshasami version- Get current versions of all projectshasami init- Initialize Hasami configuration