Control de versiones de las versiones

Bazel 4.0 y las versiones posteriores son compatibles con dos segmentos: las versiones con asistencia a largo plazo (LTS) y las versiones progresivas. En esta página, se describe 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 retrocompatibles 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.

Si se usa 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 una versión 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 secundaria.

En la imagen, se muestran las versiones progresivas y de 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 anterior. Las funciones adicionales de la rama de versión principal se convierten en versiones secundarias, y la versión más alta de la rama es la compatible.

Cada versió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 4.0) que es compatible 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 tu proyecto a una actualización importante y actualizarlo a una versión más reciente en tu propio tiempo. Esto te da tiempo para obtener una vista previa de los próximos cambios y adaptarte a ellos con anticipación.

Lanzamientos progresivos

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

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

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

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 "continuo", que usa la versión progresiva más reciente. Para obtener más información, consulta la documentación de Bazelisk.

Actualizar versiones

  • Para obtener más información sobre la actualización de tu versión de Bazel, consulta Actualiza Bazel.
  • Para obtener más información sobre cómo contribuir con actualizaciones a los nuevos lanzamientos de Bazel, consulta Cómo colaborar con Bazel.