# Release手順マニュアル

このマニュアルは、pypiでの公開の手順を確認することができます。

## 1. 公開の要件確認

公開前にチェックリストを確認して、全てクリアにしておきます。

### チェックリスト

- [ ] ローカルでのテストを通す
- [ ] 適切なdocコメントが書かれているかの確認
- [ ] `pyproject.toml`のversionが更新されているかを確認
- [ ] buildが済み、新しいバージョンのファイルが用意されていることを確認
- [ ] CIが通るかの確認

## 2. mainブランチへのマージ、versionタグの設定

mainブランチへのマージ、versionタグの設定、これらをGitHubへpushすることにより、以下のactionが実行されます。

- リリースノートの自動作成
- pypiへのpublish

### マージコミットのメッセージについて

コミットメッセージには以下のテンプレートを利用します。
CHANGELOGに反映されることを意識して書きます。

```text
# ✨ feat: 新しい機能
# 👻 fix: バグ修正
# 📖 docs: ドキュメントの変更のみ
# 📐 style: コードの意味に影響しない変更 (空白、書式、セミコロンの欠落など)
# 🧹 refactor: バグを修正したり、機能を追加したりしないコード変更
# 🏃 perf: パフォーマンスを向上させるコード変更
# 〽 test: 不足しているテストを追加するか、既存のテストを修正する
# 🚀 ci: CIの作成、修正
# 📥 chore: ビルドプロセスや補助ツールやライブラリ (ドキュメント生成など) の変更
```

### タグの作成について

- タグの作成はビルドされたファイル名や`pyproject.toml`から確認できます。
- 形式は`v1.4.0`のように、`v`という接頭辞が必要です。

### 実際の手順

```
git checkout main
git merge develop
```

エディタが開いてメッセージを入力。これはリリースノートに反映されるので、前のversionからの変更点をすべて書く

```
git tag v1.4.0 #更新するversionに合わせる
git push origin main --tags
```

新機能追加はminorバージョンを上げる。
バグ修正やその他軽微な変更はpatchバージョンを上げる。
ソースコードに変更を加えない修正はバージョンを上げなくても良い。
