출시 정책

Bazel은 장기 지원 (LTS) 출시 모델을 유지합니다. 이 모델에서는 9개월마다 주 버전이 출시되고 매달 부 버전이 출시됩니다. 이 페이지에서는 출시 후보, 일정, 공지사항, 테스트를 비롯한 Bazel 출시 정책을 다룹니다.

Bazel 출시는 GitHub에서 확인할 수 있습니다.

출시 후보

새 버전의 Bazel 출시 후보는 일반적으로 매월 초에 생성됩니다. 이 작업은 목표 출시일을 나타내는 GitHub의 출시 버그에 의해 추적되며 현재 출시 관리자에게 할당됩니다. 출시 후보는 모든 Bazel 단위 테스트를 통과해야 하며 Buildkite에서 테스트한 프로젝트에 원치 않는 회귀가 표시되지 않아야 합니다.

출시 후보는 bazel-discuss에 발표됩니다. 향후 며칠 동안 Bazel팀은 커뮤니티 버그 신고를 모니터링하여 후보에서 회귀가 있는지 확인합니다.

출시

회귀가 발견되지 않으면 1주일 후에 후보가 공식적으로 출시됩니다. 하지만 회귀로 인해 출시 후보 출시가 지연될 수 있습니다. 회귀가 발견되면 Bazel팀은 해당 회귀를 수정하기 위해 출시 후보에 해당하는 체리픽을 적용합니다. 첫 번째 출시 후보 이후 1주일이 지난 후 연속 2일 동안 추가 회귀가 발견되지 않으면 후보가 출시됩니다.

새 기능은 출시 후보가 잘린 후 출시 후보로 선별되지 않습니다. 또한 새 기능에 버그가 있으면 출시 후보에서 롤백될 수 있습니다. 출시 후보가 잘린 후에는 출시 빌드에 큰 영향을 미치거나 이를 중단시킬 수 있는 버그만 출시 후보에서 수정됩니다.

다음 날이 영업일인 날에만 출시됩니다.

최신 버전에서 심각한 문제가 발견되면 Bazel팀은 버전에 수정사항을 적용하여 패치 버전을 만듭니다. 이 패치는 새 버전을 만드는 대신 기존 버전을 업데이트하므로 패치 출시 후보는 영업일 기준 2일 후에 출시할 수 있습니다.

테스트

ci.bazel.build에서 실행되는 모든 프로젝트의 야간 빌드가 헤드에서 빌드된 Bazel 바이너리와 출시 바이너리를 사용하여 실행됩니다. 호환성이 깨지는 변경사항의 영향을 받는 프로젝트에 알림이 전송됩니다.

출시 후보가 발행되면 TensorFlow와 같은 다른 Google 프로젝트는 출시 후보 바이너리를 사용하여 완전한 테스트 모음에서 테스트됩니다. Bazel을 사용하는 중요한 프로젝트가 있는 경우 현재 출시 후보를 추적하고 회귀를 보고하는 자동화된 테스트 프로세스를 설정하는 것이 좋습니다.