Skip to content

Add automated release workflow and versioning documentation - #4

Merged
Matuyuhi merged 1 commit into
mainfrom
claude/ci-bump-release-merge-avacoy
Aug 6, 2026
Merged

Matuyuhi merged 1 commit into
mainfrom
claude/ci-bump-release-merge-avacoy

Conversation

@Matuyuhi

@Matuyuhi Matuyuhi commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Summary

This PR introduces an automated release workflow that publishes new versions when pull requests are merged into main, along with comprehensive documentation on versioning and release management.

Key Changes

  • Added .github/workflows/release.yml: A complete GitHub Actions workflow that:

    • Automatically bumps version numbers based on merged pull requests
    • Determines bump level (major/minor/patch) from PR labels, Conventional Commits in the title, or manual dispatch
    • Creates and pushes semantic version tags (vX.Y.Z) and floating tags (vX.Y, vX)
    • Generates GitHub Releases with auto-generated release notes
    • Supports manual release triggering via workflow dispatch
    • Prevents concurrent releases with serialized concurrency control
    • Allows skipping releases via labels or PR title markers
  • Updated README.md: Added "Versioning and releases" section documenting:

    • Three-tier tagging strategy for different reproducibility needs
    • How bump levels are determined (labels → Conventional Commits → default patch)
    • How to skip releases or trigger them manually
    • Guidance on version pinning strategies

Notable Implementation Details

  • The workflow uses shell scripting with jq to parse PR labels and determine the appropriate version bump
  • Floating tags (vX and vX.Y) are force-pushed to always point to the latest release at that level
  • Release notes are auto-generated by GitHub, with proper handling of the first release (no previous tag)
  • Untrusted PR metadata is passed through environment variables rather than script interpolation for security
  • The workflow only runs on merged PRs, not closed PRs without merging

https://claude.ai/code/session_01S7emefFggiwDkQo65AQ9Z7

Merging a pull request into main now cuts a release: the version is
bumped from the latest vX.Y.Z tag, the tag is pushed alongside the
floating vX and vX.Y aliases, and a GitHub Release is published with
generated notes.

The bump level comes from the pull request's labels, falling back to a
Conventional Commits prefix in the title and then to a patch bump.
Merges can opt out with a release:skip label or "[skip release]" in the
title, and a release can be cut by hand via workflow_dispatch.

Untrusted pull request metadata (labels, title) is passed through the
environment rather than interpolated into the scripts, matching the
convention the action itself follows. A `release` concurrency group
keeps two merges from racing for the same version number.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7emefFggiwDkQo65AQ9Z7
@Matuyuhi
Matuyuhi merged commit 5149101 into main Aug 6, 2026
1 check passed
@Matuyuhi
Matuyuhi deleted the claude/ci-bump-release-merge-avacoy branch August 6, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants