RFC 85: 중요 코드 추가에 관한 정책

저자:

하워드 버틀러, 이벤 루올

제안일:

2022년 1월 17일

상태:

승인

요약

이 RFC는 GDAL 프로젝트가 중요 코드 추가, 특히 GDAL 프로젝트의 새로운 기여자가 기여하는, 일반적으로 새로운 드라이버를 평가하기 위해 적용할 정책을 설명합니다.

동기

GDAL 프로젝트는 역사적으로 독점 사용 허가 그리고/또는 (이 문서에서 “바이너리 SDK”라고 부르는) 클로즈드 소스 SDK에 의존하는 드라이버를 포함하는 새로운 코드 추가에 활짝 열려 있었습니다. 이 접근법은 GDAL 프로젝트의 강점의 일부분이기도 하지만, 소프트웨어가 점점 더 대용량이 되어가고 때로는 새로운 유지/관리자 없이 작성자가 기여를 포기하게 되는 대가를 치르게 됩니다.

자유-오픈 소스 프로젝트로서 GDAL 프로젝트는 바이너리 SDK를 요구하는 코드를 더 철저하게 검토하고, 기여자들이 이런 바이너리 SDK에 의존하지 않는 또는 자유-오픈 소스 사용 허가서 하에 SDK 사용 허가를 취득한 추가 코드를 제출하도록 권장할 것입니다.

정책

  • 드라이버에는 하위 시스템별 유지관리자 에서 추적되는 지정 담당자가 필요합니다.

  • 기여 코드는 다른 RFC들이 설명하는 개발 규칙을 따라야 하며, 테스트 스크립트와 사용례 및 빌드 지침을 서술하는 충분한 문서와 함께 제출되어야 합니다.

  • 드라이버가 비용을 지출하지 않고서는 다운로드할 수 없는 바이너리 SDK를 요구하거나 또는 복잡한 등록 과정을 거쳐야 하는 경우, GDAL 팀이 해당 드라이버를 소스 트리에 포함시킬 가능성은 낮습니다.

  • GDAL은 여러 운영 체제를 지원하기 때문에, 새 드라이버도 그만큼 많은 운영 체제를 지원해야 실용적입니다. 최소한 해당 드라이버가 작동한다고 문서화된 운영 체제의 최신 버전 및 운영 체제 판매자가 지원하는 배포판에서는 작동해야 합니다.

  • 바이너리 SDK가 더 이상 지원되지 않는 경우 또는 최신 버전이 현재 컴파일러 및 GDAL과 작동하지 않는 경우 해당 드라이버 지원을 종료할 수 있습니다. 이 규칙은 더 이상 유지/관리되지 않거나 다른 대안으로 대체된 오픈 소스 의존성에도 적용됩니다.

  • 드라이버에 해결되지 않은 버그가 있거나, 드라이버가 지속적 통합을 망가뜨리거나, 지속적 통합 부분을 비활성화시키거나, 또는 (아주 드물지만) 업데이트를 요구하는 API 수정 사항을 따라잡지 못 하는 경우, 빌드 스크립트로부터 해당 드라이버를 삭제할 것입니다. 즉 사용자가 특별히 개입하지 않는 이상 해당 드라이버는 빌드되지 않을 것입니다.

  • 드라이버에 리포트된 중요한/차단된 문제점이 2개월이라는 기간 내에 해결되지 않을 경우 모든 배포판을 진행하기 위해 지정 GDAL 유지관리자가 소스 트리로부터 해당 드라이버를 완전히 삭제할 수 있습니다.

  • 중요 코드를 추가하는 기여자는 GDAL 프로젝트의 일상에 참여할 것이 기대되며, 프로젝트의 소통 채널(이슈 트래커, 메일링 리스트 등등)을 면밀히 모니터링해야 합니다.

  • 유지관리자가 버그 리포트의 중요도를 평가하고, 관련 풀 요청 및 RFC를 검토하고, 기능을 개선하며, 배포판을 테스트하고, 문서, 테스트 및 인프라스트럭처를 향상시킴으로써 담당하는 기여를 지원할 것을 기대합니다.

  • 뿐만 아니라 유지관리자가 보다 넓은 범위의 프로젝트 변경 사항들(CI, 빌드 스크립트, 의존성, 빌드 도구, 문서 등등의 업그레이드)에 시기적절하게 응답할 것을 기대합니다. 유지관리자가 담당하는 기여에 적용되기 때문입니다.

  • GDAL 커밋 개발자가 (예를 들면 소스 저장소에 직접 수정 사항을 적용할 수 있는 권한을 가진 누군가가) 신규 기여 코드를 엄청나게 검토해야 할 수도 있습니다. GDAL 프로젝트에는 자금 지원을 받는 유지관리자들이 있지만, 이들이 추가된 중요 코드를 즉시 검토하지 못 할 수도 있다는 사실을 이해해야만 합니다. 기여자가 GDAL 커밋 개발자와 계약해서 이런 작업이 좀 더 예측 가능한 일정 내에 완료되도록 할 수도 있습니다.

  • 이 규칙들은 완전하지 않습니다. GDAL 프로젝트 운영 위원회는 특정 특성 및 다른 상황적 요소에 따라 제안된 코드 추가를 거부할 권리를 가집니다.

투표 이력

  • 마테우시 워스코트 +1

  • 커트 슈베어 +1

  • 세케레시 터마시 +1

  • 션 길리스 +1

  • 하워드 버틀러 +1

  • 유카 라흐코넨 +1

  • 이벤 루올 +1