
releasing-versions
by onukura
Sustainability signals for OSS dependencies across ecosystems
SKILL.md
name: releasing-versions description: Interactive release workflow for OSS Sustain Guard with version updates, PyPI publishing, and GitHub release notes. Use when ready to release a new version to production.
Release Process - Quick Start
Quick guide to release a new version. For detailed info, see workflow-details.md.
Quick Release Checklist
# 1. Verify local setup
make test && make lint && make doc-build
# 2. Analyze changes & update version
# - Run: git log --stat or git log -p to see detailed changes
# - Edit pyproject.toml: change version
# - Run: uv sync
# - Edit CHANGELOG.md: add new section based on actual changes
# - Update SKILL.md if release process changed (optional)
# - Update ROADMAP.md with completed features (optional)
# 3. Commit and tag
git add pyproject.toml uv.lock CHANGELOG.md
git commit -m "chore: release version X.Y.Z"
git tag vX.Y.Z
git push origin vX.Y.Z
# 4. Watch pipeline
# → Go to: https://github.com/onukura/oss-sustain-guard/actions
# → Wait for all jobs to succeed
# 5. Prepare English release notes
# → Claude will generate English release notes based on CHANGELOG
# → Copy to GitHub Releases description
# → Should be in Markdown format in RAW as code block
The 5 Steps
1️⃣ Prepare & Test
Make sure everything is ready:
git fetch upstream
make test # All tests pass?
make lint # Code clean?
make doc-build # Docs build?
2️⃣ Decide Version
Use Semantic Versioning:
- MAJOR (1.0.0): Breaking changes
- MINOR (0.15.0): New features
- PATCH (0.14.1): Bug fixes
3️⃣ Update Files
Step 1: Analyze actual changes
View what changed since last version with detailed information:
# Show commits with file statistics:
git log --stat --since="2 weeks ago"
# Or show full patch diffs (verbose):
git log -p --since="2 weeks ago"
# Or compare with last tag (file statistics):
git log --stat v0.14.0..HEAD
# Or with full diffs:
git log -p v0.14.0..HEAD
pyproject.toml - Change version:
version = "0.15.0"
Then sync lock file:
uv sync
CHANGELOG.md - Add at top based on actual changes:
## v0.15.0 - 2026-01-20
### Added
- New metric for repository visibility
- Support for Dart package resolver
### Fixed
- Bug in cache invalidation logic
- Memory leak in GraphQL client
### Improved
- Performance optimization in dependency analysis
- Better error messages for network timeouts
Important: Write CHANGELOG entries based on the actual
git logoutput from your recent commits, not generic templates.
SKILL.md & ROADMAP.md - Update documentation if needed:
- SKILL.md: Update this file if release process steps changed or new workflows added
- ROADMAP.md: Update completed features marked with ✅ and their version/date
- Move completed items to top of list with implementation status
- Update upcoming features if priorities changed
- Add new planned features discovered during this release
Example ROADMAP update:
### My New Feature ✅ Implemented in v0.15.0, released 2026-01-20
- ✅ Feature description 1
- ✅ Feature description 2
4️⃣ Commit & Tag
git add pyproject.toml uv.lock CHANGELOG.md SKILL.md ROADMAP.md
git commit -m "chore: release version 0.15.0"
git tag v0.15.0
git push origin v0.15.0
Note: Only add SKILL.md and ROADMAP.md to commit if you made changes to them.
5️⃣ Watch & Verify
The publish workflow starts automatically:
GitHub Actions → build → publish-to-pypi → github-release
Check:
- All jobs pass in Actions
- New version on PyPI
- Release appears on GitHub Releases
- Can install:
pip install oss-sustain-guard==0.15.0
6️⃣ Generate & Publish English Release Notes ⭐ REQUIRED
After verifying the release on PyPI and GitHub, Claude will:
- Read your CHANGELOG.md to understand actual changes
- Generate professional English release notes with:
- Executive summary of the release
- Feature highlights with descriptions
- Bug fixes and improvements
- Migration notes (if breaking changes)
- Contributor appreciation
- Provide formatted text ready to copy/paste to GitHub Releases
You will:
- Copy the generated English release notes to GitHub Releases description
- Update any version-specific links or instructions if needed
This ensures your release has comprehensive documentation for all users.
What Happens Automatically
✅ Build Python package ✅ Upload to PyPI (Trusted Publishing) ✅ Sign artifacts with Sigstore ✅ Create GitHub Release ✅ Claude generates English release notes (based on CHANGELOG.md)
GitHub Release Notes Template
🎯 After PyPI release completes, you'll receive:
- English release notes based on your CHANGELOG.md
- Ready-to-copy formatting for GitHub Releases
- Professional structure with sections for features, fixes, improvements
Claude will automatically generate and present these - no need to ask!
Need More Details?
See bundled references:
- workflow-details.md - Detailed technical info
- release-examples.md - Step-by-step examples & troubleshooting
Common Questions
Q: How do I write good CHANGELOG entries?
A: Review your actual commits with git log --oneline and group them by type (Added, Fixed, Improved). Use clear, user-focused language.
Q: What if tests fail? A: Fix the issue and commit before running the release commands.
Q: How to undo a release?
A: Delete the tag (git tag -d vX.Y.Z && git push origin :vX.Y.Z) before PyPI publishes.
Q: Tag created but pipeline didn't start?
A: Verify tag format is vX.Y.Z (must start with 'v'). See troubleshooting docs.
Q: Do I need to ask Claude for release notes? A: No! Claude will automatically generate English release notes after you verify the PyPI release. Just ask "Create release notes" when ready.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です
