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