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

Informar un problema Ver código fuente Nightly · 8.0 7.4 . 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

Discusión: Ruta de planificación para crear una API: debate

Alcance

El equipo de la API de compilación abarca las implementaciones de reglas nativas y la API nativa expuesta a Starlark.

Objetivo

Tener todas las reglas implementadas en Starlark y entregadas 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 reescribirán en Starlark y se probarán de forma interna en una base de código grande. Después, se lanzarán a Bazel.

Primer trimestre de 2021

  • Mejora el sandwich de Java, lo que permite volver a escribir las reglas de Java existentes. LISTO

Segundo trimestre de 2021

  • Se mejoró la compatibilidad de Starlark con las bibliotecas nativas en Java. EN CURSO
  • Mejora la compatibilidad de java_common con complementos y IDEs: propuesta de refactorización común de Java. EN CURSO
  • La regla java_library está Starlarkificada. EN CURSO

Mitad de 2021

  • Las reglas java_binary y java_test se convierten a Starlark.
  • Las reglas java_import y java_plugin se convirtieron a Starlark.

Otoño de 2021

  • Starlarkificación de java_*_proto_library
  • Las reglas de Java restantes se convierten a Starlark: java_package_configuration, java_runtime, java_toolchain.

2022

  • Starlarkificación del módulo java_common.

Reglas de C++

Antes de que se puedan volver a escribir las reglas de C++ en Starlark, se necesitan algunas limpiezas internas. Después de eso, las reglas de C++ se reescribirán en Starlark pieza por pieza con la funcionalidad de funciones integradas. No se podrá acceder a la API de las reglas de C++ desde los archivos .bzl hasta que cc_module también se vuelva a escribir en Starlark.

Primer trimestre de 2021

  • Compatibilidad con módulos de Clang: SE DEJÓ DE LADO*
  • y la compatibilidad con Incluir escaneo, las mejoras de rendimiento esperadas de ambos 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 se están convirtiendo a Starlark EN PROGRESO
  • Las reglas de Objective-C objc_library y objc_import y el código nativo relacionado con ellas están Starlarkified EN PROCESO

Otoño de 2021 y principios de 2022

  • cc_binary, cc_test y cc_library se convirtieron a Starlark

2022

  • Starlarkificación de otras reglas de 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)
  • Starlarkificación del módulo cc_common

Varios

Mitad de 2021