Estratégia de configuração do Bazel em 2021

Informar um problema Ver origem

Última verificação: 25/01/2021 (histórico de atualizações)

Ponto de contato:gregestren

Discussão: roteiro de configuração: discussão

Roteiros anteriores

  • 2020 (c/ revisão do fim do ano)
  • 2019 (c/ revisão do fim do ano)
  • 2018

Meta

O $ bazel build //:all simplesmente funciona em qualquer projeto e plataforma.

  • Os builds não exigem flags de linha de comando.
  • Cada destino usa automaticamente as configurações corretas (como android_binary usa o NDK certo).
  • É fácil criar para várias plataformas.
  • Os builds têm bom escalonamento, principalmente o tamanho do gráfico e o armazenamento em cache de ações.

Também oferecemos suporte a cquery, Starlark configuration e select().

Roteiro

As datas são aproximadas com base em nosso melhor entendimento da complexidade do problema e da disponibilidade do desenvolvedor. Em 2021, pretendemos concentrar mais esforços em menos projetos de uma só vez. Só vamos definir ETAs para trabalhos com prioridade ativa no interesse de expectativas precisas.

Plataformas

3o trimestre de 2021As regras do Android usam a nova API platforms EM ANDAMENTO (#11749)

  • Essa é nossa principal prioridade para o início de 2021.

3o trimestre de 2021Os builds oferecem suporte a várias plataformas de execução IN PROGRESS (#11748)

pausadasas regras C++ usam a nova API Platformsfall IN PROGRESS (#6516)

  • Esse recurso está bloqueado nas plataformas Android. Podemos ativar isso com uma simples virada de bandeira.

pausedDestinos multiplataforma NÃO INICIADOS

  • Permitir que os destinos declarem que precisam criar para várias plataformas
  • Listado aqui devido a uma solicitação do usuário

pausedDescontinuação e remoção de --cpu e sinalizações relacionadas NÃO INICIADO

  • Essa é uma meta ambiciosa que vem da migração de todas as regras para as plataformas.

Eficiência

2021Um modo experimental do Bazel armazena em cache compilação Java multiplataforma IN PROGRESS (#6526, link em inglês)

  • Melhora a velocidade de build em várias plataformas
  • Subalocada, o que leva a um progresso lento