Controle de versão de lançamento

O Bazel 4.0 e versões mais recentes oferecem suporte para duas faixas de lançamento: versões com suporte de longo prazo (LTS) e versões contínuas. Nesta página, abordamos o controle de versões no Bazel, os tipos de versões e os benefícios dessas versões para usuários e colaboradores do Bazel.

Noções básicas sobre o controle de versões no Bazel

O Bazel usa um esquema de controle de versões semântico major.minor.patch.

  • Uma versão principal contém recursos que não são compatíveis com a versão anterior.
  • Uma versão secundária contém novos recursos compatíveis com versões anteriores.
  • Uma versão de patch contém pequenas alterações e correções de bugs.

Usando a versão 3.5.1 como exemplo, uma nova versão de cada tipo resultaria nestes números de versão:

  • Maior: 4,0
  • Menor: 3,6
  • Patch: 3.5.2

Ciclo de lançamento do Bazel

O Bazel publica continuamente versões graduais. Toda versão principal é uma versão LTS. É possível seguir qualquer cadência de lançamento: atualizando de uma versão de LTI para a próxima ou atualizando a cada versão secundária.

A imagem mostra as versões graduais e de LTS, e o suporte esperado para cada uma.

Roteiro

Figura 1. Versões graduais e LTS.

Ramificações de versão

Cada versão principal se torna um branch de desenvolvimento separado no lançamento. Você pode receber correções para bugs críticos nessa ramificação sem precisar atualizar para a versão inicial do Bazel. Os recursos adicionais na ramificação da versão principal se tornam versões secundárias e a versão mais recente na ramificação é a versão com suporte.

Cada versão do Bazel é pareada com uma lista de versões de regras recomendadas que funcionam juntas. Há uma rigorosa compatibilidade com versões anteriores em cada ramificação.

Versões de LTS

Uma versão LTS é uma versão principal (como a 4.0) com suporte por três anos após o lançamento. Uma versão principal é lançada aproximadamente a cada nove meses.

O desenvolvimento contínuo em uma ramificação de lançamento resulta em versões secundárias.

Você pode fixar o projeto em uma versão principal e atualizar para uma mais recente quando quiser. Assim, você tem tempo para visualizar as próximas alterações e adaptá-las com antecedência.

Lançamentos contínuos

As versões graduais são periodicamente cortadas da ramificação principal do Bazel. Essa cadência de lançamento envolve a entrega contínua de versões de pré-lançamento da próxima versão principal do Bazel em sincronia com as versões internas do Blaze do Google.

Observe que uma nova versão gradual pode conter alterações interruptivas e incompatíveis com versões anteriores.

As versões graduais são testadas no conjunto de testes do Bazel na CI do Bazel e no pacote de testes internos do Google. Sinalizações incompatíveis podem ser usadas para aliviar o fardo de migrar para uma nova funcionalidade, mas os comportamentos padrão podem mudar com qualquer versão gradual. Também é possível usar versões graduais para visualizar a próxima versão do LTS. Por exemplo, 5.0.0-pre.20210604.6 é baseado em uma versão candidata a 04/06/2021 e representa um marco para a versão LTS 5.0.

É possível fazer o download da versão gradual mais recente no GitHub. Como alternativa, é possível configurar o Bazelisk v1.9.0 (ou posterior) para usar um nome de versão específico ou o identificador "contínuo", que usa a versão contínua mais recente. Para mais detalhes, consulte a documentação do Bazelisk (em inglês).

Atualizar versões