Bazel Build API 2021 로드맵

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

담당자: comius

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

범위

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

목표

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

자바 규칙

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

2021년 1분기

  • 기존 자바 규칙을 재작성할 수 있도록 자바 샌드위치를 개선합니다. 완료

2021년 2분기

  • 자바의 네이티브 라이브러리에 대한 Starlark 지원을 개선합니다. 진행 중
  • 플러그인 및 IDE의 java_common 지원을 개선합니다. 자바 공통 리팩터링을 제안합니다. 진행 중
  • 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_toolchain).

2022

  • java_common 모듈의 별표 생성

C++ 규칙

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

2021년 1분기

  • Clang 모듈 지원, DROPPED*
  • 검사 포함 지원, DROPPED*에서 예상되는 성능 개선
  • *성능을 개선하는 데 모듈이 정말 필요한지 평가하려면 더 많은 데이터가 필요합니다.

2021년 2분기

  • 내부 Go 규칙진행 중으로 별표화됨
  • Objective-C 규칙 objc_library 및 objc_import와 이와 관련된 네이티브 코드는 진행 중 Starlarkified입니다.

2021년 가을~2022년 초

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

2022

  • 기타 C++ 규칙의 별표 정의 (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 모듈의 별표표시

기타

2021년 중반