リリースチェックリスト
このドキュメントは、正式なリリースゲートポリシーです。
リリースをブロックする条件
以下のすべての条件が満たされている場合にのみ、リリースが許可されます。
- トラッキングされているソース/ドキュメントファイルの変更競合マーカーがないこと。
- 公開ドキュメントに対する命名規則のチェックに合格すること。
- 構成/ビルドの整合性チェックに合格すること(
cmake -S . -B ...およびcmake --build ... --target sima_neat)。 - ドキュメントのリンクチェックが厳格なモードで合格すること(
DOCS_STRICT_LINKS=1)。 - 生成ステップの後に、作業ツリーがクリーンな状態であること。
- リリース前に、未解決のクラッシュ/正当性に関する問題がゼロであること、およびリリースリファレンス上でもゼロであること。
- クラッシュ/正当性/ストレステスト/サニタイザーゲートが、リリースリファレンス上ですべて緑色であること。
- モデルアーカイブセキュリティゲートが緑色であること(
model-archive-security-gate)。 - インストールスモークゲートが緑色であること(
install-smoke)。 - パフォーマンス回帰ゲートが緑色であること(
perf-regression-gate)。 - リリースタグに対するソーク安定性テストが緑色であること(
soak-weekly)。 - リリース候補に対するファズテストが緑色であること(
fuzz-nightly)。 - 厳格なテストレーンに対して、ゼロスキップゲートが緑色であること(
zero-skip-gate)。 - 必要なガバナンスファイルが存在し、有効であること:
.github/CODEOWNERS.github/PULL_REQUEST_TEMPLATE.mdCONTRIBUTING.mddocs/develop-apps/contribute/release-checklist.md
- リリースメタデータが完了していること:
project(SimaNeat VERSION x.y.z)がCMakeLists.txtに更新されていること- 必要に応じて、
package-versionとplatform-versionがdeps/manifest.jsonに更新されていること modelzoo-versionが、platform-versionと異なる場合に、検証済みの Model Zoo リリースを明示的に選択すること。省略された場合、Model Zoo の解決はデフォルトでplatform-versionになります。- 公開されている C++ 型のレイアウトまたはエクスポートされたバイナリコントラクトが互換性のない方法で変更された場合は、
abi-versionをdeps/manifest.jsonでインクリメントすること。すべての C++ アプリケーションと Python バインディングは、その ABI に対して再構築されます。 CHANGELOG.mdに## [x.y.z]のエントリがあること- リリース/タグの本文にリリースノートが準備されていること
リリースフローに「既知のクラッシャー」リストは許可されません。クラッシュ回帰が発生した場合、修正されるまでリリースはブロックされます。
必要なステータスチェック
以下のチェックは、リリース PR およびリリースタグに対して必要です。
repo-hygieneconfigure-build-sanitydocs-link-checkcrash-correctness-gatemodel-archive-security-gateinstall-smokeperf-regression-gatezero-skip-gatesoak-weekly(リリースタグに必要)fuzz-nightly(リリース候補に必要)stress-gateasan-ubsan-gaterelease-policy-check
これらのチェックは、以下に実装されています。
.github/workflows/release-gate.yml.github/workflows/test-crash-correctness-nightly.yml.github/workflows/model-archive-security.yml.github/workflows/install-smoke.yml.github/workflows/perf-regression.yml.github/workflows/zero-skip.yml.github/workflows/test-soak-weekly.yml.github/workflows/long-tests-weekly.yml.github/workflows/vulcan-fuzz-nightly.yml.github/workflows/test-stress-nightly.yml.github/workflows/sanitizers.yml
重複するゲート実行を避けるために、所有権をトリガーします。
mainへの非リリース PR は、それぞれのスタンドアロンワークフローからmodel-archive-security、install-smoke、perf-regression、およびzero-skipを実行します。- リリース PR(
release/*ヘッドリファレンス)およびリリースリファレンス(release/**、v*)は、.github/workflows/release-gate.ymlから同じ処理フローを実行します。
GitHub ブランチとタグの保護
GitHub リポジトリの設定を行います。
mainを保護します。- マージ前にプルリクエストを必須とします。
- 少なくとも 1 人のコードオーナーの承認を必須とします(利用可能な場合は 2 人を推奨します)。
- 新しいコミットで保留中の承認を却下します。
- すべての必須ステータスチェックを必須とします。
- 強制プッシュを禁止します。
- スカッシュのみまたは線形履歴を使用します。
- リリースタグを作成できる ユーザーを制限するために、
v*タグを保護します。
リリースフロー
- 正常な
mainからrelease/x.y.zを切り出します。 - 非リリース PR のマージを一時停止します。
- リリースブランチでリリースゲートワークフローを実行します。
- 候補の検証のために
vX.Y.Z-rcNタグを作成します。 - 最終的な
vX.Y.Zタグに昇格します。 - リリースブランチを
mainに高速でマージします。 - リリースノートを公開し、リリース後のフォローアップの問題を投稿します。
運用上の注意点
- 汚染されたブランチからのリリースは行わないでください。
- レビューされていないコードからのリリースは行わないでください。
- 必須チェックが失敗している場合のリリースは行わないでください。
- ローカルのクラッシュ/正当性ゲートが失敗した場合、プッシュは許可されません。
- 衛生上の問題が発生した場合、手動による回避パスは許可されません。
パフォーマ ンス回帰契約
- パフォーマンスゲートのエントリポイントは
scripts/ci/run_perf_regression_gate.shです。 - ベースラインは、
tests/perf/baselines/v2/modalix_default/の下でプロファイルごとにスコープされます。profile.jsonは、固定された Modalix 環境契約を定義します。- シナリオ ID ごとに 1 つのシナリオファイル(
<scenario_id>.json)。
- 必須のシナリオ:
runtime_session_sync_rgbruntime_session_async_rgbruntime_graph_fanoutruntime_graph_join_bundleruntime_codec_mjpeg_decoderuntime_codec_h264_decoderuntime_codec_h265_decoderuntime_model_archive_load
- すべてのパフォーマンス実行は、
build-perf-gate/perf_results/に、シナリオごとの結果ファイルを公開します。 - 各結果には、以下を含める必要があります。
scenario_idmodalix_profile_idstatusfailure_classreason_codemetricsrun_metatimestamp
REGRESSION、HARNESS_ERROR、またはENV_BROKENのいずれかの分類は、処理フローをブロックします。