Bazel 구성 가능성 2021년 로드맵

문제 신고 소스 보기 Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

최종 확인: 2021년 1월 25일 (업데이트 내역)

담당자: 그레그스트렌

논의: 구성 가능성 로드맵: 논의

이전 로드맵

  • 2020 (연말 검토 포함)
  • 2019 (연말 검토 포함)
  • 2018

목표

$ bazel build //:all는 모든 프로젝트와 플랫폼에서 작동합니다.

  • 빌드에는 명령줄 플래그가 필요하지 않습니다.
  • 각 타겟은 올바른 설정을 자동으로 사용합니다 (예: android_binary가 올바른 NDK를 사용함).
  • 여러 플랫폼용으로 쉽게 빌드할 수 있습니다.
  • 특히 그래프 크기 및 작업 캐싱과 관련하여 빌드가 잘 확장됩니다.

cquery, Starlark configuration, select()도 지원됩니다.

로드맵

날짜는 문제의 복잡도와 개발자 가용성에 대한 최선의 이해를 바탕으로 대략적으로 추정됩니다. 2021년에는 한 번에 더 적은 수의 프로젝트에 더 많은 노력을 집중할 계획입니다. Google에서는 정확한 기대치를 제공하기 위해 적극적으로 우선순위가 지정된 작업에 대해서만 예상 처리 시간을 설정합니다.

플랫폼

2021년 3분기Android 규칙에서 새로운 플랫폼 API를 사용합니다. 진행 중 (#11749)

  • 이는 2021년 초 YouTube의 주요 우선순위입니다.

2021년 3분기빌드에서 다중 실행 플랫폼을 지원합니다. 진행 중 (#11748)

일시중지됨C++ 규칙이 새 platformsfall API를 사용합니다. 진행 중 (#6516)

  • Android 플랫폼에서는 이 기능이 차단됩니다. 간단한 플래그 전환으로 이 기능을 사용 설정할 수 있습니다.

일시중지됨멀티플랫폼 타겟 시작되지 않음

  • 타겟이 여러 플랫폼용으로 빌드되어야 한다고 선언하도록 허용
  • 사용자 요청으로 인해 여기에 표시됨

일시중지됨--cpu 및 관련 플래그 지원 중단 및 삭제 시작되지 않음

  • 이는 모든 규칙을 플랫폼으로 이전하는 과정에서 달성할 수 있는 목표입니다.

효율성

2021실험용 Bazel 모드가 교차 플랫폼 Java 컴파일을 캐시합니다. 진행 중 (#6526)

  • 멀티플랫폼 빌드 속도 개선
  • 할당량이 부족하여 진행 속도가 느림