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.
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
- Para mais informações sobre como atualizar a versão do Bazel, consulte Como atualizar o Bazel.
- Para ver mais informações sobre como contribuir com atualizações para novas versões do Bazel, consulte Como contribuir com o Bazel.