🎉 Atropos v1.0.0 - Initial Release
We are incredibly excited to announce the first official release of Atropos, your automated uses clause optimizer for Delphi! 🚀
Atropos is built to surgically clean up and optimize the uses clauses of your .dproj projects. By removing unused dependencies and moving units down to the implementation block when applicable, Atropos helps you achieve faster compilations, leaner executables, and a more responsive IDE experience.
✨ Key Features
- Automated Uses Clause Cleanup: Safely detects and removes completely unused units from your
usesclauses. - Smart Unit Downgrade: Moves units from the
interfacesection to theimplementationsection if they are only needed internally, improving code encapsulation. - Deep AST Analysis: Powered by
DelphiAST, Atropos builds an Abstract Syntax Tree of your.pasfiles and cross-references identifiers against exported symbols for pinpoint accuracy. - Fail-Safe Mechanism: Never lose code. Atropos automatically builds your project in the background after changes. If the compilation breaks, it instantly triggers a full rollback. 🛡️
- Safe Mode Ignore: Automatically ignores units with
initializationblocks, units missing from search paths, and units wrapped in compiler directives ({$IFDEF}, etc.) to prevent unintended side-effects.
💻 Two Ways to Use
Whether you prefer a graphical interface or automating via scripts, Atropos has you covered:
- AtroposVCL.exe: A friendly Graphical User Interface (GUI) to visualize your optimizations.
- AtroposCLI.exe: A powerful Command Line Interface (CLI) perfect for CI/CD pipelines and batch scripts.
CLI Quick Start Example:
AtroposCLI.exe -dproj "C:\Path\To\Project.dproj" --remove --move -html📊 Comprehensive Reporting
- Generate detailed reports of what was modified, removed, or moved.
- Supports both HTML (
-html) and TXT (-txt) report formats.
📥 Download
Download the binaries from the assets below! You will find both the CLI and VCL versions ready to be executed.
Thank you for supporting Atropos! If you encounter any bugs or have feature requests, please open an issue in our repository. ⭐ Don't forget to star the project if you find it useful!