In the meantime, I am going to do the following:
The "Pro" Answer: Both, but integrated
| Audience | Tool | Purpose |
|------------|-------------------------------|------------------------------------------------------------|
| Developers | simple_installer (Eiffel CLI) | simple_installer install simple_json - quick, scriptable |
| End Users | Inno Setup .exe | One-click install, proper Windows integration, uninstaller |
The Clever Architecture
Have simple_installer generate the Inno Setup script:
simple_installer generate-inno --version 1.0.0 --output simple_ecosystem_setup.iss
This gives you:
1. Single source of truth - Library manifest lives in Eiffel
2. Dogfooding - Uses simple_json, simple_process, simple_http
3. Developer workflow - CLI for quick installs/updates
4. Professional distribution - Real Windows installer for releases
5. Automation - GitHub Actions can build installers on each release
What Users See
Developer:
> simple_installer install simple_json simple_csv
Installing simple_json... done
Installing simple_csv... done
Environment variables set. Restart terminal to apply.
End User:
- Downloads simple_ecosystem_1.0.0_setup.exe
- Clicks through wizard
- Gets Start Menu entry, proper uninstaller, environment variables configured
This is exactly how professional tools work (Node.js has both npm and a Windows installer).