Fork & Upstream Synchronization Policy
[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。
目的: フォークされたサブプロジェクト(例: space_debris_management)の管理方法を定め、共有コードの品質とサプライチェーン整合性を維持する。
要点:
- フォークが許容されるケース:
- 実験的な急速プロトタイプ(非本番)で、独立した短期的改変が必要な場合。
-
ライセンス上許可され、かつチームがフォークの責任者を明確にできる場合。
-
フォーク手順(推奨):
- フォーク提案を Issues に登録し、目的・期間・責任者を明示する。
- 共有コードに対する変更は
shared/または専用パッケージ化されたモジュールに切り出す。 -
重要な API 変更は PR ベースでオリジナルリポジトリへ提案する(同期ポリシー)。
-
同期とマージ運用:
- 週次または機能完了ごとに upstream の main をマージし、差分レビューを行う。
-
セキュリティ/ライセンスに関わる変更は必ず upstream に報告し、可能な限り upstream へ逆流させる。
-
長期維持方針:
- 90 日以上の運用継続が見込まれるフォークは、shared コードをパッケージ化して pip/pyproject で依存管理する。
-
重要なバグ修正は 72 時間以内に upstream に通知するか、緊急パッチを適用する(ポリシーに従う)。
-
コードレビューとセキュリティ:
- フォークには自動テストと基本的なセキュリティスキャン(Bandit 等)を必須とする。
-
外部データ/モデルを取り扱う場合は取扱方針(TOS、データライセンス)を明記する。
-
ドキュメント:
- フォークされたプロジェクトは README に "FORKED FROM" と upstream のコミットハッシュを明示する。
付録: フォーク管理テンプレートと簡易チェックリストを Docs/FORK_POLICY_TEMPLATE.md として追加する予定。