Launchpad 9.3
Configuration Galore!
Launchpad has a brand spanking new configuration system, rebuilt from the ground up to be based on flexible and overridable container parameters introduced in version 9.2! This has far-reaching implications for the future of the application and the level of flexibility that can be provided, and this has required touching a huge number of files and hopefully not introducing too many bugs.
Launchpad now looks for a Launchpad.json file instead of Launchpad.ini. To ease this transition and keep this change non-breaking, there is a migration wizard that will detect your old Ini settings and offer to automatically migrate them to the new format for you.
This release has a noticeable performance improvement--Instead of a long delay upfront, there is now a short delay before accessing certain features for the first time, and if you don't use those features, they are never loaded. This makes Launchpad feel a bit more snappy and responsive, especially initially.
With all the recent changes, Launchpad is also able to scan for third-party modules and rebuild your module include file automatically if it detects changes. This feature is mostly untested, and no known third-party modules exist yet, but one of the primary goals now is to convert as much existing and upcoming functionality as possible to separate modules and to create a module manager that can be used to enable or disable them.
Changes:
- Entity creation is now handled by a generic factory service, and a container-injected static method is called on the entity class to allow for any type of custom third party entities to be created
- Third-party modules are automatically detected and an include file built to allow them to load properly
- Include files for Launchpad and for the builder are now all built from one generic set of classes
- Base test classes have been simplified a bit to make them easier to use and extend
- The Launcher.template.ahk template file has been simplified a bit so there are no extra global variables
- ServiceContainer now has a new base class, ParameterContainer, so that the concept of parameters can be separated from services if desired
- The configuration layer has been made more flexible and generic and rebuilton top of the ParameterContainer system
- Launchpad's configuration file has been changed from Launchpad.ini to Launchpad.json
- An automatic migration path has been added to Launchpad's new configuration format