Skip to content

Conversation

@laysakura
Copy link
Contributor

Summary

  • Implemented automated release workflow triggered from GitHub Web UI
  • Added automatic semantic versioning based on Keep a Changelog format
  • Added PR changelog validation to enforce documentation

Changes

Added

  • Release workflow (.github/workflows/release.yml)

    • Manual trigger from GitHub Actions UI
    • Automatic version detection from CHANGELOG.md
    • PyPI and GitHub release creation
    • Test PyPI option for safe testing
  • Changelog validation (.github/workflows/changelog-check.yml)

    • Enforces changelog updates for code changes
    • Validates Keep a Changelog format
    • Allows exceptions for docs/CI/chore changes
  • Initial CHANGELOG.md in Keep a Changelog format

  • Release documentation in docs/release-workflow.md

  • Updated CLAUDE.md with changelog management rules

How Semantic Versioning Works

Version bumps are automatically determined from CHANGELOG entries:

  • Major (1.0.0 → 2.0.0): When ### Removed section has entries
  • Minor (1.0.0 → 1.1.0): When ### Added, ### Changed, or ### Deprecated sections have entries
  • Patch (1.0.0 → 1.0.1): When only ### Fixed or ### Security sections have entries

Testing Instructions

Before Merge

  1. This PR should trigger the changelog-check workflow
  2. Review the workflow YAML files for syntax and logic

After Merge

  1. Test with dummy release (recommended):

    1. Add a test entry to CHANGELOG.md under [Unreleased]
    2. Go to Actions → Release → Run workflow
    3. Enable "Upload to Test PyPI first"
    4. Run the workflow (will fail at PyPI upload if tokens not set)
    
  2. Set up secrets before real release:

    • PYPI_API_TOKEN - for production PyPI
    • TEST_PYPI_API_TOKEN - for Test PyPI (optional)
  3. First real release:

    • Ensure CHANGELOG.md has proper entries
    • Run release workflow from GitHub UI
    • Monitor the progress

Checklist

  • Release workflow validates changelog and determines version
  • Changelog check enforces updates on PRs
  • Documentation explains the full process
  • CLAUDE.md updated with changelog rules
  • Secrets need to be configured post-merge

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

@laysakura laysakura merged commit 88a1efa into main Jun 27, 2025
7 checks passed
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