Descripción general
El proyecto de Bazel evoluciona constantemente en respuesta a tus necesidades, ya que desarrolla funciones y brinda asistencia, a la vez que mantiene, refactoriza y mejora el rendimiento del producto principal.
Con estos cambios, buscamos mantener informada y participativa 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.
Estos son los objetivos de la hoja de ruta, por lo que no deben considerarse garantías. Las prioridades están sujetas a cambios en respuesta a los comentarios de los desarrolladores y los 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 del Grupo de Google.
4º 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 nuevas funciones potentes y 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, a la vez, sigan siendo rápidos y eficientes en el uso de recursos. Bzlmod, que se introdujo de forma experimental en Bazel 5.0, estará disponible de forma general y proporcionará una solución para el problema de dependencia de diamante.
- Bzlmod pasa de "experimental" a "disponible para el público en general"
- Se 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 para los equipos que desean adoptar Bzlmod.
- El repositorio central de Bazel aloja reglas
BUILD
principales de Bazel (rules\_jvm\_external
,rules\_go
,rules\_python
,rules\_nodejs
) y 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 una app para Android con Bazel
Bazel 6.0 incluirá herramientas mejoradas y contribuciones de funciones de la comunidad incorporadas. 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 lo establece como el dexer predeterminado.
- Se fusionaron las contribuciones a las funciones principales 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
- Cómo combinar etiquetas "uses-permissions" en manifiestos de Android
- Multiplexación de trabajadores 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 asistencia para el desarrollo de más cadenas 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 alternativa 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
- Se aumentó la compatibilidad con el desarrollo remoto
- Se impulsa el desarrollo basado en la comunidad para las 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ó a desarrollar las siguientes funciones o prevé priorizarlas en 2023 y años posteriores.
Mejoras en las reglas de compilación de Android de Bazel
Seguimos invirtiendo en la experiencia de desarrollo de apps para Android, enfocándonos en el flujo de trabajo a través de la compilación, las pruebas y la implementación.
- Migración a R8 y compatibilidad con este
- 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 de segmentación incluyen las siguientes:
- La capacidad de auditar los paquetes que usa un destino determinado
- Capacidad de crear 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 a WORKSPACE
como subsistema predeterminado de administración de dependencias del espacio de trabajo de Bazel. Entre las funciones segmentadas, se incluyen las siguientes:
- Compatibilidad con compilaciones herméticas
- El proveedor o el modo sin conexión fijan las reglas de referencias versionadas en una copia local.
- El registro central de Bazel incluye la contribución y la adopción regulares de la comunidad de reglas y proyectos clave de Bazel
- Bzlmod se convierte en la herramienta predeterminada para compilar proyectos de Bazel
Compilaciones firmadas
Bazel proporcionará archivos binarios confiables para Windows y Mac firmados con claves de Google. Esta función permite que los desarrolladores y los equipos de DevOps de varias plataformas identifiquen la fuente de los archivos binarios de Bazel y protejan sus sistemas de archivos binarios maliciosos y no verificados.
API de Standardized Platforms
La nueva API de Platforms estandarizará la configuración de la arquitectura para las compilaciones en varios idiomas y plataformas. Con esta función, los desarrolladores pueden reducir los errores costosos durante el tiempo de desarrollo y la complejidad en sus compilaciones grandes.
Crea métricas de análisis
La telemetría de Bazel proporcionará métricas de tiempo de la fase de análisis, lo que permitirá a los desarrolladores optimizar el rendimiento de sus propias compilaciones.
Ejecución remota con "Compilaciones sin bytes"
Builds without the Bytes optimizará el rendimiento, ya que solo permitirá que Bazel descargue los artefactos necesarios, lo que evitará que las compilaciones se vean limitadas por el ancho de banda de la red. Entre las funciones agregadas para las compilaciones remotas, se incluyen las siguientes:
- Usa la descarga asíncrona para permitir que las acciones locales y remotas se inicien en cuanto hayan descargado 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.