Plugin and installation manager UIs
See original GitHub issueI’ve been trying to understand what is needed of the manager UIs that have been mentioned on the roadmap and working group meetings. The following is the summary of the two main levels—plugin manager and installation managers—I’ve been hearing about from a functionality perspective.
Needed functionality
The following are the actions I believe we aim to cover.
install
- Installs packages to an environment.
- In the installation manager, this is installing napari and its dependencies.
- In the plugin manager, this is installing a plugin.
- Users may need to install from remote or local sources.
- Users may need to set channels, or explicit sources, for these installations.
create
- Create a new environment.
- In the installation manager, this is the step prior to installing napari. In the context of the bundled app, users do not trigger this directly.
update
- Update existing packages in an environment.
- In the installation manager, this is attempting to install the latest version of napari and its dependencies.
- In the plugin manager, this is attempting to install the latest version of a plugin.
- Updating has its own needs. This has more detail in napari/packaging#21
list
- List all packages in an environment.
- In the installation manager, this is listing intalled napari and dependency versions.
- In the plugin manager, this is listing all installed plugins and their versions.
remove
- Remove existing packages in an environment.
- In the installation manager, this is uninstalling napari and its dependencies.
- In the plugin manager, this is uninstalling a plugin.
- In the context of the bundeled app, removal may be triggered by a user if they wish to uninstall napari or a plugin.
- When updating a napari or plugin, users do not trigger this directly. Removal of the prior version automatically happens after the new install.
Other bonuses it sounds like we’d like to include are
- batch actions (ie. install or remove several plugins at once)
- making environment info available via the UI
Current status
With the existing plugin manager UI, I think we support all these main commands. Some more advanced additions (like specifying channels, batch actions) aren’t yet supported.
We don’t currently have an installation manager UI, so that is where most of the missing support is if I understand correctly. The installation manager also is not as immediate priority, I think.
What next?
With this summary, I would like to check a few things:
- Is there anything I’m missing? Is there other functionality I need to make sure and address?
- Does any of this sound inaccurate?
- Are plugin updates available via the current plugin manager?
- Is there anything that makes the bundled app version of this UI unique?
Issue Analytics
- State:
- Created a year ago
- Comments:39 (36 by maintainers)
Following up on the previous comment, this is what the changes would look like all together. The main edit I would still expect is if there are inaccuracies in the description text.
I would like to track this bundled app user flow from installation to updates (including work in napari/packaging #21), but for now I think this covers the new additions.
Following up on a few things! It looks like this idea is mostly working, but there are a few things I need to call out.
This is something I was worried about, too! You are absolutely right that these cards area about twice the height they were previously. So far I haven’t found a balance of solutions that I’ve been hearing agreement on, but I think the collapse/expand could work. @goanpeca we’ve had some questions of whether or not it’s possible to change the card size in the collapse/expand way; do you know if Qt can handle this?
I’m also following up on some other questions and mistakes I noticed in my last post.
The uninstallable a la #4145 design I posted above is almost correct, but I forgot to add that the install buttons would need to be deactivated.
The requested
?
help is a hoverable tool tip designed as a space for adding more info about managing channels. I don’t have a clear idea of what information is needed there as of now, but it’s an open space. If people change their minds and decide it’s not necessary, it’s also easy to remove.For installed plugins, I asked at one point if there was a limit on the width of the Update button since it appears to be determined by the version name. So far, it sounds like there is no limit which could give issues as we add more content to the limited space. I propose we either make this a generic
Update
button with the latest version listed below the button…Or use a longer button with text like
Update to latest version
. Even though it is longer, it would no longer be variable so we could come up with a solution more confidently.I think that covers the lingering questions I was running into, but please let me know if I’ve missed anything. Thank you!