Skip to content

Releases: criteo/command-launcher

1.13.0

02 Sep 12:42
Compare
Choose a tag to compare

✨ New Features

  • built-in login command now look for three environment variables for the default user name (in order): ${APP_NAME}_USERNAME, $USER, and $USERNAME. The default user is also printed in the output to avoid confusion.
  • a new resources {APP_NAME}_FULL_COMMAND_NAME will be passed to the managed command. This environment variable contains (separated by space):
    • the command launcher binary name
    • the command group name (if any)
    • the command name
  • a new boolean type configuration item group_help_by_registry to allow the user to group the top level commands by registry in the help message. The default value is true.

New Contributors

1.12.1

12 Jun 13:49
015911a
Compare
Choose a tag to compare

✨ Add a linux ARM64 variant of command-launcher.

1.12.0

06 May 09:33
Compare
Choose a tag to compare
  • 🐛 Fix the issue that zip extraction fails due to the size of the extracted file
  • ✨ Add new option --timeout to the built-in update command, and set the default timeout to 10 seconds
  • ✨ Improve autocomplate performance by applying filter in command launcher
  • ✨ Pass [APP_NAME]_TO_COMPLETE environment variable to the auto-complete extension command, this can be used to filter the auto-complete results in the extension command
  • ⬆️ Update golang version to 1.22.0 on the CI

1.11.1

16 Oct 15:44
Compare
Choose a tag to compare
  • 🐛 Fix change package internal folder permission issue after unzip

1.11.0

16 Oct 10:33
Compare
Choose a tag to compare
  • 🐛 Fix 403 error when downloading package from Github
  • ✨ Login hook now supports any key value pair to be stored as a credential. Before it is limited to username, password, and token.
  • 🚸 Ensure folder in the package have the correct permission.
  • ⬆️ Update cobra version to 1.7.0, viper version to 1.16.0

1.10.1

07 Apr 14:27
Compare
Choose a tag to compare
  • 🐛 Fix regression: flags aren't passed to validArgsCmd when checkFlags is true.

1.10.0

02 Apr 10:10
f7978c8
Compare
Choose a tag to compare
  • ✨ Support auto-complete for flag values. Introduced two new flag properties values for static flag values and valuesCmd for dynamic flag values.
  • ✨ New --list option in the built-in rename command to list all command alias
  • 🐛 Fix wrong exit code reported in metrics.

1.9.0

06 Mar 15:49
Compare
Choose a tag to compare
  • ✨New package level system command __setup__. This system hook can be triggered once a new package version is installed from the remote registry. Or manually triggered from the built-in package setup command.
    • New configuration enable_package_setup_hook to toggle the new package setup hook during package installation
    • New built-in command package setup to manually trigger the package setup system hook
  • ✨New ways to define command flags. The newly introduced flags command property allows you to define the command flags with an object instead of the formatted string separated by \t. The requiredFlags property can be stilled be used to define flags, but it is marked as deprecated.
  • ✨New exclusiveFlags command property to ensure that only one property can be specified among a set of flags. This property must be used together with the checkFlags property to delegate the command launcher for argument parsing
  • ✨New groupFlags command property to ensure that all of them must be specified from the command line among a set of flags. This property must be used together with the checkFlags property to delegate the command launcher for argument parsing

1.8.1

31 Jan 21:19
Compare
Choose a tag to compare
  • 🐛 Fix DNS resolve issue on darwin amd64 under VPN. For Mac intel user, please download this version.

1.8.0

02 Jan 09:33
Compare
Choose a tag to compare
  • ✨Support multiple remote registry. From version 1.8.0, you are able to define multiple remote registries. Command launcher synchronizes the commands with all these remote registries at the end of each command execution. This is useful for several scenarios: for example, supporting internal or experimental commands, different teams target their commands to different group of audience.

  • ✨Built-in command remote command to mange multiple remote registries.

    • remote list: list all remote registries
    • remote delete: delete specific remote registry
    • remote add: add a new remote registry
  • ✨Built-in package management related commands are regrouped into package command:

    • package list: list installed local and dropin packages and remote packages. It also provides the possibility to show the installed commands
    • package install: install dropin packages from git repository or remote/local zip file
    • package delete: delete installed dropin packages
  • ✨New command name conflict resolution system: Each command now has a unique full name in form of [regitry]@[package]@[group]@[name]. When two commands register to the same group and name. One of them will be registered with its full group name.

    For example, two command hello@greeting@pkg1@repo1 and hello@greeting@pkg2@repo2. These two commands have the same group name and command name (greeting hello). The first one will be registered as cola greeting hello, the second one will be registered as command cola greeting@@pkg2@repo2 hello. Note: greeting@@pkg2@repo2 is the full name of the group command greeting defined in pkg2 and repo2.

  • ✨New built-in rename command. Now it is possible to rename both group and sub command to a different name.

  • ✨New resource PACKAGE_DIR. Each command now can access its package's absolute path through the PACKAGE_DIR resource. This resource doesn't require user consent.

  • 🔥Metrics system hook interface change. Now the metrics system hook accepts two new parameters: repo/registry name, package name. The full list of parameters:

    1. repository/registry name (see remote command)
    2. package name
    3. command group name, or “default” if no group
    4. command name
    5. user partition
    6. command exit code
    7. command execution duration in nano seconds
    8. error message or “nil” if no error
    9. command start timestamp in seconds