Hoja de ruta de la API de Build de Bazel Build 2021

Informar un problema Ver fuente . Por la noche · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Última verificación: 9 de abril de 2021 (historial de actualizaciones)

Punto de contacto: comius

Temas de conversación: Creación de la hoja de ruta de las APIs: debate

Alcance

El equipo de API de Build está abordando implementaciones de reglas nativas y la API nativa a Starlark.

Objetivo

Implementar todas las reglas en Starlark y entregarlas a equipos especializados en el idioma en particular. Se quitó la lógica específica del lenguaje del núcleo de Bazel.

Reglas de Java

Primero, las reglas de Java se reescriben en Starlark y se prueban internamente en un en una base de código grande. Luego, se lanzarán a Bazel.

Primer trimestre de 2021

  • Mejorar el sándwich de Java para que sea posible volver a escribir el código Java existente las reglas de firewall. LISTO

Segundo trimestre de 2021

  • Se mejoró la compatibilidad de Starlark con las bibliotecas nativas en Java. EN CURSO
  • Mejorar la compatibilidad de java_common con IDE y complementos: propuesta Refactorización común de Java. EN CURSO
  • La regla java_library está Starlarkified. ENTRA PROGRESO

Mediados de 2021

  • Las reglas java_binary y java_test están Starlarkified.
  • Las reglas java_import y java_plugin están Starlarkified.

Otoño de 2021

  • Larkificación de java_*_proto_library
  • Las demás reglas de Java se muestran con Starlarkified: java_package_configuration, java_runtime y java_toolchain.

2022

  • Starlarkification de java_common module.

Reglas de C++

Para poder reescribir las reglas de C++ en Starlark, se necesitan algunas limpiezas internas. Luego, las reglas de C++ se reescribirán en Starlark pieza por parte con funcionalidad integrada. No se podrá acceder a la API para reglas de C++ desde .bzl hasta que se reescriba cc_module en Starlark también.

Primer trimestre de 2021

  • Compatibilidad con módulos Clang, DROPPED*
  • e Incluir el análisis, las mejoras en el rendimiento esperadas de ambas DROPPED*
  • *Necesitamos más datos para evaluar si los módulos son realmente lo que se necesita para mejorar el rendimiento.

Segundo trimestre de 2021

  • Las reglas de Go internas están Starlarkified IN PROGRESO
  • Las reglas de Objective-C objc_library y objc_import, y el código nativo para ellos están Starlarkify IN PROGRESS

Otoño de 2021 y principios de 2022

  • cc_binary, cc_test y cc_library están Starlarkified

2022

  • Starlarkification de otras reglas de C++ (fdo_profile, cc_import, cc_toolchain_suite, cc_toolchain_suite, fdo_prefetch_hints, cc_toolchain_alias cc_libc_top_alias, cc_host_toolchain_alias, +2)
  • Starlarkification del módulo cc_common

Varios

Mediados de 2021