Control de versiones de las versiones

Informar un problema Ver fuente

Bazel 4.0 y las versiones posteriores ofrecen compatibilidad con dos segmentos: compatibilidad a largo plazo (LTS) y lanzamientos progresivos. 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.

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

Si usas la versión 3.5.1 como ejemplo, una actualización nueva de cada tipo generaría los siguientes 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 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 LTS, y la compatibilidad esperada para cada una.

Hoja de ruta

Figura 1: Versiones progresivas y LTS

Ramas de versiones

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 primer lugar. Las funciones adicionales de la rama de la versión principal se convierten en versiones secundarias, 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 en conjunto, y existe 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 da como resultado versiones menores.

Puedes fijar tu proyecto a una versión principal y actualizarlo a una versión más reciente cuando lo desees. 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 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 siguiente versión principal de Bazel, que están sincronizadas con las versiones internas Blaze de Google.

Ten en cuenta que una nueva versión progresiva puede contener cambios rotundos que son incompatibles 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 siguiente versión de LTS. Por ejemplo, 5.0.0-pre.20210604.6 se basa en un corte de candidata del 4 de junio de 2021 y representa un evento importante para 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 “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 Contributing to Bazel.