Skip to content

Improved UX for Plugin installation/uninstallation #549

@yizha1

Description

@yizha1

What is the areas you would like to add the new feature to?

Notation CLI

Is your feature request related to a problem?

For remote signing, users need to install a signing plugin into notation. Here is the current UX of plugin installation:

  1. Download the plugin from the plugin vender repository
  2. Figure out what is notation configuration directory based on the OS type
  3. Make a directory named plugins under notation configuration directory
  4. Make a sub-directory under plugins for the vendor plugin (of cause, users can use command mkdir -p)
  5. Extract the plugin package (if needed) and copy the plugin file into directory created in step 4
  6. Use command notation plugin ls to make sure the plugin is installed

It takes so many steps to just install a plugin, and it is also error prone since most steps are manual steps and user need to figure out the directory path accordingly.

What solution do you propose?

To improve the plugin installation UX and meet the timeline of v1.0 release. A phased approach is recommended. This issue only addressed the solution for the first phase.

The goal of the first phase is that users don't need to create directories, remember the names, and verify the installation using notation plugin ls. The solution is to introduce two new sub-commands for notation plugin:

  • notation plugin --name <plugin name> import <plugin file>
  • notation plugin delete <plugin name>

With that, the steps of plugin installation can be reduced to two steps

  1. Users download the plugin from the plugin vendor repository.
  2. Users execute command notation plugin import <plugin package>. The result of the execution indicates the success or failure of installation.

Users can easily delete plugin as well using just one command: notation plugin delete <plugin name>. If users forget the plugin name when deleting, users can use the existing command notation plugin ls to check the name.

What alternatives have you considered?

None

Any additional context?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions