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

Reportar um problema Ver código-fonte Nightly · 8.0 . 7.4 . 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 configuráveis: discussão

Roteiros anteriores

  • 2020 (com revisão de fim de ano)
  • 2019 (com revisão de fim de ano)
  • 2018

Meta

$ bazel build //:all simplesmente funciona, para qualquer projeto e qualquer plataforma.

  • Os builds não exigem flags de linha de comando.
  • Cada destino usa automaticamente as configurações corretas (por exemplo, android_binary usa o NDK certo).
  • É fácil criar para várias plataformas.
  • O build é dimensionado bem, principalmente em relação ao tamanho do gráfico e ao armazenamento em cache de ações.

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

Roteiro

As datas são aproximadas com base no nosso entendimento da complexidade do problema e na disponibilidade dos desenvolvedores. Em 2021, pretendemos concentrar mais esforços em menos projetos de uma vez. Só vamos definir ETAs para trabalhos priorizados ativamente para que as expectativas sejam precisas.

Plataformas

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

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

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

pausado: as regras de C++ usam a nova API platformsfall EM ANDAMENTO (#6516).

  • Isso é bloqueado em plataformas Android. Podemos ativar isso com uma simples inversão de flag.

pausadoalvos multiplataforma NÃO INICIADO

  • Permitir que as segmentações declarem que precisam ser criadas para várias plataformas
  • Listado aqui devido a uma solicitação do usuário

Em pausaDescontinuar e remover --cpu e flags relacionadas NÃO INICIADO

  • Essa é uma meta ambiciosa que não é alcançada com a migração de todas as regras para as plataformas.

Eficiência

2021Um modo experimental do Bazel armazena em cache a compilação Java em várias plataformas EM ANDAMENTO (#6526)

  • Melhora a velocidade de build em várias plataformas
  • A alocação é insuficiente, então o progresso é lento