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
- É recomendável usar as sinalizações
--incompatible_*
para alterações interruptivas. - Para cada flag
--incompatible_*
, explica um problema no GitHub a mudança de comportamento e tem como objetivo fornecer um roteiro de migração. - As APIs e o comportamento protegidos por uma flag
--experimental_*
podem mudar a qualquer momento. - Nunca execute builds de produção com sinalizações
--experimental_*
ou--incompatible_*
.
Como seguir esta política
- Para usuários do Bazel: como atualizar o Bazel
- Para colaboradores: práticas recomendadas para mudanças incompatíveis
- Para os administradores da versão: como atualizar os rótulos de problemas e a versão
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.