A plea to reduce divergence from the npe2 manifest, and consult with napari devs, as much as possible #447
Replies: 5 comments 3 replies
-
i think as a simple heuristic, I would propose this: If a change/proposal being considered by the CZI/hub team impacts the actions or API that a napari plugin developer (or the napari program) is expected to perform or use, then that should be a broader discussion with the napari team. If it's an improvement or modification to the way that the hub collects, organizes, or presents existing community data, but does not introduce new procedures that the napari project and/or plugin developers need to use, then that's internal "hub business", and no discussion with the community should be expected. |
Beta Was this translation helpful? Give feedback.
-
I'm supportive of this. To be honest I don't remember whether I was involved in discussions about the categories idea. If so, I'm sorry that I didn't flag them for inclusion with npe2. We already had the .napari folder (which predates npe2) so I can see how that seems like a sensible place to add stuff, but I agree that a single file to edit is preferable, and that categories would fit in npe2. I also like Talley's proposed heuristic above. |
Beta Was this translation helpful? Give feedback.
-
I too am supportive of having the More broadly I feel that hub features should be developed "napari first" rather than "napari hub first". Wherever possible we should strive to either surface information already provided by plugin developers through existing sources (whether this be documentation, standard package files or the npe2 manifest), or try to add new information to these existing sources. As an example, despite being a proponent of the |
Beta Was this translation helpful? Give feedback.
-
Thank you for raising your concerns, Talley. I value our partnership with the napari team and it’s important to me personally that we can work effectively together to support napari’s users and plugin developers. As with all of our work on the napari hub, we’ve strived from the earliest phases of exploring the problem space, scoping and planning the solution, and launching the feature, to deeply understand the needs of napari’s users and we consider napari’s steering council and core developers key stakeholders in our work. You raised a number of issues here so at the risk of being overly verbose, I’m going to try to address the major ones.
I have to confess that I’m super confused by the surprise that you express at the launch of this feature and its reliance on
I’m happy to explore ways we can improve communication and coordination between our teams, but I strongly disagree with the notion that the napari hub team went rogue and failed to loop in the napari core dev team before launching this feature. During the many months that the napari hub team was planning, building and rolling out this feature, we had a variety of conversations with you, other leaders in the napari community, and plugin developers about our goals here and our intent to let plugin developers specify categories through the Throughout this entire process, I cannot recall any objections raised to adding categories to The heuristic you propose aligns well with the de facto way that we've tried to approach our work and our relationship with napari’s leadership, but I recognize that I could have done a better job at soliciting feedback on our specific plans & I can commit to our team being more diligent in the future in consulting with the napari core devs on plans that may impact plugin developers.
I understand that you would prefer to get rid of the If napari has features planned that would take advantage of categories or any other metadata we pull from |
Beta Was this translation helpful? Give feedback.
-
Thanks for weighing in here too @neuromusic and @jni. I want to reiterate @neuromusic’s comment that on the CZI end we really do value our partnership with napari and appreciate the time and input we get from napari core developers while we are building the hub. I do want to clarify though CZI and the napari steering council did agree before the hub was created that the hub would be developed by CZI as a service provided by CZI in collaboration with napari - which is why it lives as a repository in the CZI GitHub org and not the napari GitHub org, and is described as such on the hub about page. For this reason the hub doesn’t adhere strictly to the napari governance structure and processes outlined above, but obviously we want to be a healthy part of the napari community and work together with the napari core developer team in as best and collaborative way as possible. We can add something even more explicit about the hub governance to this repo to help further clarify our working model.
I think if the napari team decides that it never wants to use the Overall though, I’m very optimistic about the current situation. I can imagine scenarios where the hub team adds something to the hub configuration that napari thinks is so important it wants in the manifest and I can imagine scenarios where the napari team adds something to the manifest that the hub team thinks is so important it wants it displayed in the hub. To me both of those are productive outcomes as long as migrations and deprecations are handled appropriately. Both napari and the napari hub are in an exciting growth phase now and I think it’s ok if a few mistakes happen along the way, as long as we keep working in a healthy collaboration. |
Beta Was this translation helpful? Give feedback.
-
In reviewing https://github.com/chanzuckerberg/napari-hub/wiki/A-plugin-developer%E2%80%99s-guide-to-categories-on-the-napari-hub, I see now that the hub has now introduced it's own categorization schema for plugins.
This issue is a plea to the CZI team to make every attempt possible to reduce the number of places that a plugin developer needs to "be aware of" in order to have and modify their plugin's presence in the ecosystem.
We did originally have a field for categories in the manifest, but it was removed in napari/npe2#38. I know @neuromusic and @nclack and I all had some discussions in the plugin meetings about categories, but I can't remember the details now about why it was removed. In any case, I definitely would have wanted for those things to go in the manifest. If you'll recall my whole motivation for proposing the manifest was to be able to provide a richer in-app experience for users. And this type of metadata would definitely be useful. I had originally added categories to mimic the
categories
key in the vscode extension API.Yes, napari could conceivably now hit the hub API to retrieve this information, but that seems more like an unfortunate workaround, and something that could be entirely avoided if we encourage plugins to put this in their manifest in the first place, rather than in a separate place. It also adds to the burden on plugin developers to remember all the places to add stuff.
I do like the EDAM categorization. It's clear you've put a lot of thought into. But I would greatly greatly (can't emphasize this enough) appreciate it if the napari core dev team, and specifically those developing the npe2 platform, could be looped in about these sorts of decisions that affect the plugin developer's experience. In this case, I would love it if we could go back to having categories in the manifest.
Thanks for your consideration/attention to this
cc @sofroniewn @jni @neuromusic @napari/core-devs
Beta Was this translation helpful? Give feedback.
All reactions