Roteiro do Bazel

Informar um problema Acessar a origem

Informações gerais

Feliz ano novo para nossa comunidade do Bazel. Com o ano novo, planejamos divulgar detalhes dos nossos planos para 2023. No ano passado, publicamos nosso planejamento para 2022 com os planos do Bazel 6.0 para o Bazel 6.0. Esperamos que eles atendam às suas necessidades de ferramentas de build. Queremos compartilhar nossa atualização de 2023 à medida que o projeto do Bazel continua a evoluir em resposta às suas necessidades.

Com essas mudanças, queremos manter nossa comunidade de código aberto informada e incluída. Este roteiro descreve as iniciativas e previsões atuais para o futuro do desenvolvimento no Bazel. Assim você tem visibilidade das prioridades e projetos em andamento.

Versão 7.0 do Bazel

Planejamos trazer o suporte de longo prazo (LTS) do Bazel 7.0 para você no final de 2023. Com o Bazel 7.0, nosso objetivo é entregar muitos dos itens em andamento e continuar trabalhando nas melhorias de recursos que os usuários pediram.

Melhor compartilhamento de cache multiplataforma

Permite que artefatos armazenados em cache sejam compartilhados entre diferentes plataformas de build locais (Mac) e remotas (Linux) de build, principalmente para desenvolvimento em Java/Kotlin e Android, resultando em melhor desempenho e uso eficiente do cache.

Build de app Android com o Bazel

O Manifest & Resource Merger foi atualizado para a versão 30.1.3 para que os desenvolvedores de apps Android possam usar recursos de combinação de manifesto mais recentes, como tools:node="merge".

Melhorias na execução remota

O Bazel 7.0 é compatível com a execução assíncrona, acelerando a execução remota por meio do aumento do paralelismo com a sinalização "--jobs".

Bzlmod: sistema de gerenciamento de dependências externas

O Bzlmod resolve automaticamente dependências transitivas, permitindo que os projetos sejam escalonados sem perder rapidez e eficiência em recursos. O Bazel 7.0 contém várias melhorias para a funcionalidade de gerenciamento de dependências externas do Bazel, incluindo:

  • Bzlmod ativado por padrão para gerenciamento de dependências externas no Bazel
  • Bloquear o suporte a arquivos: ativa a compilação hermética com Bzlmod.
  • Suporte ao modo off-line/fornecedor: permite que os usuários executem builds com dependências já transferidas por download.
  • Suporte completo ao cache do repositório. O armazenamento em cache não só faz o download dos artefatos, mas também do conteúdo final do repositório
  • O Bazel Central Registry inclui contribuições regulares da comunidade e adoção de regras e projetos importantes do Bazel.

Criar métricas de análise

O Bazel 7.0 fornece métricas de tempo da fase de análise, permitindo que os desenvolvedores otimizem o próprio desempenho de build.

Criar sem a ativação do Bytes por padrão

Builds without the Bytes otimiza o desempenho, evitando o download de artefatos intermediários e impedindo que os builds criem gargalos na largura de banda da rede. Os recursos adicionados incluem:

Aumente a produtividade com a Skymeld

O Bazel 7.0 introduz o Skymeld, um modo de avaliação que reduz o tempo decorrido dos builds de vários destinos. O Skymeld elimina a barreira entre as fases de análise e execução para melhorar a velocidade de criação, especialmente para builds com vários destinos de nível superior. No entanto, para builds de destino único, não é esperada nenhuma diferença significativa.

Ecossistema e ferramentas do Bazel

Build de app Android com o Bazel

  • Migração das regras nativas do Android para o Starlark: no Bazel 7.0, as regras do Android migram para o Starlark a fim de separar o desenvolvimento do próprio Bazel e permitir melhor as contribuições da comunidade. Além disso, tornamos essas regras independentes do binário principal do Bazel, o que permite lançar com mais frequência.
  • Migração das regras do Android para o Starlark
  • Suporte ao R8: permite que os desenvolvedores de apps Android usem as otimizações atualizadas do R8.
  • Instalação para dispositivos móveis: permite que os desenvolvedores de apps Android desenvolvam, testem e implantem rapidamente alterações de apps Android com uma versão atualizada da Instalação para dispositivos móveis.

Ferramentas de geração de dados (SBOMs) da Lista de materiais de software e conformidade de licença OSS

Com o Bazel, os desenvolvedores podem gerar dados para ajudar a produzir SBOMs. Os dados são gerados em formato de texto ou JSON e podem ser facilmente formatados para atender às especificações SPDX ou CycloneDX. Além disso, o processo fornece regras para declarar as licenças em que os módulos do Bazel são disponibilizados e ferramentas para criar processos com base nessas declarações. Veja a implementação derules_license em andamento no GitHub.

Builds assinadas

O Bazel fornece binários confiáveis para Windows e Mac assinados com chaves do Google. Esse recurso permite que desenvolvedores/dev-ops multiplataforma identifiquem a origem dos binários do Bazel e protejam os sistemas contra binários potencialmente maliciosos não verificados.

Migração de regras de Java, C++ e Python para o Starlark

Migração completa dos conjuntos de regras Java, C++ e Python para o Starlark. Com esse esforço, os usuários do Bazel podem bifurcar apenas conjuntos de regras, e não a base de código binária do Bazel.

  • Atualize e personalize as regras conforme necessário
  • Atualizar regras independentemente do Bazel

Compatibilidade com IntelliJ IDEA do Bazel-JetBrains*

Atualizações incrementais do plug-in IntelliJ para oferecer suporte à versão mais recente do plug-in JetBrains.

O resumo deste roteiro visa e não deve ser considerado como garantia. As prioridades estão sujeitas a mudanças em resposta ao feedback dos desenvolvedores e clientes ou a novas oportunidades de mercado.

Para receber notificações sobre novos recursos, incluindo atualizações do roteiro, participe da comunidade do Grupo do Google.

*Direitos autorais © 2022 JetBrains s.r.o. JetBrains e IntelliJ são marcas registradas da JetBrains s.r.o