Skip to content

Conversation

@taha-au
Copy link
Contributor

@taha-au taha-au commented Nov 13, 2025

Summary

Adds automated release workflow to support semantic versioning with both @v1 and @v1.x.x usage patterns.

Changes

  • Automated Release Workflow (.github/workflows/release.yml)

    • Version validation (enforces vX.Y.Z format)
    • Runs tests and build before release
    • Creates semver tags (e.g., v1.1.0)
    • Updates major version tag (e.g., v1 → v1.1.0)
    • Creates GitHub releases with auto-generated notes
  • Release Notes Configuration (.github/release.yml)

    • Categorizes PRs by labels (feature, bug, docs, etc.)
    • Auto-generates structured release notes from PRs
    • No manual CHANGELOG maintenance required
  • Documentation (README.md)

    • Documents three version pinning patterns:
      • @v1 - Recommended, gets automatic updates
      • @v1.x.x - Pin to specific version
      • @<sha> - Maximum security/stability

Usage

After merge, releases can be created via:

GitHub UI

  1. Actions → Release → Run workflow
  2. Enter version (e.g., v1.1.0)
  3. Keep "Update major version tag" checked

CLI

gh workflow run release.yml -f version=v1.1.0 -f update-major=true

Testing

  • ✅ Workflow passes actionlint validation
  • ✅ All pre-commit hooks pass (formatting, linting, types, build)
  • ✅ Follows GitHub's recommended practices for action versioning

Next Steps

After merging, we can cut v1.1.0 to release the features accumulated since v1:


Note

Adds a GitHub Actions release workflow with semver tags/notes and updates README with version pinning guidance.

  • CI/Release:
    • Add workflow in .github/workflows/release.yml to validate versions, run tests/build, create semver tags, optionally update major tag, and publish GitHub Releases with generated notes.
  • Release Notes Config:
    • Add .github/release.yml to categorize changelog entries by labels and exclude specific labels/authors.
  • Docs:
    • Update README.md with a basic usage example and detailed version pinning options (@v1, exact @vX.Y.Z, commit @<sha>).

Written by Cursor Bugbot for commit 8b034fb. This will update automatically on new commits. Configure here.

Add automated release workflow supporting both @v1 and @v1.x.x usage patterns.
The workflow handles semver tagging, major version tag updates, and auto-generates
release notes from PRs using GitHub's built-in categorization.

- Add release workflow with version validation, testing, and tagging
- Configure GitHub release notes with PR label categorization
- Document version pinning patterns in README (@v1, @v1.x.x, @sha)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@taha-au taha-au requested a review from adityamaru November 13, 2025 19:47
@taha-au taha-au self-assigned this Nov 13, 2025
@taha-au taha-au requested a review from pbardea November 13, 2025 19:47
Copy link
Contributor

@adityamaru adityamaru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, bugbot comment worth considering?

Explicitly search for semver tags (v*.*.*) instead of using git describe
to ensure predictable comparisons. This avoids ambiguity when both major
version tags (v1) and semver tags (v1.1.0) point to the same commit.
@taha-au taha-au force-pushed the chore/automated-release-workflow branch from 08c756f to 8b034fb Compare November 13, 2025 20:05
@taha-au taha-au merged commit 428ee32 into main Nov 13, 2025
10 checks passed
@taha-au taha-au deleted the chore/automated-release-workflow branch November 13, 2025 20:06
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