본문 바로가기
WIKI 기술 지식 베이스

릴리스 주기

원문 보기 위키 갱신

릴리스 주기 (Release Cycle)

Crossplane은 v1.10.0 릴리스부터 분기(13주) 단위로 릴리스하고 있어요. 하나의 주기는 크게 세 단계로 구성돼요:

  • 1~11주: 활발한 개발 (Active Development)
  • 12주: 기능 동결 (Feature Freeze)
  • 13주: 코드 동결 (Code Freeze)

이 결과 연 4회 릴리스가 이루어지며, 어느 시점에나 가장 최근 3개 릴리스가 유지보수 대상이 돼요. Crossplane이 새 릴리스를 만들면 네 번째로 최근 릴리스가 수명 종료(EOL)에 도달해요. 사용자는 각 릴리스를 9개월 동안 유지보수받을 수 있어요.

출처: 문서

본문

유지보수의 정의

Crossplane 커뮤니티는 유지보수를 이렇게 정의해요: 메인 개발 브랜치에 병합된 관련 버그 수정은 유지보수되는 모든 버전의 릴리스 브랜치로 백포팅(backporting) 대상이 되며, Crossplane은 적절히 패치 릴리스를 만든다. 메인 개발 브랜치에 더 이상 적용되지 않는 수정이라면 유지보수 담당자가 직접 릴리스 브랜치에 병합할 수도 있어요. 유지보수는 Slack 메시지나 이슈 형태의 사용자 지원에 대한 응답 시간 SLA를 포함하지 않지만, 유지보수 담당자와 기여자들은 유지보수되는 릴리스에 대해 최선을 다해 문제를 처리해요.

패치 릴리스

이 정책은 향후 변경될 수 있어요.

Crossplane은 필요에 따라 유지보수되는 마이너 버전에 대한 패치 릴리스를 만들고, 병합된 중요한 백포팅 수정사항은 최대한 빨리 패치 릴리스에 포함해요.

사전 릴리스 (Pre-releases)

이 정책은 향후 변경될 수 있어요.

Crossplane은 다가오는 릴리스에 대해 필요에 따라 Alpha, Beta, RC 릴리스를 만들고, 정책상 어느 마이너 릴리스 이전에도 최소 하나의 사전 릴리스를 낸다. 사전 릴리스를 릴리스 브랜치에서 만들지는 않아요.

프로바이더 릴리스

다른 Crossplane 프로젝트들은 Crossplane 릴리스 주기를 반드시 따를 필요는 없지만, 비슷한 주기를 권장해요. 각 저장소의 OWNERS.md 파일에 나열된 유지보수 담당자들이 해당 프로젝트의 릴리스 주기를 결정하고 공표할 책임이 있어요.

릴리스 단계

다음은 Crossplane 릴리스의 주요 이정표 단계들이에요.

활발한 개발 (Active development)

활발한 개발 기간 동안 유지보수 담당자들은 필요한 기준(예: 적절한 테스트 통과, 유지보수 담당자 승인 등)을 충족한 코드를 메인 개발 브랜치에 병합해요. 현재는 릴리스 주기가 시작되기 전에 공식적으로 개선 제안을 제출할 필요는 없지만, Crossplane은 대규모 구현을 시작하기 전에 이슈를 열고 피드백을 모으는 것을 권장해요 (자세한 내용은 CONTRIBUTING.md 참고).

기능 동결 (Feature freeze)

기능 동결 기간 동안 유지보수 담당자들은 메인 개발 브랜치에 새 기능을 병합하지 않아야 해요. 버그 수정, 문서 변경, 비핵심 변경은 허용돼요. 새 기능이 릴리스에 필수적이라고 판단되는 경우, Crossplane 유지보수 담당자들은 변경의 영향도를 검토해 포함 여부를 결정해요.

코드 동결 (Code freeze)

코드 동결 기간에는 다음 예외를 제외하고 메인 개발 브랜치에 변경사항이 병합되어서는 안 돼요:

  • 잘못된 기능 테스트로 판명된 실패 테스트에 대한 수정
  • 문서 전용 변경 (향후 문서 동결이 도입될 수는 있지만 현재는 강제되지 않음)
  • 사전에 식별되지 않았던 치명적 버그에 대한 수정. 코드 동결 중 버그 수정 병합에는 Crossplane 유지보수 담당자의 예외 요청 및 승인이 필요해요. 이 과정은 비공식적이지만 향후 공식화될 수 있어요.

릴리스 날짜

Crossplane은 분기(13주)마다 한 번 릴리스하며, 일반적으로 커뮤니티 캘린더에 표시된 대로 분기 마지막 주의 화요일에 릴리스돼요. 구체적인 날짜는 근사치라는 점을 유의하세요. 코드 리뷰, 테스트, 버그 수정 등 품질 좋은 릴리스를 보장하기 위한 여러 요인이 날짜를 조금씩 바꿀 수 있어요.

릴리스 프로세스

Crossplane 프로젝트의 릴리스 프로세스는 crossplane/release 저장소에 완전히 문서화되어 있어요.

더 알아보기 (Learn more)