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 de suporte a longo prazo (LTS) e versões contínuas. Esta página aborda o controle de versões no Bazel, os tipos de versões 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 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, uma nova versão de cada tipo resultaria em estes números de versão:

  • Principal: 4.0
  • Secundária: 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 release. É possível seguir a cadência de lançamento, atualizando de uma versão LTS para a próxima ou atualizando com cada versão secundária.

A imagem mostra as versões contínuas e LTS, além do suporte esperado para cada uma delas.

Roteiro

Figura 1. Versões contínuas e LTS.

Ramificações de lançamento

Cada versão principal se torna uma ramificação de desenvolvimento separada no lançamento. É possível receber correções de bugs críticos nessa ramificação sem precisar atualizar para a versão principal do Bazel. 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á compatibilidade com versões anteriores estrita em cada ramificação.

Versões 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.

É possível fixar seu projeto em uma versão principal e atualizar para uma versão mais recente quando quiser. Isso dá tempo para visualizar as próximas mudanças e se adaptar a elas com antecedência.

Versões contínuas

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 versões de prévia 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 contínua pode conter mudanças interruptivas que são incompatíveis com versões anteriores.

As versões contínuas são testadas no conjunto de testes do Bazel no Bazel CI 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 versão contínua. Também é possível usar versões contínuas para visualizar a próxima versão LTS. Por exemplo, 5.0.0-pre.20210604.6 é baseada em um corte candidato em 2021-06-04 e representa um marco para a versão LTS 5.0 release.)

É possível fazer o download da versão contínua mais recente no 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 contínua mais recente. Para mais detalhes, consulte a documentação do Bazelisk.

Atualizar versões

  • Para mais informações sobre como atualizar a 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 Contribuir com o Bazel.