スキル一覧に戻る
Zorro909

release-takopi-matrix

by Zorro909

Matrix transport backend for Takopi

5🍴 0📅 2026年1月16日
GitHubで見るManusで実行

SKILL.md


name: release-takopi-matrix description: Release takopi-matrix to PyPI via git tag

/release-takopi-matrix - Release Workflow

Release a new version of takopi-matrix to PyPI.

When to Use

  • "Release version X.Y.Z"
  • "Publish to PyPI"
  • "Cut a release"

Repository Notes

  • Branch protection: Main branch requires PRs (no direct push)
  • Merge method: Rebase only (no merge commits, no squash)
  • Tag workflow: Create tag AFTER PR merge to point to correct commit

Pre-flight Checks

Before releasing, verify:

# Run tests
uv run pytest

# Build package
uv build

# Verify version files match
grep "version" pyproject.toml
grep "__version__" src/takopi_matrix/__init__.py

Workflow

1. Generate Changelog

Get commits since the last release tag:

# Find last version tag
git describe --tags --abbrev=0

# Get commits since last tag (or all commits if first release)
git log $(git describe --tags --abbrev=0 2>/dev/null || echo --all)..HEAD --oneline

Create/update CHANGELOG.md with the new version entry:

# changelog

## vX.Y.Z (YYYY-MM-DD)

### changes
- Feature description

### fixes
- Bug fix description

### docs
- Documentation update

Changelog Format:

  • Lowercase headers
  • Date format: YYYY-MM-DD
  • Categories: changes, fixes, docs, breaking
  • Link to PRs/commits where helpful
  • Newest versions at top

2. Version Bump

Update version in both files:

  • pyproject.toml: version = "X.Y.Z"
  • src/takopi_matrix/__init__.py: __version__ = "X.Y.Z"

3. Create Commit & Release Branch

This repo has branch protection - cannot push directly to main.

# Stash any local changes first
git stash

# Create release branch
git checkout -b release/vX.Y.Z

# Commit version files
git add CHANGELOG.md pyproject.toml src/takopi_matrix/__init__.py uv.lock
git commit -m "Release vX.Y.Z"

# Push branch
git push -u origin release/vX.Y.Z

4. Create PR & Merge

# Create PR
gh pr create --title "Release vX.Y.Z" --body "Release vX.Y.Z"

# Merge with rebase (repo only allows rebase, not merge or squash)
gh pr merge --rebase --delete-branch

5. Tag the Release

Important: Create tag AFTER the PR is merged, on the correct commit.

# Sync local main with merged PR
git checkout main
git fetch origin
git reset --hard origin/main

# Create and push tag (now points to correct commit)
git tag vX.Y.Z
git push origin vX.Y.Z

6. Verify

Example

User: /release-takopi-matrix 0.2.0

Claude: Preparing release v0.2.0...

Pre-flight checks:
✅ Tests: 193/193 passing
✅ Build: wheel + sdist created

📋 Commits since v0.1.1:
- abc1234 Add room-specific engine routing
- def5678 Fix Pydantic v2 config handling

📝 Generating changelog entry...
✅ CHANGELOG.md updated
✅ pyproject.toml: 0.1.1 → 0.2.0
✅ __init__.py: 0.1.1 → 0.2.0

Creating release branch and PR...
✅ Branch: release/v0.2.0
✅ PR #7 created: https://github.com/Zorro909/takopi-matrix/pull/7
✅ PR merged (rebase)

Tagging release...
✅ Tag v0.2.0 pushed

🚀 Release workflow triggered:
- Actions: https://github.com/Zorro909/takopi-matrix/actions
- PyPI: https://pypi.org/project/takopi-matrix/0.2.0/

Changelog Categories

CategoryWhen to Use
changesNew features, enhancements, API changes
fixesBug fixes, error corrections
docsDocumentation updates, README changes
breakingBreaking API changes (requires MAJOR bump)

Semantic Versioning

  • MAJOR (1.0.0): Breaking API changes
  • MINOR (0.2.0): New features, backwards compatible
  • PATCH (0.1.1): Bug fixes, backwards compatible

Rollback

If something goes wrong:

# Delete remote tag
git push origin --delete vX.Y.Z

# Delete local tag
git tag -d vX.Y.Z

# Revert commit
git revert HEAD

PyPI packages cannot be re-uploaded with the same version. Bump to a new patch version if needed.

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です