O Bazel 4.0 e versões mais recentes oferecem suporte a duas versões: suporte a longo prazo (LTS) e versões contínuas. Esta página aborda o controle de versões no Bazel, os tipos de lançamentos e os benefícios deles para usuários e colaboradores do Bazel.
Noções básicas sobre 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 mudanças e correções de bugs.
Usando a versão 3.5.1 como exemplo, um novo lançamento de cada tipo resultaria nestes números de versão:
- Grave: 4.0
- Leve: 3,6
- Patch: 3.5.2
Ciclo de lançamento do Bazel
O Bazel publica continuamente versões contínuas. Cada versão principal é uma versão LTS. Você pode escolher seguir qualquer uma das cadências de lançamento: atualizar de uma versão LTS para a próxima ou atualizar com cada lançamento de versão secundária.
A imagem mostra as versões contínuas e LTS, além do suporte esperado para cada uma delas.
Figura 1. Versões Rolling e LTS.
Ramificações de lançamento
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 principal do Bazel. Outros recursos 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 compatível.
Cada versão do Bazel é pareada com uma lista de versões de regras recomendadas que funcionam juntas, e há compatibilidade estrita com versões anteriores em cada ramificação.
Versões LTS
Uma versão LTS é uma versão principal (como 4.0) que recebe 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 seu projeto em uma versão principal e atualizar para uma versão mais recente quando quiser. Assim, você tem tempo para visualizar as próximas mudanças e se adaptar a elas com antecedência.
Lançamentos graduais
As versões contínuas são cortadas periodicamente da ramificação principal do Bazel. Essa cadência de lançamento envolve uma entrega contínua de pré-lançamentos da próxima versão principal do Bazel, que estão sincronizados com os lançamentos internos do Blaze do Google.
Uma nova versão incremental pode conter mudanças incompatíveis com as versões anteriores.
Os lançamentos contínuos são testados no conjunto de testes do Bazel na CI do Bazel e no conjunto de testes interno do Google. Flags incompatíveis podem ser usadas para facilitar a migração para novas funcionalidades, mas os comportamentos padrão podem mudar com qualquer lançamento gradual. Também é possível usar lançamentos contínuos para
visualizar a próxima versão LTS. Por exemplo, 5.0.0-pre.20210604.6
é baseado em um corte candidato em 04/06/2021 e representa um marco para o lançamento da 5.0 LTS.
Faça o download da versão mais recente em GitHub. Como alternativa, configure o Bazelisk v1.9.0 (ou mais recente) para usar um nome de versão específico ou o identificador "rolling", que usa a versão rolling mais recente. Para mais detalhes, consulte a documentação do Bazelisk.
Atualizar versões
- Para mais informações sobre como atualizar sua versão do Bazel, consulte 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.