Controle de versão de lançamento

O Bazel 4.0 e versões mais recentes oferecem suporte a 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 os 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ão 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 versões graduais continuamente. Cada versão principal é uma versão LTS. É possível seguir a cadência de lançamento: atualizando de uma versão do LTS para a próxima ou atualizando a cada versão secundária.

A imagem mostra versões contínuas e LTS, e o suporte esperado para cada uma.

Roteiro

Figura 1. Versões graduais e LTS.

Liberar ramificações

Cada versão principal se torna uma ramificação de desenvolvimento separada no lançamento. Você pode receber correções de bugs críticos nessa ramificação sem precisar atualizar para a versão do Bazel no início. 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 é compatível.

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

Lançamentos do LTS

Uma versão do 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.

É possível fixar um projeto em uma versão principal e atualizar para uma mais recente quando você quiser. Assim, você tem tempo de visualizar as próximas mudanças e se adaptar a elas com antecedência.

Lançamentos contínuos

As versões graduais são cortadas periodicamente 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, que estão sincronizadas com as versões internas do Blaze do Google.

Uma nova versão gradual pode conter alterações interruptivas incompatíveis com versões anteriores.

As versões graduais são testadas no pacote de testes do Bazel na CI dele e no pacote de testes interno do Google. Sinalizações incompatíveis podem ser usadas para aliviar o fardo de migrar para novas funcionalidades, 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 um candidato em 04/06/2021 e representa um marco para a versão 5.0 LTS.

É 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 "rotativo", que usa a versão gradual mais recente. Para mais detalhes, consulte a documentação do Bazel.

Atualizar versões