Control de versiones de las versiones

Bazel 4.0 y versiones posteriores proporcionan compatibilidad con dos segmentos de lanzamiento: lanzamientos de asistencia a largo plazo (LTS) y lanzamientos progresivos. En esta página, se aborda el control de versiones en Bazel, los tipos de lanzamientos y los beneficios de esos lanzamientos 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.

  • Un lanzamiento principal contiene funciones que no son compatibles con versiones anteriores.
  • Un lanzamiento secundario contiene funciones nuevas compatibles con versiones anteriores.
  • Un lanzamiento de parche contiene cambios menores y correcciones de errores.

Si se usa la versión 3.5.1 como ejemplo, un nuevo lanzamiento de cada tipo generaría los siguientes números de versión:

  • Principal: 4.0
  • Secundario: 3.6
  • Parche: 3.5.2

Ciclo de lanzamiento de Bazel

Bazel publica continuamente lanzamientos progresivos. Cada versión principal es un lanzamiento de LTS. Puedes elegir seguir cualquier cadencia de lanzamiento: actualizar de un lanzamiento de LTS al siguiente o actualizar con cada lanzamiento de versión secundaria.

En la imagen, se muestran los lanzamientos progresivos y de LTS, y la compatibilidad esperada para cada uno.

Hoja de ruta

Figura 1: Lanzamientos progresivos y de LTS

Ramificaciones de lanzamiento

Cada versión principal se convierte en una rama de desarrollo independiente en el lanzamiento. Puedes recibir correcciones para errores críticos en esa rama sin tener que actualizar a la versión de Bazel en el encabezado. Las funciones adicionales en 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 lanzamiento de Bazel se combina con una lista de versiones de reglas recomendadas que funcionan en conjunto, y hay una estricta compatibilidad con versiones anteriores dentro de cada rama.

Lanzamientos de LTS

Un lanzamiento de LTS es una versión principal (como 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 lanzamiento genera versiones secundarias.

Puedes elegir fijar tu proyecto a un lanzamiento principal y actualizar 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.

Lanzamientos progresivos

Los lanzamientos progresivos se cortan periódicamente de la rama principal de Bazel. Esta cadencia de lanzamiento implica una entrega continua de lanzamientos de versión preliminar de la próxima versión principal de Bazel, que están sincronizados con los lanzamientos internos de Blaze de Google.

Ten en cuenta que un nuevo lanzamiento progresivo puede contener cambios rotundos que no son compatibles con lanzamientos anteriores.

Los lanzamientos progresivos se prueban en el conjunto de pruebas de Bazel en Bazel CI y en el conjunto de pruebas interno de Google. Se pueden usar marcas incompatibles para aliviar la carga de migrar a funciones nuevas, pero los comportamientos predeterminados pueden cambiar con cualquier lanzamiento progresivo. (También puedes usar 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 un corte candidato el 2021-06-04 y representa un hito hacia el lanzamiento de LTS 5.0).

Puedes descargar el lanzamiento progresivo más reciente de GitHub. Como alternativa, puedes configurar Bazelisk v1.9.0 (o versiones posteriores) para usar un nombre de versión específico o el identificador “rolling”, que usa el lanzamiento progresivo 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 los nuevos lanzamientos de Bazel, consulta Cómo contribuir a Bazel.