Skip to content

Add automated release workflow and update changelog structure#131

Merged
nhorton merged 4 commits intomainfrom
claude/add-release-action-oPtrn
Jan 24, 2026
Merged

Add automated release workflow and update changelog structure#131
nhorton merged 4 commits intomainfrom
claude/add-release-action-oPtrn

Conversation

@nhorton
Copy link
Contributor

@nhorton nhorton commented Jan 23, 2026

Summary

This PR introduces an automated release workflow that streamlines the process of creating new releases for the DeepWork project. It includes a GitHub Actions workflow that handles version validation, changelog updates, version bumping, and GitHub release creation.

Key Changes

  • New GitHub Actions Workflow (create-release.yml): Implements a manual dispatch workflow that:

    • Validates version format (X.Y.Z semantic versioning)
    • Updates CHANGELOG.md with new version and maintains Unreleased section
    • Updates version in pyproject.toml
    • Regenerates lock file using uv sync
    • Creates a git commit and tag
    • Generates a GitHub Release with extracted changelog notes
  • Updated CHANGELOG.md:

    • Added "Unreleased" section template at the top for tracking unreleased changes
    • Added reference links at the bottom for version comparisons
    • Maintains Keep a Changelog format

Implementation Details

  • The workflow uses workflow_dispatch to allow manual triggering with a version input parameter
  • Version format is validated using regex to ensure semantic versioning compliance
  • Changelog processing uses awk to intelligently handle both existing and non-existing Unreleased sections
  • Release notes are automatically extracted from the changelog for the GitHub Release
  • Git operations are performed by the github-actions[bot] user
  • The workflow requires contents: write permission to create releases and push commits

Usage

To create a release, trigger the workflow manually from the Actions tab with the desired version number (e.g., 0.6.0).

- Create create-release.yml workflow for manual release creation
- Workflow takes version number as input, validates format
- Updates CHANGELOG.md: converts Unreleased section to new version with date
- Adds fresh Unreleased section with placeholder categories
- Updates pyproject.toml version and runs uv sync for lock file
- Commits changes directly to main, creates tag, and publishes GitHub release
- Add Unreleased section to CHANGELOG.md for immediate use
- Add missing version links (0.5.1, 0.5.2) to CHANGELOG footer

https://claude.ai/code/session_01SdXt6AhvcV6GzfLkoePAby
… handling

- Add create-release.yml workflow for manual release creation
  - Takes version number as input, validates X.Y.Z format
  - Updates CHANGELOG.md: converts Unreleased section to new version with date
  - Adds fresh Unreleased section with placeholder categories
  - Updates pyproject.toml version and runs uv sync
  - Commits to main, creates tag, and publishes GitHub release

- Update commit job (v1.4.0) with changelog guidance:
  - Changelog entries must go in the [Unreleased] section
  - NEVER modify version numbers in pyproject.toml or CHANGELOG.md
  - Added quality criteria for changelog handling

https://claude.ai/code/session_01SdXt6AhvcV6GzfLkoePAby
@nhorton nhorton merged commit 20d6414 into main Jan 24, 2026
4 checks passed
@nhorton nhorton deleted the claude/add-release-action-oPtrn branch January 24, 2026 19:29
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