원본 블로그에서 발표한 바와 같이 post, Bazel 4.0 이상 버전은 두 가지 출시 트랙(롤링)을 지원합니다. 장기적 지원 (LTS) 출시가 포함됩니다 이 페이지에서는 Bazel의 출시 모델에 대한 정보입니다.
출시 버전 관리
Bazel은 major.minor.patch 시맨틱을 사용함 버전 관리 스키마
- 주 버전에는 이전 버전과 호환되지 않는 기능이 포함되어 있습니다. 이전 버전에서 사용할 수 있습니다. 각 Bazel 주 버전은 LTS 출시 버전입니다.
- 부 버전에는 이전 버전과 호환되는 버그 수정 및 기능이 포함되어 있습니다. 기본 브랜치에서 백포팅됩니다.
- 패치 출시에는 중요한 버그 수정이 포함되어 있습니다.
또한 출시 전 버전은 하이픈과 날짜 서픽스를 다음 주 버전 번호의 다음 주 버전 번호에 추가합니다.
예를 들어 각 유형의 새 출시 버전이 나오면 다음과 같은 버전 번호가 생성됩니다.
- 메이저: 6.0.0
- 마이너: 6.1.0
- 패치: 6.1.2
- 출시 전: 7.0.0-pre.20230502.1
지원 단계
각 주 Bazel 버전에는 4가지 지원 단계가 있습니다.
- 롤링: 이 메이저 버전은 아직 출시 전 상태입니다(Bazel팀). HEAD에서 순차적 버전을 게시합니다.
- 활성: 이 주 버전은 현재 활성 LTS 버전입니다. 더 바젤 팀의 중요한 기능과 버그 수정을 마이너 릴리스로 백포트합니다.
- 유지보수: 이 메이저 버전은 유지보수 중인 이전 LTS 출시 버전입니다. 있습니다. Bazel팀은 보안 문제 및 OS 호환성 문제가 추가되었습니다.
- 지원 중단됨: Bazel팀에서는 더 이상 이 주요 모든 사용자가 최신 Bazel LTS 출시 버전으로 이전해야 합니다.
출시 주기
Bazel은 정기적으로 두 가지 출시 트랙의 출시 버전을 게시합니다.
순차적 출시
- 순차적 출시는 Google Blaze 출시와 조정되어 약 2주마다 HEAD에서 시작합니다. 다음 Bazel LTS의 미리보기입니다. 있습니다.
- 순차적 출시는 호환되지 않는 변경사항을 제공할 수 있습니다. 호환되지 않는 플래그는 주요 브레이킹 체인지에 권장, 호환되지 않는 변경사항 출시 이전 버전과의 호환성을 정책을 참조하세요.
LTS 출시
- 주요 출시: 새로운 LTS 버전이 HEAD에서 대략적으로 삭제될 것으로 예상됩니다. 반복 주기 12개월 새 LTS 출시 버전이 출시되면 즉시 Active(활성) 상태로 전환됩니다. 이전 LTS 출시 버전은 유지보수 단계로 전환됩니다.
- 부 출시: 활성 LTS 트랙의 새로운 부 버전은 다음과 같은 기능을 제공합니다. 2개월에 한 번 출시됩니다
- 패치 출시: Active 및 심각한 버그의 경우 요청에 따라 유지보수 단계를 공개할 예정입니다. 수정할 수 있습니다
- Bazel LTS 출시 버전은 2년간 유지보수 단계.
계획된 출시는 출시를 확인하세요. 문제 를 참조하세요.
지원 매트릭스
LTS 출시 | 지원 단계 | 최신 버전 | 지원 종료 |
---|---|---|---|
Bazel 7 | 순차적 | GitHub 출시 페이지 확인 | 해당 사항 없음 |
Bazel 6 | 활성 | 6.4.0 | 2025년 12월 |
Bazel 5 | 유지보수 | 5.4.1 | 2025년 1월 |
Bazel 4 | 유지보수 | 4.2.4 | 2024년 1월 |
모든 Bazel 출시 버전은 버전에서 확인할 수 있습니다. 페이지를 참고하세요.
출시 절차 및 정책
순차적 출시의 경우 프로세스는 간단합니다. 약 2주마다 새 출시 버전이 생성됩니다. Blaze 출시. 빠른 출시 일정으로 인해 어떤 변경사항도 백포팅하지 않습니다. 살펴보겠습니다
LTS 출시의 경우 아래 절차와 정책을 따릅니다.
- 출시 버전의 기준 커밋을 결정합니다.
- 새로운 주 LTS 출시의 경우 기준 커밋은 기본 브랜치.
- 부 버전 또는 패치 출시의 경우 기준 커밋은 동일한 LTS 출시의 현재 최신 버전
- 기준의
release-<version>
이름으로 출시 브랜치를 만듭니다. 커밋합니다 - PR을 통해 변경사항을 출시 브랜치로 백포팅합니다.
- 커뮤니티에서 답글을 달아 특정 커밋을 백포팅할 것을 제안할 수 있습니다.
'
@bazel-io flag
' 관련 GitHub 문제 또는 PR을 검토하여 잠재적인 고객으로 표시합니다. Bazel 팀이 선별한 다음 새 버전을 출시할지 커밋을 백 포팅합니다 - 기본 브랜치에서 이전 버전과 호환되는 커밋만 백포팅할 수 있습니다. 병합 충돌 해결을 위한 사소한 추가 변경사항은 허용됩니다.
- 커뮤니티에서 답글을 달아 특정 커밋을 백포팅할 것을 제안할 수 있습니다.
'
- 출시 차단 프로그램을 식별하고 출시 브랜치에서 발견된 문제를 해결합니다.
- 출시 브랜치는 동일한 테스트 모음으로 테스트됩니다. postsubmit 및 다운스트림 테스트 파이프라인 Bazel CI에서 빌드되었습니다 Bazel팀에서 출시 테스트 결과 모니터링 발견된 모든 회귀를 수정합니다.
- 모두 알려진 경우 출시 브랜치에서 새 출시 후보를 만듭니다.
문제가 해결되었습니다.
- 출시 후보는 bazel-discuss Bazel팀은 후보의 커뮤니티 버그 신고를 모니터링합니다.
- 새로운 출시 차단기가 확인되면 이전 단계로 돌아가서 모든 문제를 해결한 후 새 출시 후보를 만듭니다
- 이후에는 새 기능을 출시 브랜치에 추가할 수 없습니다. 생성됩니다
- 추가 버전이 없는 경우 출시 후보를 공식 버전으로 푸시합니다.
차단기가 발견됨
<ph type="x-smartling-placeholder">
- </ph>
- 패치가 출시된 경우 영업일 기준 최소 2일 후 확인할 수 있습니다
- 메이저 및 마이너 출시의 경우 영업일 기준 2일 후 출시를 푸시합니다. 마지막 출시 후보가 나왔지만 그로부터 일주일 후에는 확인할 수 있습니다
- 다음 날이 비즈니스인 날에만 출시가 푸시됨 있습니다.
- 발표곡은 bazel-discuss Bazel팀은 있습니다.
회귀 보고
사용자가 새로운 Bazel 출시에서 회귀를 발견한 경우, 출시 후보를 출시하거나 Bazel이 HEAD에 있음, 버그를 신고하세요 GitHub 이때 Bazelisk가 원인 커밋을 양분하고 이 정보를 버그에 포함 보고서.
예를 들어 Bazel 6.1.0에서는 빌드가 성공하지만 두 번째 빌드에서는 실패하는 경우 버전 6.2.0의 출시 후보인 경우 이를 통해
bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar
BAZELISK_SHUTDOWN
또는 BAZELISK_CLEAN
환경 변수를 설정하여 실행할 수 있습니다.
필요한 경우 해당 bazel 명령어를 사용하여
문제를 재현할 수 있습니다 자세한 내용은 Bazelisk 관련 문서를 확인하세요.
bisect 특성을
사용합니다.
Bazelisk를 최신 버전으로 업그레이드해야 bisect를 사용할 수 있습니다. 기능을 사용할 수 있습니다.
규칙 호환성
규칙 작성자가 다른 규칙과의 호환성을 유지하려는 경우 Bazel 버전이 있는 경우 규칙 호환성 페이지를 참조하세요.