Bazel Build API 2021 로드맵

문제 신고하기 소스 보기

최종 확인: 2021년 4월 9일 (업데이트 기록)

담당자: comius

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

범위

Build API팀에서는 네이티브 규칙 구현과 Starlark에 노출된 네이티브 API를 다룹니다.

목표

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

Java 규칙

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

2021년 1분기

  • 기존 자바 규칙을 다시 작성할 수 있도록 자바 샌드위치가 개선되었습니다. 완료

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의 별표화
  • 나머지 자바 규칙은 Starlarkified(java_package_configuration, java_runtime, java_Tools)입니다.

2022

  • java_common 모듈의 별표화

C++ 규칙

Starlark에서 C++ 규칙을 다시 작성하기 전에 몇 가지 내부 정리가 필요합니다. 그런 다음 C++ 규칙이 내장 기능을 사용하여 Starlark에 부분적으로 재작성됩니다. C++ 규칙용 API는 cc_module도 Starlark에서 다시 작성할 때까지 .bzl 파일에서 액세스할 수 없습니다.

2021년 1분기

  • Clang 모듈 지원, 삭제됨*
  • 스캔 포함 지원, DROPPED* 둘 다에서 예상되는 성능 개선
  • *모듈이 실제로 성능을 개선하는 데 필요한 것인지 평가하려면 더 많은 데이터가 필요합니다.

2021년 2분기

  • 내부 Go 규칙은 별표표시됨 진행 중
  • Objective-C 규칙 objc_library 및 objc_import와 이러한 규칙과 관련된 네이티브 코드가 진행 중인 Starlarkified

2021년 가을부터 2022년 초

  • cc_binary, cc_test, cc_library는 Starlarkified입니다.

2022

  • 다른 C++ 규칙의 Starlarkification (fdo_profile, cc_import, cc_툴체인, cc_Tools_suite, fdo_prefetch_hints, cc_ Toolkit_alias, cc_libc_top_alias, cc_host_ Toolkit_alias, +2)
  • cc_common 모듈의 별표화

기타

2021년 중반

  • 관점은 다른 관점(제안서 다른 관점 전파 관점)을 전파할 수 있습니다. 진행 중
  • Starlark 테스트 프레임워크 개선