Lanzamiento de Bazel 7

DIC 12, 2023

Bazel 7 ya está disponible. Bazel es el sistema de compilación de código abierto de Google para realizar compilaciones rápidas y correctas. Tiene soporte incorporado para crear software del cliente y el servidor, incluidas apps clientes para las plataformas Android e iOS. También proporciona un marco de trabajo extensible que puedes usar para desarrollar tus propias reglas de compilación. Con Bazel se compilan casi todos los productos de Google, incluidos Búsqueda de Google, GMail y Documentos de Google.

¿Cuáles son las novedades de Bazel 7?

Bazel 7 es la última versión importante en el segmento de asistencia a largo plazo (LTS). Incluye lo siguiente:

Bzlmod: Bzlmod, el nuevo sistema modular de administración de dependencias externas de Bazel, ahora está habilitado de forma predeterminada (es decir, según la configuración predeterminada, --enable_bzlmod es true). Si tu proyecto no tiene un archivo MODULE.bazel, Bazel creará uno vacío para ti. El antiguo mecanismo WORKSPACE continuará funcionando junto con el nuevo sistema administrado por Bzlmod. Obtén más información sobre lo que cambió desde Bazel 6 y lo que vendrá en Bazel 8 y 9.

Compilación sin bytes (BwoB): en compilaciones que utilizan la ejecución remota, ahora puedes compilar sin bytes de forma predeterminada (es decir, según la configuración predeterminada, --remote_download_outputs es toplevel). Bazel ya no intentará descargar ninguna salida intermedia del servidor remoto, sino solo las salidas de los objetivos de nivel superior solicitados. Esto mejora significativamente el rendimiento de la compilación remota. Obtén más información sobre BwoB.

Análisis y ejecución combinados (Skymeld): el proyecto Skymeld tiene como objetivo mejorar el rendimiento de la compilación de múltiples objetivos eliminando el límite entre las fases de análisis y ejecución, y permitiendo que los objetivos se ejecuten de forma independiente tan pronto como finalice su análisis.

Resolución de conjuntos de herramientas basados en plataformas para Android y C++: este cambio ayuda a simplificar la API de resolución de conjuntos de herramientas en todos los conjuntos de reglas, lo que evita la necesidad de marcas específicas del lenguaje. También se elimina la deuda técnica, ya que las reglas de Android y C++ utilizan la misma lógica de resolución de conjuntos de herramientas que otros conjuntos de reglas. Los detalles completos para los desarrolladores de Android están disponibles en el anuncio de las plataformas de Android.

Lo que viene

Lee las notas de la versión completas de Bazel 7 y síguenos durante nuestra colaboración para crear Bazel 8:

Si tienes alguna pregunta o comentario, o si quieres compartir algo que hayas creado, ponte en contacto con product@bazel.build. ¡Nos encantaría conocer lo que piensas!