Bazel 4.0 y versiones posteriores admiten dos segmentos de lanzamiento: las versiones de compatibilidad a largo plazo (LTS) y las versiones continuas. En esta página, se aborda el control de versiones en Bazel, el tipos de versiones y los beneficios de esos lanzamientos para los usuarios de Bazel y colaboradores.
Información sobre el control de versiones en Bazel
Bazel usa un esquema de control de versiones semántico major.minor.patch.
- Una versión principal contiene funciones que no son retrocompatibles con la versión anterior.
- Una versión menor contiene nuevas funciones retrocompatibles.
- Una versión del parche contiene cambios menores y correcciones de errores.
Si usamos la versión 3.5.1 como ejemplo, un nuevo lanzamiento de cada tipo generaría una estos números de versión:
- Mayor: 4.0
- Menor: 3.6
- Parche: 3.5.2
Ciclo de lanzamiento de Bazel
Bazel publica versiones progresivas de manera continua. Cada versión principal es una versión LTS. Puedes elegir seguir cualquiera de las cadencias de actualización o actualizar Lanzamiento de LTS a la siguiente, o actualización con cada versión de versión secundaria
En la imagen, se muestran las versiones continuas y LTS, y la compatibilidad esperada para cada una.
Figura 1: Versiones progresivas y LTS
Ramas de lanzamiento
Cada versión principal se convierte en una rama de desarrollo independiente en el lanzamiento. Puedes recibir correcciones de errores críticos en esa rama sin tener que actualizar a la versión de Bazel en la parte superior. Las funciones adicionales de tu rama de versión principal se convierten en versiones menores, y la versión más alta de la rama es la versión compatible.
Cada versión de Bazel se vincula con una lista de versiones de reglas recomendadas que funcionan juntos, y hay una retrocompatibilidad estricta dentro de cada rama.
Versiones LTS
Una versión LTS es una versión principal (como 4.0) que es compatible durante 3 años tras su lanzamiento. Se lanza una versión principal aproximadamente cada nueve meses.
El desarrollo continuo en una rama de la versión da como resultado versiones menores.
Puedes elegir fijar tu proyecto a una versión principal y actualizarlo a una versión más reciente cuando quieras. Esto te da tiempo para obtener una vista previa de los próximos cambios y adaptarte a ellos con anticipación.
Versiones progresivas
Las versiones continuas se cortan periódicamente de la rama principal de Bazel. Esta cadencia de lanzamiento implica una entrega continua de versiones preliminares del siguiente versión principal de Bazel, que están sincronizadas con el plan Blaze interno de Google y lanzamientos de versiones.
Ten en cuenta que una nueva versión continua puede contener cambios rotundos que no son compatibles con versiones anteriores.
Las versiones continuas se prueban en el paquete de pruebas de Bazel en Bazel CI y en el paquete de pruebas interno de Google. Se pueden usar marcas incompatibles para facilitar la migración a funciones nuevas, pero los comportamientos predeterminados pueden cambiar con cualquier versión incremental. (También puedes usar versiones continuas para obtener una versión preliminar de la próxima versión LTS. Por ejemplo, 5.0.0-pre.20210604.6
se basa en una versión candidata del 4/6/2021 y representa un hito hacia la versión LTS 5.0.
Puedes descargar la versión continua más reciente desde GitHub. Como alternativa, puedes configurar Bazelisk v1.9.0 (o una posterior) para usar un nombre de versión específico El identificador “progresivo”, que usa la versión progresiva más reciente. Para ver más detalles, consulta la Documentación de Bazelisk.
Actualizar versiones
- Para obtener más información sobre cómo actualizar tu versión de Bazel, consulta Cómo actualizar Bazel.
- Para obtener más información sobre cómo contribuir con actualizaciones a las nuevas versiones de Bazel, consulta Contributing to Bazel.