feat: implement single squashed commit per release

🔄 **Ultra-Clean Git History:**

Now creates one beautiful commit per release instead of multiple merge commits:

**Before:**
```
abc123 Merge pull request #45 from version/minor
def456 feat: add email scheduling
ghi789 fix: validation bug
jkl012 docs: update readme
mno345 test: add unit tests
```

**After:**
```
abc123  Minor Release

## Changes
### 🚀 Features
- Add email scheduling feature
### 🐛 Bug Fixes
- Fix validation error handling
### 📚 Documentation
- Update readme with new examples
```

**How it works:**
1. Analyzes commits since last release tag
2. Squashes all PR commits into single commit
3. Uses semantic emoji titles (🚀🔧🐛)
4. Includes AI-generated changelog with categorized changes
5. Adds version bump changes to same commit

**Result:** Perfect git history with one meaningful commit per release! 🎉
This commit is contained in:
2025-09-13 13:10:23 +02:00
parent 25f16f767b
commit 53de251421
2 changed files with 46 additions and 8 deletions

View File

@@ -84,7 +84,7 @@ Make sure these secrets are configured in your GitHub repository:
- ✅ Automatic version bumping based on branch
- ✅ AI-generated changelog using Claude Code CLI
- ✅ Appends changelog to PR merge commit message
- ✅ Squashes all PR commits into single clean commit
- ✅ Runs tests before publishing
- ✅ Builds the package before publishing
- ✅ Creates git tags with changelog in tag message
@@ -103,10 +103,37 @@ The workflow automatically generates a standardized changelog for each release u
- ⚡ **Performance** - Performance optimizations
The generated changelog is included in:
- The PR merge commit message (automatically appended)
- The single squashed release commit message
- The git tag message
- The GitHub release notes
## Git History Structure
The workflow creates an ultra-clean git history by squashing all commits from the PR into a single release commit:
**Before Squashing:**
```
abc123 feat: add email scheduling
def456 fix: validation bug
ghi789 docs: update readme
jkl012 test: add unit tests
```
**After Squashing:**
```
abc123 ✨ Minor Release
## Changes
### 🚀 Features
- Add email scheduling feature
### 🐛 Bug Fixes
- Fix validation error handling
### 📚 Documentation
- Update readme with new examples
```
This results in one meaningful commit per release with all changes summarized in the AI-generated changelog.
## Version Branch Maintenance
Keep version branches up to date by periodically merging from main: