2. SEP(仕様拡張提案)ガイドライン

SEPとは

SEP(Specification Enhancement Proposal)は、iFay仕様の変更に関する正式な提案プロセスです。iFay仕様に対するあらゆる実質的な変更——新しいモジュールの追加、プロトコル動作の変更、iFay Profileデータモデルの調整など——はSEPプロセスを通じて行う必要があります。

SEPが必要な理由

iFayはマルチベンダー実装のオープンスタンダードエコシステムであり、仕様の変更はすべての実装者に影響を与える可能性があります。SEPプロセスにより、仕様の進化が秩序立って、透明で、追跡可能であることが保証され、すべてのステークホルダーが議論とレビューに参加する機会が得られます。

SEPライフサイクル

SEPは提案から最終実装まで、以下の段階を経ます:

1. Draft(草案)

提案者はGitHub上で標準テンプレートを使用してSEP Issueを作成し、動機、提案する解決策、影響を記述します。Draft段階のSEPは不完全であっても構いませんが、コミュニティが提案の意図を理解するのに十分な情報を含む必要があります。

2. Discussion(議論)

SEPは少なくとも14日間の公開議論期間に入ります。この期間中:

  • コミュニティメンバーと関連ワーキンググループが提案について議論する
  • 提案者はフィードバックに基づいて提案を修正・改善する
  • 関連サブプロジェクトのメンテナーが各自のドメインへの影響を評価する

3. Review(レビュー)

議論期間終了後、コアメンテナーがSEPの正式なレビューを実施します。レビュー中、提案者はさらなる修正や追加を求められる場合があります。例えば:

  • 後方互換性分析の追加
  • iFACTSテスト影響評価の完了
  • 代替アプローチの比較分析の提供

4. Accepted / Rejected(承認 / 却下)

コアメンテナーは投票によりSEPの最終結果を決定します:

  • Accepted(承認):SEPが承認され、実装段階に移行する
  • Rejected(却下):SEPが却下され、理由が記録される。提案者はフィードバックに基づいて修正し再提出することができる

5. Implemented(実装済み)

承認されたSEPは実装段階に入ります。実装作業は提案者または他のコントリビューターが行うことができます。実装中:

  • 関連する仕様ドキュメントを更新する必要がある
  • リファレンスコードを実装する(該当する場合)
  • iFACTSテストケースを作成または更新する必要がある

6. Final(最終)

実装が完了しレビューを通過した後、SEPは最終状態に入ります。この時点で:

  • 仕様ドキュメントが更新されている
  • iFACTSテストスイートがそれに応じて更新されている
  • 関連するドキュメントとガイドが更新されている

SEPテンプレート

SEPを提出する際は、以下の内容を含めてください:

  • タイトル:提案の簡潔な説明
  • 動機:なぜこの変更が必要なのか?どのような問題を解決するのか?
  • 詳細設計:提案の技術的詳細と実装計画
  • 後方互換性:既存の仕様と実装への影響分析
  • iFACTSへの影響:追加または変更が必要なコンプライアンステスト
  • 代替案:検討した他のアプローチとその比較上の長所と短所

SEPを提出できる人

誰でもSEPを提出できます。コアメンテナー、メンテナー、コントリビューター、またはiFayエコシステムのユーザーであっても、仕様の改善が必要だと考える場合は、提案を提出することを歓迎します。

特記事項

プロトコル変更を伴うSEPには特別な注意が必要です。iFayの各プロトコル(Faying、Telepathy、ICP、CAP、DTP、SSP)はそれぞれ独立したサブプロジェクトに対応しているため、関連プロトコルのメンテナーがレビューに参加する必要があります。例えば、Control Authority Protocol(CAP)の動作を変更するSEPでは、WG-ProtocolsワーキンググループのメンテナーがDevice Driver HubやFayGerランタイムなどの関連モジュールへの影響を評価する必要があります。