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: Configurability roadmap: discussion

Roteiros anteriores

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

Objetivo

$ bazel build //:all funciona para qualquer projeto e 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.
  • Os builds são bem dimensionados, 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 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, com o objetivo de ter expectativas 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)

PausadoAs regras de C++ usam a nova API platformsfall EM ANDAMENTO (#6516)

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

PausadoDestinos multiplataforma NÃO INICIADO

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

PausadoDescontinuar e remover --cpu e flags relacionadas NÃO INICIADO

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

Eficiência

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

  • Melhora a velocidade de build multiplataforma
  • Subalocado, então o progresso é lento