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

Informar um problema Ver código-fonte Nightly · 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

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.
  • 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

3o trimestre de 2021As regras do Android usam a nova API platforms EM ANDAMENTO (#11749, link em inglês)

  • 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)

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

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

pausedDestinos multiplataforma NÃO INICIADOS

  • 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 compilação Java multiplataforma IN PROGRESS (#6526, link em inglês)

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