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

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

Ú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 cquery, Starlark configuration e select().

Roteiro

As datas são aproximadas com base em nossa melhor compreensão da complexidade do problema e disponibilidade do desenvolvedor. Em 2021, pretendemos concentrar mais esforços em menos projetos de uma só vez. Só definiremos HECs para trabalhos com prioridade ativa na interesse de expectativas precisas.

Plataformas

3o trimestre de 2021As regras do Android usam as novas plataformas API EM ANDAMENTO (#11749)

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

3o trimestre de 2021Os builds oferecem suporte a execução múltipla plataformas EM ANDAMENTO (#11748)

pausadasas regras C++ usam a nova API Platformsfall EM ANDAMENTO (#6516)

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

pausadaMetas multiplataforma NÃO INICIADO

  • 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 EM ANDAMENTO (#6526)

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