Bazel Build API 2021 로드맵

최종 확인: 2021-04-09 (업데이트 기록)

_담당자: comius

토론: 빌드 API 로드맵: 토론

범위

빌드 API팀은 네이티브 규칙 구현과 Starlark에 노출된 네이티브 API를 다룹니다.

목표

모든 규칙을 Starlark에서 구현하고 특정 언어를 전문으로 하는 팀에 전달합니다. Bazel의 핵심에서 언어별 로직을 삭제합니다.

Java 규칙

Java 규칙은 먼저 Starlark로 다시 작성되고 대규모 코드베이스에서 내부적으로 테스트됩니다. 그런 다음 Bazel에 출시됩니다.

2021년 1분기

  • Java 샌드위치를 개선하여 기존 Java 규칙을 다시 작성할 수 있도록 합니다. 완료

2021년 2분기

  • Java에서 네이티브 라이브러리 에 대한 Starlark 지원을 개선합니다. 진행 중
  • 플러그인 및 IDE에 대한 java_common 지원을 개선합니다. 제안 Java 공통 리팩터링. 진행 중
  • java_library 규칙이 Starlarkified됩니다. 진행 중

2021년 중반

  • java_binary 및 java_test 규칙이 Starlarkified됩니다.
  • java_import 및 java_plugin 규칙이 Starlarkified됩니다.

2021년 가을

  • java_*_proto_library 의 Starlarkification
  • 나머지 Java 규칙이 Starlarkified됩니다. java_package_configuration, java_runtime, java_toolchain.

2022

  • java_common 모듈 의 Starlarkification

C++ 규칙

C++ 규칙을 Starlark로 다시 작성하려면 몇 가지 내부 정리 작업이 필요합니다. 그런 다음 C++ 규칙은 기본 제공 기능을 사용하여 Starlark로 조금씩 다시 작성됩니다. cc_module도 Starlark로 다시 작성될 때까지 C++ 규칙의 API는 .bzl 파일에서 액세스할 수 없습니다.

2021년 1분기

  • Clang 모듈 지원, 삭제됨*
  • 포함 스/캔 지원, 둘 다 삭제됨*으로 인한 성능 개선 예상
  • *모듈이 성능을 개선하는 데 정말로 필요한지 평가하려면 데이터가 더 필요합니다.

2021년 2분기

  • 내부 Go 규칙 이 Starlarkified 진행 중
  • Objective-C 규칙 objc_library 및 objc_import와 관련 네이티브 코드 가 Starlarkified 진행 중

2021년 가을 및 2022년 초

  • cc_binary, cc_test, cc_library 가 Starlarkified됩니다.

2022

  • 기타 C++ 규칙의 Starlarkification (fdo_profile, cc_import, cc_toolchain, cc_toolchain_suite, fdo_prefetch_hints, cc_toolchain_alias, cc_libc_top_alias, cc_host_toolchain_alias, +2)
  • cc_common 모듈 의 Starlarkification

기타

2021년 중반

  • Aspect는 다른 Aspect를 전파할 수 있습니다. 다른 Aspect 전파 제안 Aspects Propagating Other Aspects. 진행 중
  • Starlark 테스트 프레임워크 개선