[Ann] LaunchPad 4

Launchpad, a command-line interface to start, list, and explain the applications available within the image. reached it’s v4.0.0 version.

Changelog

  • Added a CLI to not only start, but also list and explain apps in the image
  • Added a help system to get information about every app in the image
  • Added configuration providers: environment variables and settings files
  • Logging infrastructure based on Beacon
  • Stack trace generation gained new options in textual form
  • Added GH action to check the loading of each group in the baseline
  • Added Pharo 9 to the build
  • Improved the documentation by adding a tutorial, reference material, and explanations.
  • Removed support for Pharo 7

Migration Guide

This version is a complete overhaul of the project, so few things remained as before. It’s recommended to read the documentation before starting the migration.

Manually load the package Launchpad-MigrationFromV3 to ease the migration.

Some highlights:

  • CurrentLogger is deprecated, emit LaunchpadLogRecord instances instead
  • LeveledLogger is deprecated. The migration package includes automatic rewrite rules to fix users.
  • ErrorStackSerializer is deprecated. The migration package includes an automatic rewrite rule to fix users.
  • FlagArgument is deprecated. Replace it with an OptionalConfigurationParameteror a command-line option depending on the usage.
  • MandatoryArgument is deprecated. The migration package includes automatic rewrite rules to fix users.
  • OptionalArgument is deprecated. The migration package includes automatic rewrite rules to fix users.
  • SensitiveArgument is deprecated. The migration package includes automatic rewrite rules to fix users.
  • LaunchpadCommandLineHandler is not deprecated but changed its purpose. Now it is only responsible for starting Launchpad’s CLI. If you have subclasses, now they need to subclass LaunchpadApplication and implement the required subclassResponsibility methods.
  • The code in basicActivate should go to basicStartWithin:
  • configurationDefinition is now a class method in the application: configurationParameters. And you need to change the code to use the new configuration parameter abstractions.
  • The migration package includes extensions with deprecation messages.

Adapt any script used to start the application by following the new CLI conventions.

Regards,

The Buenos Aires Smalltalk team

%d bloggers like this: