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 런타임 등 관련 모듈에 대한 영향을 평가해야 합니다.
