Hoja de ruta de Bazel

Informar un problema Ver fuente

Descripción general

Feliz año nuevo a nuestra comunidad de Bazel. Con el nuevo año, tenemos previsto agregar detalles de nuestra hoja de ruta para 2023. El año pasado, publicamos nuestra hoja de ruta del año 2022 con nuestros planes de Bazel 6.0. Esperamos que esta hoja de ruta sirviera conforme a tus necesidades de herramientas de compilación. A medida que el proyecto de Bazel sigue evolucionando en respuesta a tus necesidades, queremos compartir nuestra actualización de 2023.

Con estos cambios, buscamos mantener a nuestra comunidad de código abierto informada e incluida. En esta hoja de ruta, se describen las iniciativas actuales y las predicciones para el futuro del desarrollo de Bazel, lo que te brinda visibilidad sobre las prioridades actuales y los proyectos en curso.

Versión de Bazel 7.0

Planeamos ofrecer asistencia a largo plazo (LTS) de Bazel 7.0 a finales de 2023. Con Bazel 7.0, buscamos ofrecer muchos de los elementos en curso y continuar trabajando en las mejoras de funciones que solicitaron los usuarios.

Mejor uso compartido de caché multiplataforma

Permite compartir los artefactos almacenados en caché entre diferentes plataformas de compilación locales (Mac) y remotas (Linux) para desarrollo de Java/Kotlin y Android, lo que mejora el rendimiento y el uso eficiente de la caché.

Compilación de apps para Android con Bazel

Manifest & Resource Merger se actualiza a la versión 30.1.3 para que los desarrolladores de apps para Android puedan usar nuevas funciones para combinar manifiestos, como tools:node="merge".

Mejoras en la ejecución remota

Bazel 7.0 es compatible con la ejecución asíncrona, lo que acelera la ejecución remota mediante un mayor paralelismo con los trabajos de marca.

Bzlmod: sistema de administración de dependencias externo

Bzlmod resuelve automáticamente las dependencias transitivas, lo que permite que los proyectos escalen con rapidez y eficiencia de recursos. Bazel 7.0 incluye una serie de mejoras en la funcionalidad de administración de dependencias externa de Bazel, incluidas las siguientes:

  • Bzlmod está activado de forma predeterminada para la administración de dependencias externas en Bazel
  • Compatibilidad con archivos de bloqueo: habilita la compilación hermética con Bzlmod
  • Compatibilidad con proveedores y modo sin conexión: permite que los usuarios ejecuten compilaciones con dependencias descargadas previamente
  • Compatibilidad total con la caché del repositorio (el almacenamiento en caché no solo descarga artefactos, sino también el contenido final del repositorio)
  • El Registro central de Bazel incluye contribuciones de la comunidad y adopción de proyectos y reglas clave de Bazel.

Crea métricas de análisis

Bazel 7.0 proporciona métricas de tiempo de las fases de análisis, lo que permite a los desarrolladores optimizar el rendimiento de su propia compilación.

Compila sin los bytes activados de forma predeterminada

Compilaciones sin los bytes optimiza el rendimiento, ya que evita la descarga de artefactos intermedios y evita que las compilaciones generen cuellos de botella en el ancho de banda de red. Entre las funciones que se agregaron, se incluyen las siguientes:

Aumenta la productividad con Skymeld

Bazel 7.0 presenta Skymeld, un modo de evaluación que reduce el tiempo de tus compilaciones de varios destinos. Skymeld elimina la barrera entre las fases de análisis y ejecución para mejorar las velocidades de compilación, en especial, para las compilaciones con varios objetivos de nivel superior. Sin embargo, en el caso de las compilaciones de un solo destino, no se espera una diferencia significativa.

Ecosistema y herramientas de Bazel

Compilación de apps para Android con Bazel

  • Migra las reglas nativas de Android a Starlark: En Bazel 7.0, las reglas de Android migran a Starlark para separar el desarrollo de Bazel y habilitar mejor las contribuciones de la comunidad. Además, hemos hecho que estas reglas sean independientes del objeto binario principal de Bazel, lo que nos permite realizar lanzamientos con mayor frecuencia.
  • Migración de reglas de Android a Starlark
  • Compatibilidad con R8: Permite que los desarrolladores de apps para Android usen optimizaciones actualizadas con R8.
  • Instalación para dispositivos móviles: Permite que los desarrolladores de apps para Android desarrollen, prueben e implementen rápidamente cualquier cambio en una app para Android mediante una versión actualizada de Instalación para dispositivos móviles.

Generación de datos de listas de materiales (SBOM) de software y herramientas de cumplimiento de licencias de OSS

Con Bazel, los desarrolladores pueden generar datos para ayudar a producir SBOM. Estos datos se generan en formato de texto o JSON, y se les puede dar formato fácilmente para cumplir con las especificaciones de SPDX o CycloneDX. Además, el proceso proporciona reglas para declarar las licencias en las que están disponibles los módulos de Bazel y herramientas para compilar procesos en torno a esas declaraciones. Consulta la implementación de las reglas_licencia en progreso en GitHub.

Compilaciones firmadas

Bazel proporciona objetos binarios de confianza para Windows y Mac firmados con claves de Google. Esta función permite que los desarrolladores/dev-ops multiplataforma identifiquen la fuente de los objetos binarios de Bazel y protejan sus sistemas de objetos binarios no verificados y potencialmente maliciosos.

Migración de reglas de Java, C++ y Python a Starlark

Completar la migración de los conjuntos de reglas de Java, C++ y Python a Starlark Este esfuerzo permite que los usuarios de Bazel solo bifurquen conjuntos de reglas y no la base de código binario de Bazel, lo que permite a los usuarios

  • Actualiza y personaliza las reglas según sea necesario
  • Actualiza las reglas sin usar Bazel

Compatibilidad con Bazel-JetBrains* IntelliJ IDEA

Actualizaciones incrementales del complemento de IntelliJ para admitir la versión más reciente del complemento de JetBrains.

En esta hoja de ruta, se resumen los objetivos, lo que no debe tomarse como una garantía. Las prioridades están sujetas a cambios en respuesta a los comentarios de los desarrolladores y los clientes o a las nuevas oportunidades de mercado.

Si quieres recibir notificaciones sobre funciones nuevas, incluidas las actualizaciones de esta hoja de ruta, únete a la comunidad de Grupos de Google.

*Copyright © 2022 JetBrains s.r.o. JetBrains e IntelliJ son marcas registradas de JetBrains s.r.o.