Bazel은 개발자의 요구에 따라 계속해서 발전하고 있습니다. 2025년 로드맵 업데이트를 공유합니다.
2025년 말에 Bazel 9.0 장기 지원 (LTS)을 제공할 계획입니다.
Bzlmod로의 전체 전환
Bzlmod는 Bazel 7부터 Bazel의 표준 외부 종속 항목 시스템으로, 기존 WORKSPACE 시스템을 대체했습니다. 2025년 3월 현재 Bazel Central Registry는 650개가 넘는 모듈을 호스팅하고 있습니다.
Bazel 9에서는 WORKSPACE 기능이 완전히 삭제되며 Bzlmod가 Bazel에 외부 종속 항목을 도입하는 유일한 방법이 됩니다. 커뮤니티의 이전 비용을 최소화하기 위해 이전 가이드 및 도구를 더욱 개선하는 데 집중할 예정입니다.
또한 가비지 컬렉션을 사용하여 개선된 공유 저장소 캐시 (#12227 참고)를 구현하고 Bazel 8에 백포팅할 예정입니다. Bazel Central Registry는 SLSA 증명 확인도 지원합니다.
Android, C++, Java, Python, Proto 규칙 이전
Bazel 8에서는 Android, Java, Python, Proto 규칙에 대한 지원을 Bazel 코드베이스에서 해당 저장소의 Starlark 규칙으로 이전했습니다. 이전을 쉽게 하기 위해 Bazel에 --incompatible_autoload_externally 및 --incompatible_disable_autoloads_in_main_repo 플래그로 제어할 수 있는 자동 로드 기능을 구현했습니다.
Bazel 9에서는 기본적으로 자동 로드를 사용 중지하고 모든 프로젝트가 BUILD 파일에서 필요한 규칙을 명시적으로 로드하도록 요구하는 것을 목표로 합니다.
C++ 언어 지원의 대부분을 Starlark로 재작성하고 Bazel 바이너리에서 분리한 후 /rules_cc 저장소로 이동합니다. 이는 여전히 Bazel의 일부인 마지막으로 남은 주요 언어 지원입니다.
또한 C++, Java, Proto 규칙의 단위 테스트를 Starlark로 포팅하여 구현 옆의 저장소로 이동하여 규칙 작성자의 속도를 높이고 있습니다.
Starlark 개선사항
Bazel은 기호 매크로를 지연 평가할 수 있습니다. 즉, 선언된 타겟이 요청되지 않으면 기호 매크로가 실행되지 않으므로 매우 큰 패키지의 성능이 개선됩니다.
Starlark에는 Python의 유형 주석과 유사한 실험용 유형 시스템이 있습니다. Bazel 9이 출시된 후에 유형 시스템이 안정화될 것으로 예상됩니다.
구성 가능 여부
Google의 주요 목표는 빌드 플래그의 비용과 혼란을 줄이는 것입니다.
사용자가 어디에 어떤 빌드 및 테스트 플래그를 설정해야 하는지 알 필요가 없는 새로운 프로젝트 구성 모델을 실험하고 있습니다. 따라서 $ bazel test //foo
는 foo
의 프로젝트 정책에 따라 올바른 플래그를 자동으로 설정합니다. 이 기능은 9.0에서 실험용으로 유지될 가능성이 높지만 유용한 의견은 언제든지 보내주세요.
플래그 범위 지정을 사용하면 Starlark 플래그가 프로젝트 경계를 벗어날 때 이를 제거할 수 있으므로 플래그가 필요하지 않은 전이 종속 항목의 캐싱이 중단되지 않습니다. 이렇게 하면 전환을 사용하는 빌드가 더 저렴하고 빠르게 실행됩니다. 예를 들면 다음과 같습니다. 실행 구성에 전파되는 플래그를 제어하는 아이디어를 확장하고 있으며, 플래그를 전파해야 하는 종속 항목 가장자리를 결정하기 위해 커스텀 Starlark와 같은 더욱 유연한 지원을 고려하고 있습니다.
기본 제공 언어 플래그를 Bazel에서 Starlark로 이전하는 작업에 우선순위를 두고 있습니다. Starlark에서는 관련 규칙 정의와 함께 사용할 수 있습니다.
원격 실행 개선사항
비동기 실행을 지원하여 병렬성을 늘려 원격 실행 속도를 높이는 기능을 추가할 계획입니다.
로드맵 업데이트를 확인하고 계획된 기능을 논의하려면 slack.bazel.build에서 커뮤니티 Slack 서버에 가입하세요.
이 로드맵은 Bazel 9.0에 대한 팀의 의도를 커뮤니티에 알리는 데 도움이 됩니다. 우선순위는 개발자 및 고객 의견 또는 새로운 시장 기회에 따라 변경될 수 있습니다.