Hoja de ruta de configuración de Bazel para 2021

Última verificación: 25/01/2021 (historial de actualizaciones)

Punto de contacto: gregestren

Temas de conversación: Configurability roadmap: discussion

Hojas de ruta anteriores

  • 2020 (con revisión de fin de año)
  • 2019 (con revisión de fin de año)
  • 2018

Objetivo

$ bazel build //:all simplemente funciona, para cualquier proyecto y plataforma.

  • Las compilaciones no requieren marcas de línea de comandos.
  • Cada destino usa automáticamente la configuración correcta (por ejemplo, android_binary usa el NDK adecuado).
  • Es fácil compilar para varias plataformas.
  • Las compilaciones se escalan bien, en particular, en lo que respecta al tamaño del gráfico y al almacenamiento en caché de acciones.

También admitimos cquery, Starlark configuration, y select().

Hoja de ruta

Las fechas son aproximadas según nuestro mejor conocimiento de la complejidad del problema y la disponibilidad de los desarrolladores. En 2021, tenemos la intención de centrar más esfuerzos en menos proyectos a la vez. Solo estableceremos los plazos estimados para el trabajo priorizado de forma activa en el interés de tener expectativas precisas.

Plataformas

T3 de 2021Las reglas de Android usan la nueva API de plataformas EN CURSO (#11749)

  • Esta es nuestra principal prioridad para principios de 2021.

T3 de 2021Las compilaciones admiten varias plataformas de ejecución EN CURSO (#11748)

PAUSADOLas reglas de C++ usan la nueva API de plataformas EN CURSO (#6516)

  • Esto está bloqueado en las plataformas de Android. Podemos activarlo con un simple cambio de marca.

PAUSADODestinos multiplataforma NO SE INICIÓ

  • Permite que los destinos declaren que deben compilarse para varias plataformas.
  • Se incluye aquí debido a la solicitud del usuario.

PAUSADOObsoleto y quita --cpu y las marcas relacionadas NO SE INICIÓ

  • Este es un objetivo ambicioso que surge de la migración de todas las reglas a las plataformas.

Eficiencia

2021Un modo experimental de Bazel almacena en caché la compilación de Java multiplataforma EN CURSO (#6526)

  • Mejora la velocidad de compilación multiplataforma.
  • Subasignado, por lo que el progreso es lento.