Tecnologia além do código.
Régys Borges da Silveira

Boss4D 1.7.0: componentes, múltiplas versões do Delphi e uma cadeia de entrega verificável

Neste artigo 11 tópicos

Gerenciar dependências é apenas uma parte do trabalho em projetos Delphi. Quando o projeto utiliza componentes visuais, pacotes runtime e design-time, diferentes versões da IDE e pipelines de integração contínua, instalar uma biblioteca deixa de ser uma simples operação de download.

A versão 1.7.0 do Boss4D foi construída para enfrentar esse cenário completo. Ela amplia o gerenciador de dependências para cuidar também da compilação, instalação e recuperação de componentes, sem abandonar a compatibilidade com projetos BOSS nem o suporte ao Lazarus.

O resultado é uma versão especialmente importante para equipes que precisam reproduzir ambientes Delphi, automatizar builds e manter evidências sobre os pacotes utilizados.

Da dependência ao componente instalado

Um componente Delphi normalmente possui mais de uma etapa:

  1. obter o código-fonte e suas dependências;
  2. compilar o pacote runtime;
  3. compilar o pacote design-time;
  4. copiar BPLs, DCPs, DCUs e outros artefatos;
  5. registrar o pacote correto na IDE;
  6. conseguir desfazer tudo com segurança caso algo falhe.

O Boss4D 1.7.0 passa a representar esse ciclo de forma declarativa. O arquivo boss.json pode descrever projetos, dependências entre pacotes, compiladores, plataformas e configurações.

Um mesmo componente pode, por exemplo, ser preparado para Delphi 10, 11, 12 e 13, em Win32 ou Win64, sem que cada combinação dependa de um script artesanal.

{
  "build": {
    "targets": [
      {
        "name": "runtime",
        "project": "src/MyComponentRuntime.dproj",
        "kind": "runtime"
      },
      {
        "name": "design",
        "project": "design/MyComponentDesign.dproj",
        "kind": "design",
        "dependsOn": ["runtime"]
      }
    ]
  }
}

A compatibilidade com manifests anteriores foi preservada. Projetos existentes podem continuar usando a estrutura tradicional e adotar a matriz de build gradualmente.

Build incremental e paralelo

Compilar todas as combinações em toda execução seria correto, mas pouco eficiente. Por isso, a versão 1.7.0 introduz fingerprints incrementais para identificar quando uma combinação realmente precisa ser reconstruída.

O Boss4D considera o projeto, suas dependências, o compilador, a plataforma, a configuração e os artefatos esperados. Se o estado continua válido, o target pode ser reutilizado. Quando há dependências independentes, o agendamento permite execução paralela com limite explícito de jobs.

boss4d build --compiler d13 --platform Win64 --configuration Release --jobs 4

Também é possível solicitar um rebuild completo:

boss4d build --full

Ou visualizar antecipadamente o plano:

boss4d build --explain

Os artefatos são separados por compilador, plataforma e configuração. Isso evita colisões entre DCUs e BPLs produzidos por toolchains diferentes, um problema recorrente em automações Delphi.

Instalação transacional na IDE

Registrar um pacote na IDE é uma operação sensível. Uma BPL ausente, um caminho incorreto ou uma alteração parcial no Registry pode impedir a inicialização normal do RAD Studio.

Na versão 1.7.0, a instalação passou a utilizar inventário, snapshots e transações. Antes de modificar o ambiente, o Boss4D registra o estado anterior. Se uma etapa falha, as alterações podem ser revertidas.

Além da instalação, estão disponíveis operações para:

  • remover exatamente os registros pertencentes ao componente;
  • detectar diferenças entre o inventário e o Registry;
  • reparar arquivos ou registros ausentes;
  • restaurar snapshots;
  • desfazer instalações e remoções concluídas;
  • tratar conflitos com políticas fail, warn, adopt ou replace.

O comando doctor também ganhou diagnósticos relacionados ao projeto, à matriz de build, aos compiladores, aos paths, às colisões de saída e ao estado da IDE.

boss4d doctor --project .
boss4d ide repair

Perfis isolados da IDE

Nem todo projeto deve compartilhar exatamente a mesma configuração do RAD Studio. Uma equipe pode precisar manter um ambiente estável para manutenção, outro para desenvolvimento e um terceiro para validar uma migração.

Os perfis de IDE do Boss4D isolam inventários, componentes e branches do Registry. Um projeto pode ser associado a um perfil específico, reduzindo alterações globais e tornando o ambiente mais previsível.

Snapshots protegidos por SHA-256 permitem comparar estados, identificar drift e restaurar uma configuração conhecida. O mesmo modelo atende tanto a CLI quanto a interface gráfica.

Uma GUI voltada para operações reais

A interface gráfica deixou de ser apenas uma forma visual de executar comandos básicos. Na 1.7.0, ela passou a oferecer fluxos completos para:

  • pesquisar pacotes e consultar versões;
  • examinar licença, variantes e evidências;
  • escolher compilador e plataforma;
  • visualizar o plano antes da instalação;
  • instalar, reparar ou remover componentes;
  • acompanhar progresso e tempo decorrido;
  • cancelar uma operação cooperativamente;
  • tentar novamente preservando as escolhas anteriores;
  • consultar saúde do ambiente;
  • comparar estados antes e depois;
  • restaurar ou desfazer uma operação.

Um detalhe importante é que a GUI apresenta o comando equivalente da CLI. Isso ajuda o usuário a começar visualmente e, depois, levar o mesmo processo para scripts ou pipelines.

Registry público com revisão

O Boss4D 1.7.0 também avançou na descoberta e publicação de pacotes. O Registry v2 utiliza metadados versionados em Git, composição de índices, entradas esparsas, versões imutáveis, revogação e evidências de confiança.

O catálogo público pode ser consultado em:

Acessar o Registry público do Boss4D

A comunidade pode propor novos pacotes, mas uma submissão não é publicada automaticamente. Ela passa por validações de identidade, escopo do repositório, assinatura, proveniência, imutabilidade e aprovação explícita dos mantenedores.

Na conclusão da 1.7.0, o catálogo possuía 55 pacotes: 16 entradas verificadas no schema v2 e 39 entradas legadas mantidas para descoberta e migração gradual.

Conformidade e segurança da cadeia de software

Uma das direções mais importantes do Boss4D é tratar dependências como parte da cadeia de fornecimento de software.

A release inclui:

  • SBOM nos formatos CycloneDX 1.7 e SPDX 2.3;
  • declarações de proveniência in-toto;
  • checksums SHA-256;
  • attestations de build emitidas pelo GitHub;
  • suporte a assinatura OpenPGP;
  • auditoria de vulnerabilidades e VEX;
  • pacote imutável no formato .b4dpkg.

Isso permite responder perguntas que estão se tornando comuns em auditorias:

  • quais componentes fazem parte desta aplicação?
  • de onde veio cada versão?
  • o artefato baixado corresponde ao publicado?
  • quem estava autorizado a publicar?
  • existe uma vulnerabilidade conhecida?
  • ela realmente afeta este produto?

O Registry público mantém uma regra importante: uma versão não é anunciada como verificada enquanto todas as evidências exigidas não estiverem presentes. Por isso, a release 1.7.0 está disponível no GitHub e no canal de autoatualização, enquanto a entrada verificada do próprio Boss4D no Registry permanece na 1.6.0 até a publicação da assinatura OpenPGP destacada da nova versão.

Essa diferença não é um erro de sincronização. É a política de confiança funcionando como deveria.

Delphi, Lazarus, Linux e macOS

A matriz declarativa cobre Delphi 10, 10.1, 11, 12 e 13, com Win32, Win64, Debug e Release. Os plugins da release foram compilados de forma real com Delphi 10 Seattle, 11, 12 e 13. O perfil legado compartilhado mantém a compatibilidade-fonte com Delphi 10.1 Berlin.

No lado FPC, o Boss4D passou a distribuir CLIs nativas para:

  • Linux x86-64;
  • macOS arm64.

Isso permite executar instalação bloqueada por lock, consulta ao Registry, verificação de pacotes, geração de SBOM, auditoria, publicação e autoatualização sem depender de um runtime Go.

Evidências da release

A versão foi fechada com:

  • 332 testes DUnitX no Delphi 13, tanto em Win32 quanto em Win64;
  • 73 testes FPCUnit e smoke tests reais no Linux e no macOS;
  • builds reais dos plugins nas versões certificadas do Delphi;
  • Sonar Quality Gate aprovado;
  • zero novas violações;
  • zero duplicação nova;
  • artefatos Windows, Linux e macOS;
  • checksums, matriz de artefatos, SBOMs e attestations.

Esses números representam o estado certificado da release. A suíte continua evoluindo no branch principal após a publicação.

Como baixar

A página oficial da versão contém o instalador Windows, os arquivos compactados para as três plataformas, o pacote imutável e todas as evidências de verificação:

Baixar o Boss4D 1.7.0 no GitHub

Antes de instalar, vale conferir o arquivo SHA256SUMS.txt.

Um passo além do gerenciador de dependências

O principal ganho da versão 1.7.0 não está em um comando isolado. Está na integração entre resolução de dependências, compilação, instalação na IDE, recuperação do ambiente, interface gráfica, automação multiplataforma e evidências de conformidade.

Para projetos Delphi e Lazarus, isso significa reduzir scripts locais, configurações implícitas e procedimentos manuais difíceis de reproduzir.

O Boss4D continua sendo um projeto em evolução, mas a 1.7.0 marca um ponto claro: o objetivo já não é apenas baixar código. É tornar todo o ciclo de uso de componentes mais previsível, auditável e seguro.

Compartilhar por e-mail

0 comentário(s)

Participe da conversa

Seu e-mail não será publicado.

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Um próximo passo para cada interesse.

Continue estudando com os livros, acompanhe as videoaulas ou consulte as soluções para o seu projeto.

Descubra mais sobre Régys Borges da Silveira

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continuar lendo