Quem mantém um projeto Delphi grande conhece a pergunta: se eu alterar ou remover esta unit, quais partes da aplicação serão afetadas? Encontrar as referências diretas na cláusula uses ajuda, mas nem sempre mostra o caminho completo.
Ver resumo completo
Quem mantém um projeto Delphi grande conhece a pergunta: se eu alterar ou remover esta unit, quais partes da aplicação serão afetadas? Encontrar as referências diretas na cláusula uses ajuda, mas nem sempre mostra o caminho completo. Uma unit pode ser usada por outra, que é usada por uma terceira, até chegar ao arquivo principal do projeto.
Foi para tornar essa investigação mais prática que criei o Delphi Unit Backtrace. A primeira versão pública já está disponível no GitHub, com executáveis para Win32 e Win64. A ferramenta recebe um arquivo .dproj e o nome da unit, descobre o fonte correspondente e percorre as dependências no sentido inverso: da unit escolhida até seus consumidores e, quando existe essa ligação, até o DPR.
Quem trabalha há bastante tempo com Delphi provavelmente já encontrou units com cláusulas uses enormes, formadas por dezenas de dependências que ninguém sabe ao certo se ainda são necessárias. Algumas foram adicionadas automaticamente pela IDE, outras eram utilizadas por trechos de código que já não existem e muitas permanecem na seção interface mesmo sendo necessárias apenas na implementação.
Ver resumo completo
Quem trabalha há bastante tempo com Delphi provavelmente já encontrou units com cláusulas uses enormes, formadas por dezenas de dependências que ninguém sabe ao certo se ainda são necessárias. Algumas foram adicionadas automaticamente pela IDE, outras eram utilizadas por trechos de código que já não existem e muitas permanecem na seção interface mesmo sendo necessárias apenas na implementação. Embora pareça um problema meramente estético, esse acúmulo pode aumentar o acoplamento entre as units, dificultar a manutenção e ampliar desnecessariamente o impacto de cada alteração realizada no projeto.
Remover essas dependências manualmente nem sempre é simples. Excluir uma unit da cláusula uses, compilar o projeto e repetir o processo até encontrar todas as dependências desnecessárias pode consumir muito tempo, principalmente em sistemas antigos ou de grande porte. Além disso, algumas units possuem efeitos colaterais durante a inicialização da aplicação e não podem ser removidas apenas porque seus símbolos não aparecem diretamente no código. É nesse cenário que o Atropos se apresenta como uma ferramenta interessante para a comunidade Delphi.
O Atropos é um projeto open source (github.com/ViniAbreu/Atropos) criado para analisar e otimizar automaticamente as cláusulas uses de projetos Delphi. A ferramenta identifica units aparentemente não utilizadas, verifica quais dependências podem ser transferidas da seção interface para a seção implementation e modifica os arquivos de código. Depois disso, ela tenta compilar o projeto para confirmar que as alterações continuam válidas. Se a compilação falhar, os arquivos modificados são restaurados automaticamente.
Durante décadas, a instalação de componentes e bibliotecas sempre foi uma das tarefas mais trabalhosas para desenvolvedores Delphi. Embora fornecedores como TMS Software, DevExpress, Fast Reports, ACBr e diversos projetos open source tenham evoluído seus mecanismos de distribuição, a realidade ainda envolve instaladores específicos, configurações manuais, ajustes em Library Path, compilação de pacotes e resolução de dependências.
Ver resumo completo
Durante décadas, a instalação de componentes e bibliotecas sempre foi uma das tarefas mais trabalhosas para desenvolvedores Delphi. Embora fornecedores como TMS Software, DevExpress, Fast Reports, ACBr e diversos projetos open source tenham evoluído seus mecanismos de distribuição, a realidade ainda envolve instaladores específicos, configurações manuais, ajustes em Library Path, compilação de pacotes e resolução de dependências.
Enquanto outras plataformas adotaram soluções modernas como npm, NuGet, Maven e pip, o ecossistema Delphi permaneceu dependente de abordagens tradicionais para gerenciamento de componentes.
Com o lançamento do projeto open source Smart Setup, a TMS Software propõe uma mudança significativa nesse cenário. Mais do que um simples instalador, o projeto surge como uma plataforma para automação de builds, gerenciamento de dependências e distribuição de bibliotecas Delphi, C++Builder e Lazarus/FPC.
A pergunta que surge é inevitável: Será que finalmente estamos diante de um verdadeiro gerenciador de pacotes para Delphi?