napari / napari-plugin-manager

napari plugin manager to provide a graphical user interface for installing napari plugins.
https://napari.org/napari-plugin-manager
BSD 3-Clause "New" or "Revised" License
5 stars 5 forks source link

Search for plugins to install on demand #51

Open goanpeca opened 3 months ago

goanpeca commented 3 months ago

Fixes https://github.com/napari/napari-plugin-manager/issues/83

As discussed in https://github.com/napari/napari-plugin-manager/issues/37 as more and more plugins are added to the ecosystem loading a big list of plugins might become unsustainable, specially if we keep using complex custom and styles widgets within the Qlistwidgetitems.

Another approach to this, that could still preserve the rich styling of widgets is to only display the items after a search, that way we only populate the list on demand if a user is looking for something. This is what other tools like VSCode handle it. Added a small preview, of course this would require some styling, but this work fits nicely into what has already been provided by the latest PRs

napari-dialog

psobolewskiPhD commented 2 months ago

I like this @goanpeca I demo'd napari at SciPy and people liked scrolling the plugins, but this interface is snappy and nice. One comment: the filter at the top doesn't filter installed plugins:

image

So maybe just move the line edit below? It's not a filter anymore, just have Search for plugins as a label?

goanpeca commented 2 months ago

I demo'd napari at SciPy and people liked scrolling the plugins, but this interface is snappy and nice.

Glad you like it, indeed is snappy :)

One comment: the filter at the top doesn't filter installed plugins:

Yes!, this was a quick POC to see how it could work hence all the UI issues remain like this one you correctly point out.

If this is something we would like to pursue, I would need to merge the other remaining PRs and then continue here, although I would probably just do a full rebase from main and add the few changes (those are actually small now that the other PRs ara almost in)

Also @Czaki suggested we could have on the bottom a "suggested" plugins or, most downloaded or something, so that it is not empty empty, but showcases the most installed ones.

Anyway food for thought :)

Thanks for the reviews!

codecov[bot] commented 2 months ago

Codecov Report

Attention: Patch coverage is 97.64706% with 2 lines in your changes missing coverage. Please review.

Project coverage is 92.76%. Comparing base (d5bba24) to head (86a9f9f).

Files Patch % Lines
napari_plugin_manager/qt_plugin_dialog.py 95.74% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #51 +/- ## ========================================== - Coverage 93.09% 92.76% -0.34% ========================================== Files 10 10 Lines 1781 1810 +29 ========================================== + Hits 1658 1679 +21 - Misses 123 131 +8 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

psobolewskiPhD commented 2 months ago

Meant to post this here: We discussed this in the Pacific meeting See notes here: https://hackmd.io/VSaKh4hMQ12Bn7uWD_ij6A

The gist was that the current approach is likely untenable in the long term, but the merged-to-main fixes are a significant improvement, so lets look at a release?

Then, approach here can be a followup, with some extra UI polish prior to being released, such as additional filter categories--assuming they are available anyways.

goanpeca commented 2 months ago

@psobolewskiPhD haha yes I understood :)

All good making a release today 🚀