Releases: criteo/command-launcher
1.13.0
✨ 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
✨ Add a linux ARM64 variant of command-launcher.
1.12.0
- 🐛 Fix the issue that zip extraction fails due to the size of the extracted file
- ✨ Add new option
--timeout
to the built-inupdate
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
- 🐛 Fix change package internal folder permission issue after unzip
1.11.0
- 🐛 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
- 🐛 Fix regression: flags aren't passed to
validArgsCmd
whencheckFlags
is true.
1.10.0
- ✨ Support auto-complete for flag values. Introduced two new flag properties
values
for static flag values andvaluesCmd
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
- ✨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-inpackage 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 configuration
- ✨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
. TherequiredFlags
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 thecheckFlags
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 thecheckFlags
property to delegate the command launcher for argument parsing
1.8.1
- 🐛 Fix DNS resolve issue on darwin amd64 under VPN. For Mac intel user, please download this version.
1.8.0
-
✨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 registriesremote delete
: delete specific remote registryremote 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 commandspackage install
: install dropin packages from git repository or remote/local zip filepackage 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
andhello@greeting@pkg2@repo2
. These two commands have the same group name and command name (greeting hello). The first one will be registered ascola greeting hello
, the second one will be registered as commandcola greeting@@pkg2@repo2 hello
. Note:greeting@@pkg2@repo2
is the full name of the group commandgreeting
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 thePACKAGE_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:
- repository/registry name (see remote command)
- package name
- command group name, or “default” if no group
- command name
- user partition
- command exit code
- command execution duration in nano seconds
- error message or “nil” if no error
- command start timestamp in seconds