Skip to content

ci: tag and release main from Conventional Commits - #17

Merged
github-actions[bot] merged 1 commit into
mainfrom
feat/12-release-automation
Sep 3, 2026
Merged

github-actions[bot] merged 1 commit into
mainfrom
feat/12-release-automation

Conversation

@Yash-Chindam

@Yash-Chindam Yash-Chindam commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • No git tag or GitHub Release has ever existed in this repo; everything has shipped via PR merge + the commit-SHA-tagged CD artifact only. Adds a Release workflow that closes that gap.
  • Chains off the same CI-on-main signal CD already uses (workflow_run on CI completing successfully for a push to main).
  • Classifies commits since the last tag by Conventional Commits: feat: -> minor, fix: -> patch, a declared breaking change (type!: or a BREAKING CHANGE footer) -> major. A range with only docs:/ci:/build:/test:/chore: commits (most Dependabot bumps, doc tweaks) is deliberately left unreleased.
  • On a warranted release: tags main as vMAJOR.MINOR.PATCH and publishes a GitHub Release with --generate-notes. Tags/releases are created only by this workflow, never by hand, and never off a branch other than main.
  • Documents the scheme in a new README "Releases" section.

Verified the version-arithmetic and Conventional-Commit classification against this repo's actual history locally (a fresh run with no prior tag correctly computes v0.1.0 from the 15 feat: commits merged so far; a simulated v0.1.0..HEAD range over PR #16 alone correctly computes a minor bump).

Test plan

  • ruff format --check .
  • ruff check .
  • mypy
  • pytest tests/unit tests/integration (same pre-existing local-only Windows temp-dir permission errors as before, unrelated to this change; all green on Linux CI)
  • YAML-validated release.yml and dry-ran its bump logic against real git history

Chains off the same CI-on-main signal CD already uses. A feat: commit
since the last tag earns a minor release, fix: a patch, and a declared
breaking change always wins with a major release; a range with only
docs/ci/build/test/chore commits is left unreleased so Dependabot bumps
and doc tweaks don't spam the release list. Tags and GitHub Releases are
created by the workflow only, never by hand.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation area/ci-cd labels Sep 3, 2026
@github-actions
github-actions Bot merged commit 3c4adb1 into main Sep 3, 2026
6 checks passed
@github-actions
github-actions Bot deleted the feat/12-release-automation branch September 3, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci-cd documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant