Control de versiones de las versiones

Bazel 4.0 y las versiones posteriores proporcionan compatibilidad con dos segmentos: las versiones con compatibilidad a largo plazo (LTS) y las progresivas. En esta página, se aborda el control de versiones en Bazel, los tipos de versiones y los beneficios de esas versiones para los usuarios y colaboradores de Bazel.

Comprende 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 compatibles con la versión anterior.
  • Una versión secundaria contiene nuevas funciones retrocompatibles.
  • Una versión de parche contiene cambios menores y correcciones de errores.

Con la versión 3.5.1 como ejemplo, una versión nueva de cada tipo generaría los siguientes números de versión:

  • Importante: 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 un lanzamiento de LTS. Puedes seguir la cadencia de actualización: actualizar de una versión de LTS a la siguiente o actualizar con cada versión de versión secundaria.

En la imagen, se muestran las versiones progresivas y LTS, así como la compatibilidad esperada para cada una.

Hoja de ruta

Figura 1: Lanzamientos progresivos y LTS.

Ramas de la versión

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 inicial. Las funciones adicionales de la rama de la versión principal se convierten en versiones secundarias, y la versión superior de la rama es la compatible.

Cada actualización de Bazel se vincula con una lista de versiones de reglas recomendadas que funcionan en conjunto y hay una estricta retrocompatibilidad dentro de cada rama.

Versiones de LTS

Una versión LTS es una versión principal (como la 4.0) que se admite durante 3 años después de su lanzamiento. Se lanza una versión principal aproximadamente cada nueve meses.

El desarrollo continuo en una rama de la versión genera versiones secundarias.

Puedes fijar el proyecto a una versión importante y actualizarlo a una versión más reciente en el momento oportuno. Esto te da tiempo para obtener una vista previa de los próximos cambios y adaptarlos a ellos con anticipación.

Lanzamientos progresivos

Las versiones progresivas se cortan periódicamente de la rama principal de Bazel. Esta cadencia de actualización implica la entrega continua de versiones preliminares de la próxima versión principal de Bazel, que se sincronizan con las versiones internas de Blaze de Google.

Ten en cuenta que una versión progresiva nueva puede contener cambios rotundos que no sean compatibles con las versiones anteriores.

Las versiones progresivas se prueban en el conjunto de pruebas de Bazel en Bazel CI y el paquete de pruebas internas de Google. Las marcas incompatibles se pueden usar para aliviar la carga de migrar a funciones nuevas, pero los comportamientos predeterminados pueden cambiar con cualquier actualización progresiva. También puedes usar los lanzamientos progresivos para obtener una vista previa de la próxima versión de LTS. Por ejemplo, 5.0.0-pre.20210604.6 se basa en una versión candidata del 4/6/2021 y representa un hito para el lanzamiento de LTS 5.0).

Puedes descargar la versión progresiva más reciente desde GitHub. Como alternativa, puedes configurar Bazelisk v1.9.0 (o una versión posterior) para usar un nombre de versión específico o el identificador "progresivo", que usa la versión progresiva más reciente. Para obtener 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 Actualiza Bazel.
  • Para obtener más información sobre cómo contribuir con actualizaciones a las nuevas versiones de Bazel, consulta Contribuye con Bazel.