Releases

Releases Documentation #

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. Automated Tag Creation: When the “Hasami Version Update” PR is merged, release tags are automatically created in yyyy-mm-dd format

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, the PR is merged

  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

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