---
# System prepended metadata

title: Meeting Minute 2021-08-10
tags: [plugin, working-group]

---

Meeting Minute 2021-08-10
===

###### tags: `working-group` `plugin`

:::info
- **Date:** Aug 10, 2021
- **Agenda**
1. WG meeting structure `10min`
2. Proposal for napari plugin manifest schema [#3115]
3. Priorities/next steps 

- **Participants:**
    - Nathan Clack
    - Matthias Bussonnier
    - Tally Lambert
:::

## WG

- Cadence 1/wk
- Zulip to schedule somewhat ad hoc

## Manifest schema

- Problem: searching all entry points by default can take time
    - If we are tackling slow loading, search entrypoints can be slow. 
    - do we cache the environment after one search?
        - problem: new plugins won't be detected (unless they are installed within napari)
        - try the "entrypoints" package from @takluver that might be faster. 
    - Maybe cache the list of plugin and metadata in napari setting
        - Button to force refresh cache
        - If we install from within napari we know to update the cache. 
        - Flush cache every week ? 
        - Checking cache in a BG thread if invalid -> set flag ? 

    - manifest pyproject.toml ?
        - https://github.com/tlambert03/npe2/blob/main/EXAMPLE/pyproject.toml
    - VS code have a activation events, 
        - Maybe autoactivate commands by default unless set to false.
        - 

## Next steps

- [ ] figure out schema for existing napari plugin stuff. (like reader plugins, writer plugins, widgets).
    - PR to npe2 https://github.com/tlambert03/npe2
    - paste json in the discussion at napari
- [ ] get working prototypes of various components (make napari use the new manifest)
    - menu addition
    - keybindings
    - commands
    - widgets
- [ ] Figure out a "translation layer" / compatibility layer for getting existing plugins to work with the new manifest
- [ ] Take an existing plugin and refactor it to use the new manifest model... see what's frustrating, etc...
- [ ] figure out where the manifest lives. (can we even point to a non-python file in an entry point??)
    i.e. does this even work with `importlib.metadata.entry_points()`
    ```ini
    [options.entry_points]
    napari.manifest
        plugin = my_manifest.toml
    ```
    (checkout kluyver's entrypoints package?)
- [ ] documentation - we can definitely start writing this before it's implemented. (could start by seeing how VS Code uses https://github.com/microsoft/vscode-docs to generate their docs)


## Notes 
<!-- Other important details discussed during the meeting can be entered here. -->

* After the meeting add the minutes to the 'working-group/plugins' folder of [napari/meeting-notes](https://github.com/napari/meeting-notes).

[#3115]: https://github.com/napari/napari/issues/3115
