Skip to content

Release 1.0.1 (2026-02-10)

Bug fixes

  • resolve bare branch names to origin/ in commit-messages.sh (#159) When the local branch doesn't exist (e.g. main on a develop-only checkout), fall back to origin/ to avoid git rev-list failures.

  • use full version in release branch name to avoid collisions (#161) release/X.Y.x collides across patch releases because --delete-branch only fires after merge. Switch to release/X.Y.Z so each release gets a unique branch name.

  • allow commits on release/* branches in pre-commit hook (#162)

  • fix: allow commits on release/* branches in pre-commit hook

The prepare_release.py script commits the changelog on the release branch. The pre-commit hook was blocking release/* as a protected branch, preventing the automated release flow.

  • merge main into release branch to reconcile squash-merge history (#164) Squash merges from develop to main cause history divergence, leading to conflicts on subsequent release PRs. The script now merges origin/main with strategy=ours after creating the release branch, ensuring a clean merge path.

  • use conventional commit message for release merge commit (#165)

  • fix: use conventional commit message for release merge commit

The commit-msg hook rejects non-conventional commit messages. Use chore: prefix for the merge-main-into-release reconciliation commit.

  • create release branch from main to avoid history pollution (#167) The previous approach (branching from develop, merging main with strategy=ours) made all develop commits reachable from the release branch, causing CI commit-message lint failures on pre-conventional commits.

New approach: branch from origin/main and use git commit-tree to apply develop's tree content as a single commit. This keeps the release branch history clean (only 2 commits ahead of main).

  • generate changelog on develop before creating release branch (#169) git-cliff needs develop-vX.Y.Z boundary tags which are only visible from the develop commit history. Generate the changelog on develop, capture the tree SHA with git write-tree, then use git commit-tree to create the release branch commit from main with the prepared tree. This keeps the release branch clean (1 commit ahead of main) while ensuring git-cliff sees the correct tag boundaries.

Features

  • auto-bump patch version after publish, bump to 1.0.1 (#147) After a successful PyPI publish, the workflow now creates a PR against develop to increment the patch version (e.g. 1.0.0 → 1.0.1). This assumes the next release is a patch; the version can be changed to a minor or major bump at any point during the development cycle.

The bump is skipped if develop already has the expected next version.

Includes the initial 1.0.0 → 1.0.1 bump to bootstrap the workflow.

  • add changelog with git-cliff and CI validation gate (#149) Introduce automated changelog generation using git-cliff with develop-side tags for version boundary tracking. The publish workflow now creates develop-vX.Y.Z tags, and a CI gate validates CHANGELOG.md contains an entry for the current version on PRs targeting main.

  • add prepare_release.py to automate release preparation (#160) Replace manual release steps (branch, changelog, PR) with a single script that orchestrates the full sequence from develop.