---
name: gitstack-release
description: gitstackプロジェクトのリリース工程を管理するスキル。バージョン番号の決定(パッチ/マイナー/メジャー)、ローカルテスト実行、PR作成・マージ、GitHub/crates.ioへのリリースを行う。「リリースして」「バージョンアップして」「v1.2.3をリリース」などのリリース関連タスクで使用する。
---
# gitstack Release
gitstackプロジェクトのリリースワークフロー。
## バージョニングルール
セマンティックバージョニング `MAJOR.MINOR.PATCH` (例: 1.2.3)
| パッチ | 右の数字 | 1.2.0 → 1.2.1 | バグ修正、軽微な改善 |
| マイナー | 真ん中 | 1.2.0 → 1.3.0 | 新機能追加(後方互換あり) |
| メジャー | 左の数字 | 1.2.0 → 2.0.0 | 破壊的変更 |
## リリースワークフロー
### 1. リリースブランチ作成
```bash
git checkout main
git pull origin main
git checkout -b chore/v{VERSION}
```
### 2. バージョン更新
Cargo.tomlの`version`を更新し、`cargo build`でCargo.lockを更新。
### 3. ローカルCI実行
GitHub Actionsは使用しない(無料枠なし)。以下をローカルで実行:
```bash
cargo test --verbose
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --all -- --check
cargo build --release --verbose
```
全てパスするまで修正を繰り返す。
### 4. PR作成・マージ
```bash
git add Cargo.toml Cargo.lock
git commit -m "chore: v{VERSION}へバージョンアップ"
git push -u origin chore/v{VERSION}
gh pr create --title "chore: v{VERSION}へバージョンアップ" --assignee Hiro-Chiba
gh pr merge {PR番号} --merge --delete-branch
```
### 5. GitHubリリース作成
```bash
git checkout main && git pull origin main
gh release create v{VERSION} --title "v{VERSION}" --generate-notes
```
### 6. crates.ioへ公開
```bash
cargo publish
```
## 注意事項
- PRタイトルは必ずバージョン番号を含める(例: `chore: v1.2.1へバージョンアップ`)
- テスト失敗時はコミット前に修正
- crates.io公開には`CARGO_REGISTRY_TOKEN`が必要