Descripción general
El proyecto de Bazel evoluciona constantemente en respuesta a tus necesidades: desarrolla funciones y brinda asistencia, mientras mantiene, refactoriza y mejora el rendimiento del producto principal.
Con estos cambios, buscamos mantener informada e incluida a nuestra comunidad de código abierto. 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.
Esta hoja de ruta muestra objetivos y no debe tomarse como garantía. Las prioridades están sujetas a cambios en respuesta a los comentarios de los desarrolladores y clientes, o a nuevas oportunidades de mercado.
Para recibir notificaciones sobre las nuevas funciones, incluidas las actualizaciones de esta hoja de ruta, únete a la comunidad de Grupos de Google.
Cuarto trimestre: Lanzamiento de Bazel 6.0
En el cuarto trimestre, se lanzará Bazel 6.0, la nueva versión de asistencia a largo plazo (LTS). Bazel 6.0 planea incluir funciones nuevas y potentes solicitadas por la comunidad para administrar dependencias, desarrollar con Android y mucho más.
Bzlmod: Sistema de administración de dependencias externas
Bzlmod resuelve automáticamente las dependencias transitivas, lo que permite que los proyectos se escalen y, al mismo tiempo, sigan siendo rápidos y eficientes en cuanto a los recursos. Bzlmod, que se introdujo de forma experimental en Bazel 5.0, estará disponible para el público en general y proporcionará una solución para el problema de la dependencia de diamante.
- Bzlmod pasa de "experimental" a "disponible para el público en general".
- Incluye compatibilidad con
rules\_jvm\_external, lo que permite a los usuarios descargar dependencias de Maven para proyectos de Java. - La Guía de migración de Bzlmod proporciona herramientas, secuencias de comandos y documentación a los equipos que desean adoptar Bzlmod.
- El repositorio central de Bazel aloja las reglas
BUILDprincipales de Bazel (rules\_jvm\_external,rules\_go,rules\_python,rules\_nodejs) y las dependencias clave necesarias para Bzlmod.
Para obtener más información sobre este desarrollo, mira la actualización de la comunidad de Bzlmod o lee el documento de diseño original.
Compilación de apps para Android con Bazel
Bazel 6.0 incluirá herramientas mejoradas y contribuciones de funciones de la comunidad combinadas. Anticipándose a una mayor adopción y a una base de código en crecimiento, el equipo de Bazel priorizará la integración de las herramientas de compilación de Android con las reglas de Bazel para Android.
- Actualiza D8 a la versión 3.3.28 y la establece como el dexer predeterminado.
- Se combina con las principales contribuciones de funciones de la comunidad agregadas en la versión 5.X, incluida la compatibilidad con lo siguiente:
- Trabajadores persistentes con D8
- Expansión de sintaxis con D8
- Combinación de etiquetas "uses-permissions" en manifiestos de Android
- Trabajadores de multiplexación en el procesamiento de recursos de Android
Cadenas de herramientas opcionales
Nuestra encuesta de satisfacción de los desarrolladores mostró que los autores de reglas desean compatibilidad para un mayor desarrollo de la cadena de herramientas. Bazel 6.0 permitirá a los autores escribir reglas con una cadena de herramientas opcional de alto rendimiento cuando esté disponible con una implementación de resguardo para otras plataformas.
Compatibilidad con IntelliJ IDEA de Bazel-JetBrains*
JetBrains se asoció con Bazel para mantener en conjunto el complemento de Bazel IntelliJ IDEA, lo que respalda el objetivo de aumentar la administración de la comunidad y abrir la capacidad para las solicitudes de funciones y el desarrollo.
- El complemento de IntelliJ v. 2022.2 proporciona compatibilidad con la versión más reciente del complemento de JetBrains.
- Aumenta la compatibilidad con el desarrollo remoto.
- Promueve el desarrollo impulsado por la comunidad para funciones en curso, como la compatibilidad con Scala.
Para obtener más información sobre este desarrollo, lee el anuncio del blog de Bazel-JetBrains.
Desarrollo futuro
De cara al futuro, el equipo de Bazel comenzó el desarrollo o anticipa priorizar las siguientes funciones en 2023 y versiones posteriores.
Mejora de las reglas de compilación de Android de Bazel
Sigue invirtiendo en la experiencia de desarrollo de apps para Android, enfocándote en el flujo de trabajo a través de la compilación, la prueba y la implementación.
- Migración a R8 y compatibilidad con esta herramienta
- Actualizaciones de las reglas de Android, incluida la traducción al lenguaje Starlark
- Compatibilidad con Android App Bundle
- Compatibilidad con versiones recientes del NDK
- Cobertura de código de prueba
Herramientas de cumplimiento de licencias de OSS
Los desarrolladores solicitaron un verificador de cumplimiento de licencias sólido para garantizar la disponibilidad y la seguridad de los paquetes incluidos. Este proyecto proporciona un conjunto de reglas y herramientas para ayudar a identificar y mitigar los riesgos de cumplimiento y licencias asociados con un componente de software determinado. Las funciones objetivo incluyen lo siguiente:
- La capacidad de auditar los paquetes que usa un destino determinado
- La capacidad de compilar verificaciones de cumplimiento de licencias específicas de la organización
Consulta la implementación de rules_license en curso en GitHub.
Bzlmod: Sistema de administración de dependencias externas
En el lanzamiento, Bzlmod mejora la escalabilidad y la confiabilidad de las dependencias transitivas. En los próximos tres años, Bzlmod tiene como objetivo reemplazar WORKSPACE como el subsistema predeterminado de administración de dependencias del espacio de trabajo de Bazel. Las funciones objetivo incluyen lo siguiente:
- Compatibilidad con compilaciones herméticas
- Fijación de modo sin conexión o de proveedor de reglas de referencias versionadas a una copia local
- El Registro central de Bazel incluye la contribución regular de la comunidad y la adopción de reglas y proyectos clave de Bazel.
- Bzlmod se convierte en la herramienta predeterminada para compilar proyectos de Bazel.
Compilaciones firmadas
Bazel proporcionará objetos binarios de confianza para Windows y Mac firmados con claves de Google. Esta función permite que los desarrolladores y las operaciones de desarrollo multiplataforma identifiquen la fuente de los objetos binarios de Bazel y protejan sus sistemas de objetos binarios maliciosos y no verificados.
API de plataformas estandarizadas
La nueva API de Platforms estandarizará la configuración de la arquitectura para compilaciones multiplataforma y multilingüe. Con esta función, los desarrolladores pueden reducir los errores costosos durante el desarrollo y la complejidad en sus compilaciones grandes.
Métricas de análisis de compilación
La telemetría de Bazel proporcionará métricas de tiempo de la fase de análisis, lo que permitirá a los desarrolladores optimizar su propio rendimiento de compilación.
Ejecución remota con "Compilaciones sin los bytes"
Las compilaciones sin los bytes optimizarán el rendimiento, ya que solo permitirán que Bazel descargue los artefactos necesarios, lo que evitará que las compilaciones se conviertan en un cuello de botella en el ancho de banda de la red. Las funciones agregadas para las compilaciones remotas incluyen lo siguiente:
- Usa la descarga asíncrona para permitir que se inicien las acciones locales y remotas en cuanto se descarguen sus resultados dependientes.
- Agrega compatibilidad con vínculos simbólicos.
- Recupera resultados intermedios de acciones remotas una vez que se completa una compilación.
*Copyright © 2022 JetBrains s.r.o. JetBrains e IntelliJ son marcas registradas de JetBrains s.r.o.