ガバナンス
リリースエンジニアリングポリシー
バージョン管理、リリースタグ付け、非推奨化サイクル、互換性のない変更、ロールバック手順に関する5つの正規ポリシー。
5つのポリシーが apothem のリリース方法を規定します。
1. セマンティックバージョニング
本プロジェクトは セマンティックバージョニング 2.0 のもとで提供されます。
バージョン番号は MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD] の形式をとります。
| 引き上げ | トリガー |
|---|---|
| MAJOR | アーティファクトスキーマ、マンデート識別子(CM-N / TM-N / CP-N)、またはフック契約への互換性のない変更 |
| MINOR | 新しいルール、委任ワーカー、コマンド、スキル、フックイベント、または互換性を壊さないスキーマ拡張 |
| PATCH | 明確化、アンチパターンの追加、ドキュメント修正、および動作を変更しない編集 |
候補タグは vX.Y.Z-rc.N(リリース候補)
または vX.Y.Z-alpha.N / vX.Y.Z-beta.N(早期アクセス)の形式を使用します。
2. リリースタグ
各リリースは main 上に vMAJOR.MINOR.PATCH 形式の署名付き git タグを
配置します。このタグは .github/workflows/release.yml をトリガーし、
ビルド、署名、SBOM と SLSA-3 来歴の生成を行い、
GitHub Release ページを公開します。
タグの慣例:
- 形式 — 正確に
vMAJOR.MINOR.PATCH。release-接頭辞は付けず、-final接尾辞も付けません。 - 注釈 — すべてのタグは注釈付きタグ(
git tag -a -s)であり、 タグメッセージにリリースノートの要約を含みます。 - 署名 — すべてのタグは GPG 署名されます。リリースワークフローは さらに各アーティファクトに対する Sigstore のキーレス cosign 署名と SLSA-3 来歴リリース証明を生成し、いずれも GitHub Release ページに添付されます。
3. 非推奨化ポリシー
現在の公開サポートラインは最新リリースのマイナーバージョンです。 プロジェクトに複数の公開マイナーバージョンがある場合、 SECURITY.md のサポート対象バージョン一覧が、追加の重要修正のみのサポート期間に関する 信頼できる情報源となります。
非推奨化の周期:
- 告知 — 非推奨となるシンボルや動作は、その非推奨化が含まれる
リリースの
CHANGELOG.mdの### Deprecatedセクションで 告知されます。リリースノートは この非推奨化の告知を反映します。 - 猶予期間 — 非推奨のシンボルは削除前に 最低でも1つの完全なマイナーサイクルの間、利用可能なまま残ります。
- 削除 — 削除は
MAJORの引き上げで実施されます。削除された各 シンボルはCHANGELOG.mdの### Removed行と、 ハウツーガイド 下の移行ガイドエントリを伴います。
4. 互換性のない変更のポリシー
互換性のない変更には以下が必要です:
- RFC イシュー —
rfcsイシューラベルに対して作成され、 互換性のない変更、移行パス、ロールバック戦略を記述したもの。 - 30日間のコメント期間 — RFC はマージ前に少なくとも 30日間オープンのままにします。フィードバックが必要と判断された場合、 メンテナはこの期間を延長できます。
- MAJOR の引き上げ — 互換性のない変更を含むリリースは MAJOR コンポーネントを引き上げます。
- 移行ガイド — 変更には、移行を通じて オペレーターを案内する ハウツーガイド の エントリが付属します。
5. ロールバックポリシー
リリースが採用を妨げるリグレッションを示した場合:
- リバート — 問題のあるコミットが
main上でリバートされます。 - リリース+1の再タグ付け — 後続のリリースが
vMAJOR.MINOR.PATCH+1として配置され、リバートと 付随する増分修正を含みます。以前の不良リリースは GitHub Releases から 削除されません —CHANGELOG.mdの### Yanked注釈が この状況を記録し、再現可能なビルドが アンカーされたまま保たれるようにします。 - コミュニケーション — ロールバックには security-advisories の通知( セキュリティ関連の場合)または Discussions の投稿( 信頼性関連の場合)が付随します。
関連項目
- CHANGELOG.md — 正規のリリース台帳。
- SECURITY.md — サポート対象バージョン一覧と報告チャネル。
- cicd-pipeline.md — すべてのリリースを ゲートする CI チェックの各クラス。
- deployment-checklist.md — リリースごとの 本番準備スイープ。