Skip to content

Launchpad 9.3

Compare
Choose a tag to compare
@bmcclure bmcclure released this 05 Oct 02:56
· 396 commits to master since this release

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