Compatibilidade com versões anteriores

Informar um problema Mostrar fonte Por noite · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Esta página fornece informações sobre como lidar com a compatibilidade com versões anteriores, incluindo a migração de uma versão para outra e como se comunicar alterações incompatíveis.

O Bazel está evoluindo. Versões secundárias lançadas como parte de um As versão principal do LTS são totalmente compatíveis com versões anteriores. As mudanças entre as principais versões do LTS podem conter alterações incompatíveis que exigem algum esforço de migração. Para mais informações sobre como a cadência de lançamento do Bazel funciona, consulte Anúncio das versões com suporte de longo prazo (LTS) do Bazel.

Resumo

  1. É recomendável usar as sinalizações --incompatible_* para alterações interruptivas.
  2. Para cada flag --incompatible_*, explica um problema no GitHub a mudança de comportamento e tem como objetivo fornecer um roteiro de migração.
  3. As APIs e o comportamento protegidos por uma flag --experimental_* podem mudar a qualquer momento.
  4. Nunca execute builds de produção com sinalizações --experimental_* ou --incompatible_*.

Como seguir esta política

O que é uma funcionalidade estável?

Em geral, APIs ou comportamentos sem flags --experimental_... são considerados recursos estáveis compatíveis com o Bazel.

Isso inclui:

  • Linguagem e APIs Starlark
  • Regras empacotadas com o Bazel
  • APIs do Bazel, como as APIs Remote Execution ou o Build Event Protocol
  • Sinalizações e semânticas

Mudanças incompatíveis e roteiros de migração

Para cada mudança incompatível em uma nova versão, a equipe do Bazel tem como objetivo fornecer uma roteiro de migração que ajuda você a atualizar seu código (arquivos BUILD e .bzl, bem como qualquer uso do Bazel em scripts, uso da API Bazel e assim por diante).

As mudanças incompatíveis precisam ter uma flag --incompatible_* associada e um problema correspondente no GitHub.

Comunicação de mudanças incompatíveis

A principal fonte de informações sobre mudanças incompatíveis são problemas do GitHub marcado com "incompatível-alteração" rótulo.

Para cada alteração incompatível, o problema especifica o seguinte:

  • Nome do flag que controla a alteração incompatível
  • Descrição da funcionalidade alterada
  • Roteiro de migração

Quando uma mudança incompatível estiver pronta para migração com o Bazel em HEAD (e, portanto, também com a próxima versão gradual do Bazel), ela será marcada com o rótulo migration-ready. O problema de alteração incompatível é encerrado quando a sinalização incompatível é invertida em HEAD.