이전 버전과의 호환성

문제 신고 소스 보기 1박 · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

이 페이지에서는 이전 버전과의 호환성을 처리하는 방법과 한 버전에서 다른 버전으로의 마이그레이션과 확인할 수 있습니다

Bazel은 진화하고 있습니다. LTS 주요 버전의 일부로 출시된 마이너 버전 버전은 이전 버전과 완전히 호환됩니다. 신주 LTS 출시 버전에 약간의 마이그레이션 작업이 필요한 호환되지 않는 변경사항이 포함되어 있을 수 있습니다. Bazel의 출시 모델에 대한 자세한 내용은 Model 페이지

요약

  1. 브레이킹 체인지에는 --incompatible_* 플래그를 사용하는 것이 좋습니다.
  2. 모든 --incompatible_* 플래그에 대해 GitHub 문제는 마이그레이션 레시피를 제공하는 것을 목표로 합니다
  3. 호환되지 않는 플래그는 최신 LTS로 백포팅하는 것이 좋습니다. 기본적으로 플래그를 사용 설정하지 않고
  4. --experimental_* 플래그로 보호되는 API 및 동작은 언제든지 변경될 수 있습니다. 있습니다.
  5. --experimental_* 또는 --incompatible_*로 프로덕션 빌드를 실행하지 마세요. 있습니다.

정책 준수 방법

안정적인 기능이란 무엇인가요?

일반적으로 --experimental_... 플래그가 없는 API 또는 동작이 고려됨 안정적이고 지원되는 Bazel 기능

여기에는 다음이 포함됩니다.

  • Starlark 언어 및 API
  • Bazel과 함께 번들로 제공되는 규칙
  • 원격 실행 API 또는 빌드 이벤트 프로토콜과 같은 Bazel API
  • 플래그 및 플래그의 의미

호환되지 않는 변경사항 및 마이그레이션 레시피

새 버전에서 호환되지 않는 모든 변경사항에 대해 Bazel팀은 마이그레이션 레시피를 참고하세요 (BUILD.bzl 파일). 스크립트 내 Bazel 사용, Bazel API 사용 등).

호환되지 않는 변경사항에는 연결된 --incompatible_* 플래그와 확인할 수 있습니다

호환되지 않는 플래그 및 관련 변경사항은 최신 LTS 버전을 대상으로 합니다. 이를 통해 사용자는 다음 LTS 버전이 출시되기 전에 호환되지 않는 변경사항을 마이그레이션하기 위해 있습니다.

호환되지 않는 변경사항 전달

호환되지 않는 변경사항에 관한 정보의 기본 출처는 GitHub 문제입니다. 'incompatible-change' 라벨과 함께 사용할 수 있습니다.

호환되지 않는 모든 변경사항에 관해 문제에는 다음 내용이 명시됩니다.

  • 호환되지 않는 변경사항을 제어하는 플래그의 이름입니다.
  • 변경된 기능에 대한 설명
  • 마이그레이션 레시피

호환되지 않는 변경사항을 HEAD에서 Bazel을 사용하여 이전할 준비가 된 경우 (따라서 다음 Bazel 롤링 출시에서도) migration-ready 라벨을 지정합니다. 호환되지 않는 변경 문제는 호환되지 않는 플래그가 HEAD에서 뒤집힙니다.