Visão geral
O projeto do Bazel está em constante evolução para atender às suas necessidades, desenvolvendo recursos e oferecendo suporte, além de manter, refatorar e melhorar a performance do produto principal.
Com essas mudanças, queremos manter nossa comunidade de código aberto informada e incluída. Este roadmap descreve as iniciativas atuais e as previsões para o futuro do desenvolvimento do Bazel, oferecendo visibilidade das prioridades atuais e dos projetos em andamento.
Este roadmap mostra os destinos e não deve ser considerado uma garantia. As prioridades estão sujeitas a mudanças em resposta ao feedback de desenvolvedores e clientes ou a novas oportunidades de mercado.
Para receber notificações sobre novos recursos, incluindo atualizações deste roadmap, participe da comunidade do Grupo do Google.
Quarto trimestre: lançamento do Bazel 6.0
O quarto trimestre traz o Bazel 6.0, a nova versão de suporte de longo prazo (LTS, na sigla em inglês). O Bazel 6.0 planeja incluir novos recursos poderosos e solicitados pela comunidade para gerenciar dependências, desenvolver com o Android e muito mais.
Bzlmod: sistema de gerenciamento de dependências externas
Bzlmod resolve automaticamente as dependências transitivas, permitindo que os projetos sejam escalonados, mantendo a velocidade e a eficiência de recursos. Introduzido experimentalmente no Bazel 5.0, o Bzlmod estará disponível para todos e oferecerá uma solução para o problema de dependência de diamante.
- O Bzlmod passa de "experimental" para "disponível para todos"
- Inclui suporte para
rules\_jvm\_external, permitindo que os usuários façam o download de dependências do Maven para projetos Java - O Guia de migração do Bzlmod oferece ferramentas, scripts e documentação para equipes que querem adotar o Bzlmod
- O repositório central do Bazel hospeda regras
BUILDprincipais do Bazel (rules\_jvm\_external,rules\_go,rules\_python,rules\_nodejs) e dependências importantes necessárias para o Bzlmod
Para saber mais sobre esse desenvolvimento, assista à atualização da comunidade do Bzlmod ou leia o documento de design original.
Build de apps Android com o Bazel
O Bazel 6.0 vai incluir ferramentas aprimoradas e contribuições de recursos da comunidade mescladas. Antecipando mais adoção e uma base de código crescente, a equipe do Bazel vai priorizar a integração de ferramentas de build do Android com as regras do Bazel Android.
- Atualiza o D8 para a versão 3.3.28 e o define como o dexer padrão.
- Mescla as principais contribuições de recursos da comunidade adicionadas na versão 5.X, incluindo suporte para:
- Workers persistentes com o D8
- Simplificação da leitura com o D8
- Mesclagem de tags "uses-permissions" em manifestos do Android
- Workers multiplexados no processamento de recursos do Android
Toolchains opcionais
Nossa pesquisa de satisfação do desenvolvedor mostrou que os autores de regras querem suporte para mais desenvolvimento de toolchains. O Bazel 6.0 vai permitir que os autores escrevam regras usando uma toolchain opcional de alta performance quando disponível com uma implementação de fallback para outras plataformas.
Suporte do Bazel-JetBrains* para o IntelliJ IDEA
A JetBrains fez uma parceria com o Bazel para manter em conjunto o plug-in do Bazel IntelliJ IDEA, apoiando o objetivo de aumentar a administração da comunidade e abrir capacidade para solicitações e desenvolvimento de recursos.
- O plug-in do IntelliJ v. 2022.2 oferece suporte à versão mais recente do plug-in da JetBrains
- Aumenta a compatibilidade com o desenvolvimento remoto
- Promove o desenvolvimento orientado pela comunidade para recursos em andamento, como suporte ao Scala
Para saber mais sobre esse desenvolvimento, leia o anúncio do blog do Bazel-JetBrains.
Desenvolvimento futuro
No futuro, a equipe do Bazel começou o desenvolvimento ou prevê priorizar os seguintes recursos em 2023 e depois.
Melhorar as regras de build do Android do Bazel
Continue investindo na experiência de desenvolvimento de apps Android, com foco no fluxo de trabalho de build, teste e implantação.
- Migração e suporte para o R8
- Atualizações das regras do Android, incluindo a tradução para a linguagem Starlark
- Suporte para o Android App Bundle
- Suporte para versões recentes do NDK
- Cobertura de código de teste
Ferramentas de conformidade de licença do OSS
Os desenvolvedores solicitaram um verificador de conformidade de licença robusto para garantir a disponibilidade e a segurança dos pacotes incluídos. Esse projeto oferece um conjunto de regras e ferramentas para ajudar a identificar e mitigar riscos de conformidade e licença associados a um determinado componente de software. Os recursos de destino incluem:
- A capacidade de auditar os pacotes usados por um determinado destino
- A capacidade de criar verificações de conformidade de licença específicas da organização.
Consulte a implementação rules_license em andamento no GitHub.
Bzlmod: sistema de gerenciamento de dependências externas
No lançamento, o Bzlmod melhora a escalonabilidade e a confiabilidade das dependências transitivas. Nos próximos três anos, o Bzlmod pretende substituir o WORKSPACE como o subsistema de gerenciamento de dependências do espaço de trabalho padrão do Bazel. Os recursos segmentados incluem:
- Suporte para builds herméticos
- O modo de fornecedor/off-line fixa regras de referências versionadas a uma cópia local
- O Registro Central do Bazel inclui contribuição e adoção regulares da comunidade de regras e projetos principais do Bazel
- O Bzlmod se torna a ferramenta padrão para criar projetos do Bazel
Builds assinados
O Bazel vai fornecer binários confiáveis para Windows e Mac assinados com chaves do Google. Esse recurso permite que desenvolvedores/DevOps multiplataforma identifiquem a origem dos binários do Bazel e protejam seus sistemas contra binários maliciosos e não verificados.
API de plataformas padronizadas
A nova API de plataformas vai padronizar a configuração de arquitetura para builds multiplataforma e multilíngue. Com esse recurso, os desenvolvedores podem reduzir erros e complexidade dispendiosos de tempo de desenvolvimento em builds grandes.
Métricas de análise de build
A telemetria do Bazel vai fornecer métricas de tempo da fase de análise, permitindo que os desenvolvedores otimizem a própria performance de build.
Execução remota com "Builds sem os bytes"
Os builds sem os bytes vão otimizar a performance, permitindo que o Bazel faça o download apenas dos artefatos necessários, evitando que os builds sejam gargalos na largura de banda da rede. Os recursos adicionados para builds remotos incluem:
- Use o download assíncrono para permitir que ações locais e remotas sejam iniciadas assim que fizerem o download das saídas dependentes
- Adicionar suporte a links simbólicos
- Recupere saídas intermediárias de ações remotas quando um build for concluído
*Copyright © 2022 JetBrains s.r.o. JetBrains e IntelliJ são marcas registradas da JetBrains s.r.o.