-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Add automatic release workflow to publish new versions to crates.io without manual intervention.
Problem
Currently, releasing a new version requires:
- Manually updating version in Cargo.toml
- Manually creating a git tag
- Manually pushing the tag to trigger release workflow
This is error-prone and slows down the release process.
Solution
Implement automatic release workflow similar to masterror that:
- Triggers after successful CI on main branch
- Compares local Cargo.toml version with crates.io version
- If local version > crates.io version:
- Checks if tag/release already exists
- Generates changelog from conventional commits
- Creates git tag
- Creates GitHub Release with changelog
- Triggers existing release.yml workflow
Implementation
Create .github/workflows/auto-release.yml:
- Workflow trigger: after CI completion on main
- Compare versions using semver
- Group commits by type (feat, fix, docs, etc.)
- Generate formatted changelog
- Create annotated git tag
- Create GitHub Release
- Automatic crates.io publish via existing release.yml
Benefits
- Automated release process
- No manual version bumping needed
- Automatic changelog generation
- Faster releases
- Conventional commits enforcement
- Professional release notes
Related
- Similar implementation in masterror: https://github.com/RAprogramm/masterror/.github/workflows/auto-release.yml
- Uses existing release.yml for crates.io publish
Metadata
Metadata
Assignees
Labels
No labels