ShareX Workflow and Versioning について
ShareX Workflow and Versioningは、XerahSのコントリビューター向けにGit、コミット、バージョン管理の手順を定めるリポジトリースキルです。バージョンの基準、更新規則、コミット前チェック、コミットとプッシュの手順を説明します。
主な機能
- 01バージョン基準とタグの確認
- 02セマンティックバージョン更新規則
- 03コミット前のビルドチェック
- 04コミットメッセージ規約
- 05Gitフックとプッシュ手順
活用シーン
- 01バージョン付きXerahSコミットの準備
- 02アプリのバージョン更新
- 03リポジトリー変更のコミットとプッシュ
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sharex/ xerahs --skill sharex-workflow-and-versioningインストール後、Claude Code で/sharex-workflow-and-versioningを入力して読み込まれたか確認します。
詳細
対象範囲
このファイルは、以下に関する Git とバージョン管理のルールを定める唯一の基準です。
- コミットとプッシュのワークフロー
- コミットメッセージの形式
- バージョン更新の動作
Directory.Build.propsの更新
このファイルは、廃止された docs/development/RELEASE_PROCESS.md に優先します。
バージョンの唯一の基準
- ルートの
Directory.Build.propsファイルを、XerahS アプリの作業バージョンの唯一の基準として扱います。 - XerahS のバージョン付きコミットを行う前に、ルートのバージョンと既存の XerahS の Git タグのうち最も大きいものを比較します。
- ルートのバージョンが最新のタグを厳密に上回っていない場合は、ブランチに次の未リリースバージョンが反映されるよう、先にルートのバージョンを更新します。
- 個々の
.csprojファイルでバージョン番号を設定してはいけません。 - バージョンを更新する際は、XerahS アプリのバージョンを意図的に保持している、リポジトリ内の追跡対象
Directory.Build.propsをすべて更新し、値を一致させます。 build/windows/chocolatey/xerahs.nuspecなどの派生リリースメタデータファイルは、リリースの自動化処理中にルートのバージョンと同期する必要があります。- タグ付きリリースでは Chocolatey の
.nupkgも生成してスモークテストを実施するため、build/windows/chocolatey/内のリリースメタデータは自動化に対応した状態に保つ必要があります。
バージョン更新ポリシー
- バグ修正:パッチのみを増やします(
0.0.zルール:メジャー/マイナーは維持し、zを増やします)。 - 新機能:マイナーを増やし、パッチをリセットします。
- 破壊的変更:メジャーを増やし、マイナー/パッチをリセットします。
必須のコミット前チェック
コミットおよびプッシュの前に、次を実行します。
git pull --recurse-submodules
git submodule update --init --recursive
dotnet build src/desktop/XerahS.sln
ビルドがエラー 0 件で成功した場合にのみ、続行してください。
コミットとプッシュの手順
- 変更をステージします。
git add .
- 次の形式でコミットします。
git commit -m "[vX.Y.Z] [Type] concise description"
- プッシュします。
git push
コミットメッセージのルール
- XerahS アプリのコミットには、ルートの
Directory.Build.propsの<Version>を[vX.Y.Z]の形式で付けます。ただし、そのバージョンが既存の XerahS の Git タグのうち最も大きいものを厳密に上回っていることを確認してから付けてください。 - 最新のタグ以下のバージョンをプレフィックスに使用してはいけません。最新のタグがルートのバージョン以上の場合は、先に
Directory.Build.propsを更新し、その更新後のバージョンでコミットします。 [Fix]、[Feature]、[Build]、[Docs]、[Refactor]などの種別トークンを含めます。- 説明は簡潔かつ具体的にします。
- 共有ライブラリ(例:
ShareX.ImageEditor)のみを対象とするサブモジュールのコミットでは、[vX.Y.Z]を省略し、AGENTS.mdに従って[Type] descriptionを使用します。
Git フックに関する要件
.githooksを有効な状態に保ちます(git config core.hooksPath .githooks)。- 緊急時の使用を明示的に依頼された場合を除き、
--no-verifyでフックを回避してはいけません。 - フックが失敗した場合は、問題を修正して再度コミットします。
ドキュメントと Git
- Markdown のドキュメント変更は、関連するコード/設定の変更と一緒にコミットします。
- 依頼された作業の一部である生成済みの手順ドキュメントを、未コミットのまま残してはいけません。
コメント
Markdown 対応