Releases

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 /hotfix in 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 #

  1. Create Release Notes: Developers create release notes for their changes using hasami CLI
  2. Automated PR Creation: When changes are pushed to main/next branches, a GitHub Action creates a “Hasami Version Update” PR with updated changelogs
  3. Release Trigger: An admin runs /release in Slack, which merges the “Hasami Version Update” PR to main
  4. 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:

  1. Developers create release notes for their changes using the Hasami CLI:

    hasami
    
  2. Release notes are stored in the .hasami/ directory

  3. When changes are merged to main/next, the release-notes.yml GitHub Action:

    • Runs hasami publish to generate changelogs
    • Creates a PR titled “Hasami Version Update”
  4. After review, an admin runs /release in 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

  5. The release-tags.yml GitHub 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
  6. The tag push triggers prod-deploy.yaml, which builds and deploys every service and moves the Linear tickets through Deploying to Prod to Done. 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:

Common commands:

  • hasami - Start interactive release note creation
  • hasami publish - Publish all release notes to changelogs
  • hasami version - Get current versions of all projects
  • hasami init - Initialize Hasami configuration