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

Ú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 de fim de ano)
  • 2019 (c/ revisão de fim de 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 correto).
  • É fácil criar para várias plataformas.
  • Os builds são dimensionáveis, especialmente o tamanho do gráfico de texto e o armazenamento em cache de ações.

Também há suporte para cquery, Starlark configuration e select().

Roteiro

As datas são aproximadas com base no 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 priorizados ativamente, de acordo com expectativas precisas.

Plataformas

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

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

3o trimestre de 2021Os builds têm suporte a várias plataformas de execução EM PROGRESSO (#11748)

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

  • Esse recurso está bloqueado nas plataformas Android. Para isso, basta inverter a sinalização.

pausedDestinos 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

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

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

Eficiência

2021Um modo experimental Bazel armazena em cache a compilação Java multiplataforma IN PROGRESS (#6526).

  • Melhora a velocidade de build multiplataforma
  • Falta de alocação, então o progresso está lento