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ão e os benefícios delas 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 as versões anteriores.
  • 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

Ele publica continuamente versões contínuas. Cada versão principal é uma versão LTS. É possível seguir a cadência de lançamento: atualizar de uma versão LST para a próxima ou atualizar 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 contínuas e LTS.

Ramificações de versão

Cada versão principal se torna uma ramificação de desenvolvimento separada no lançamento. Você pode receber correções para bugs críticos nessa ramificação sem precisar atualizar para a versão principal 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 e há uma rigorosa compatibilidade com versões anteriores dentro de cada ramificação.

Versões de LTS

Uma versão LTS é uma versão principal (como a 4.0) que tem 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 o 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 periodicamente cortadas da ramificação principal do Bazel. Essa cadência de lançamento envolve uma entrega contínua de versões de pré-lançamento da próxima versão principal do Bazel, que estão em sincronia 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 internos do Google. Sinalizações incompatíveis podem ser usadas para aliviar o fardo de migrar para a nova funcionalidade, mas o comportamento padrão pode mudar com qualquer versão contínua. Também é possível usar versões contínuas para visualizar a próxima versão do LTS. Por exemplo, 5.0.0-pre.20210604.6 é baseado em uma versão candidata em 04/06/2021 e representa um marco em relação à versão 5.0 LTS.

É possível fazer o download da versão contínua mais recente no GitHub (em inglês). Como alternativa, você pode 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 contínua mais recente. Para mais detalhes, consulte a documentação do Bazelisk (em inglês).

Atualizar versões