owned this note
owned this note
Published
Linked with GitHub
# napari America/Pacific community meetings
Friday 11am Melbourne / Thu 9pm NYC
- Zoom link: https://numfocus-org.zoom.us/j/89121313598?pwd=XtKUvJB5wsZXcl2SYCAG7aQ3511VrQ.1
- Link to this HackMD: https://hackmd.io/VSaKh4hMQ12Bn7uWD_ij6A
### Code of conduct
We strive to make the napari community a welcoming place! As such, the napari code of conduct applies to all community events. Please take a moment to review our [our code of conduct and incident reporting process](https://napari.org/stable/community/code_of_conduct.html).
# 2024-09-19/20
- [Juan] automatic reset contrast limits https://github.com/napari/napari/pull/5136
- Peter thinks the PR is confusing and too magic and opaque
- Juan, Draga, Peter think the solution should involve providing more information to the user to use the continuous contrast limits or the once button
- [Draga] refactor layer controls https://github.com/napari/napari/pull/6219
- high priority because long term it enables a lot of things
- functionality becomes even more critical if we decide to move to layer groups, another button for contrast limits etc.
- high value, but not a blocker of current functionality
- one concern is that it's a significant UI change
- might benefit from longer RC phase for a week/10 days
- docs videos might need re-recording etc.
- seems like folks actually **do** want this, so it would be a shame to fully icebox it
- Action: Draga will look at the PR implementation through the lens of whether it can be split up somehow for ease of review, and discuss with Daniel. Draga and Peter will play with the actual layer controls and raise any known issues. Goal is to actually get this in, ideally with a small revertable PR that actually does the swap. Need to also consider long-term keybinding changes
- [Juan] default step size for int spin boxes https://github.com/pyapp-kit/magicgui/issues/667
- Peter doesn't have much of an opinion but initial gut feeling is that default step size should be 1
- also suggested the hold and go faster, but Grzegorz thinks that would be a huge lift
- typing is the escape hatch though
- Draga thinks default that's not 1 is unhinged, especially since you **can** change it as a plugin dev
- related: superqt PR to make the slider endpoints adaptive
- PR: https://github.com/pyapp-kit/superqt/pull/172
- related issue: https://github.com/napari/napari/issues/6644
- [Draga/Lucy] Keybindings UX questions
- Should plugins be able to declare keybindings that overwrite napari defaults
- what do we do with a conflict here
- what about two plugins declaring the same keybinding
- JNI: plugins should be able to overwrite defaults, it's a very common usecase
- nothing should happen
- Peter: absolutely not, but that would change if I could see and change keybindings
- Lucy: that would be an option
- Peter: if a plugin is conflicting with **any** of my current keybindings, then on plugin **load**, I should be alerted that a plugin is trying to contribute conflicting keybindings, and given the option to discard them
- JNI: some kind of notification of conflicts is good. Options: yes overwrite all, deactivate all, inspect, don't overwrite but ask me later about this plugin
- Possibly long term we want to consider some form of "remember this response" option, when there are **lots** of plugins newly installed and the user will be faced with heaps of dialogs, but for now we are happy with just popping as many dialogs as it takes to resolve all plugins with conflicts
- plugin-plugin conflicts are the same situation, because the current keybindings are "mine". we don't want different behaviour in this case
- currently, plugins can "overwrite" keybindings by requesting the `viewer` and using the decorators to declare keybindings/mousebindings. Long term, this is behaviour we want to fully deprecate, as we won't easily be able to collect these keybindings and show them to the user for editing/disabling. we want plugin devs to fully move towards the declarative manifest keybindings
- npe1 deprecation
- a key priority
- Draga will prioritise planning and getting the ball rolling on npe1 deprecation ahead of implementing NAP6
- initial feeling from Peter and Juan was that NAP6 is more important
- Draga pointed out that there is a huge maintenance burden for it, and that removing all the npe1 code would greatly simplify contributing, and open up work on other key stuff e.g. improving our file opening behaviour, richer import/export dialog etc.
- this changed Juan and Peter's minds and they agreed that we should make concrete plans to deprecate npe1 and start adding warnings etc.
- we want to start adding deprecation warnings for plugins that can't be shimmed
- we don't want to turn off the shim right now, but we do **eventually** want to get rid of it and only support npe2 native plugins
- Draga will check
- why the 'use npe2 adaptor' checkbox seems off by default
- how many plugins are actually npe2 native
- if you have an npe1-shimmable plugin and use the adaptor, what happens with any "on import" stuff the plugin was doing
- Peter will update the issue about setting env var usage, because it might also affect the shim checkbox
- Juan agrees that we should decouple the conversation about adding 'start-up items' to manifest and npe1 deprecation. We don't want to wait for consensus and implementation on the former, before continuing with the latter
# 2024-09-05/06
- Draga & Lucy were in the weeds with keybinding implementations!
# 2024-07-25/26
- Andy
- Some progress on pushing feature based style encoding
- Vectors style encoding GUI: https://github.com/andy-sweet/napari/compare/style-collection...andy-sweet:napari:vectors-with-style
- two large parts to the properties work proposed in 2866
- use a dataframe to keep features, you can style based on dataframe features
- we have mechanisms to do this for points, vectors and shapes but shapes do it in their own way
- started on vectors layer to add features to the GUI!
- pulling out the `QtColorControls` into a super-widget that we should be able to use for other layers too
- contrast limits slider isn't done but probably needs to be
- Andy will open a WIP PR somewhere with a video so we can discuss
- Peter:
- napari-plugin-manager repo:
- continual loading of plugins (current) or search only (ala VS Code)
- https://github.com/napari/napari-plugin-manager/pull/51
- current main of napari-plugin-manager, not yet released, has some improvements
- it tries to show you a browsable list of plugins, but it can't load all at once so it's a little odd
- VS code currently does a 'search-based' list where nothing comes up until you search stuff
- someone at scipy did like that you can browse within the install manager
- fetching is throttled so that you don't actually freeze the GUI
- but for some machines the fetch is very slow
- if you search, the search query **does** get brought up quicker
- draga: i lean towards only showing on search, and improving the filtering options with categories, file types etc.
- :point_up_2: add your agenda items here!
# 2024-07-11/12
- 0.5.0 released!!! 🥳
- Questions and demos welcome
- What's next? 0.5.1 discussion
-
- :point_up_2: add your agenda items here!
# 2024-06-27/28
- 0.5.0 release discussion
- Menu contribution
- Multi-canvas updates
- :point_up_2: add your agenda items here!
# 2024-06-13/14
- Menu contributions
- edit menu vs. layer menu items
- ng manifest
- context menu contributable
- restrict it first for now and then open an issue for opening it up and see if people want it
- layers menu always works on selected layer(s) or opens a widget is the guideline
- plugin developers need to be careful with the `enablement`s of commands to make sure they can actually act on the selected layer
- needs to go into the NAP
- builtins name next to command?
- Peter (and Juan and Draga really): emphatic no. builtins is just unqualified and at the top
- Copier/cookiecutter
- dealing with users running old command
-
- :point_up_2: add your agenda items here!
# 2024-05-30/31
- 0.5.0 Release
- 0.5 milestone should be aspirational
- patch version should be reserved for things that need to get merged
- docs about rendering (https://napari.org/stable/guides/rendering.html) need to be updated - async is different, see issue: https://github.com/napari/docs/issues/237
- https://github.com/napari/napari/issues/6925 - points in 3d issue
- bisect to find cause points to:
- https://github.com/napari/napari/pull/6896/files#r1602264036
- is reverting that change sufficient and correct?
- why do tests miss such a problem?
- author list
- plugin manager visibility
- npe2api is still not doing anything with the manifest visibility
- need to update it to not index hidden plugins at all
- should be done for 0.5.0
- Peter: towards 0.5.0 release:
- https://github.com/napari/napari-plugin-manager/pulls
- https://github.com/napari/napari/issues/6489
- update icon in Labels to match polygon in shapes
- change termination criterion to match
- match existing behaviour of Shapes but add preference for both tools that would set the behaviour preferred by Linux users
- :point_up_2: add your agenda items here!
## 2023-05-25
- Isabela can't attend, but wanted to let you all know that the additional layer controls design review time will continue. [Join on zoom](https://czi.zoom.us/j/96202485842) at [4pm Pacfic time (click for your timezone) on Wednesday, 25 May.](https://arewemeetingyet.com/Los%20Angeles/2023-05-25/13:00/napari%20viewer%20layer%20controls%20design%20review). Anyone can join!
## 2023-05-11
- Isabela: Layer controls update. We'll be setting some dedicated time to review the current mockups in a separate meeting. [Join on zoom](https://czi.zoom.us/j/97849109920) at [1pm Pacfic time (click for your timezone) on Tuesday, 16 May.](https://arewemeetingyet.com/Los%20Angeles/2023-05-16/13:00/napari%20viewer%20layer%20controls%20design%20review). Feel free to join!
## 2023-04-27
- Isabela: Layer controls update. Mockups at [napari/napari #5358](https://github.com/napari/napari/issues/5358#issuecomment-1526643253)
- Where to start contributing? Is there anywhere that's blocking someone's work?
- Reworking labels on issues may help find/prioritizing
- Good first issue label might be recently cleared. This seems good on the documentation side.
- [napari/napari #5608](https://github.com/napari/napari/issues/5608) autocontrast leads to oversaturation?
- :point_up: add new agenda items to this list! :point_up_2:
## 2023-04-13
Draga, Andy, and Juan were present and basically turned it into a mini PR-party. Discussed:
- [#5440](https://github.com/napari/napari/pull/5440) is cool! Should get pushed over the line.
- [#5648](https://github.com/napari/napari/pull/5648) got merged :tada:
-
- :point_up: add new agenda items to this list! :point_up_2:
## 2023-03-30
- Gen would like to know how to set up GitHub Actions CI for use with napari
- :point_up: add new agenda items to this list! :point_up_2:
## 2023-03-16
- Andy/Grzegorz/Juan: dask cache bug update ([Zulip thread](https://napari.zulipchat.com/#narrow/stream/212875-general/topic/dask.20cache.20error.20.235591/near/342365173))
- Isabela: Layer controls update. Working on the draft mockups!
- Grzegorz: design should be responsive, so that grouping can be more compact on small screens
- Juan: tabs could help, but only on small screens
- Grzegorz: important to be able to see mode of interaction at a glance, as well as selected label
## 2023-03-02
- Isabela: Layer controls update. [Takeaways from the work so far](https://github.com/napari/napari/issues/5358#issuecomment-1450945010) as we lead into visual design rounds.
- Juan: [The fourth dimension and the case of the missing slider - napari/napari #154](https://github.com/napari/napari-animation/issues/154)
- suspicion: [`qt_dims._update_ndisplay`](https://github.com/napari/napari/blob/c43a2e7c0181b5c4ed877fb1f59cae6f4d0ff0d2/napari/_qt/widgets/qt_dims.py)
- Andy: [Multiscale 3D rendering warning should happen once only - napari/napari #5588](https://github.com/napari/napari/issues/5588)
- the pyproject.toml only applies to tests
- suspicion: https://github.com/napari/napari/blob/c43a2e7c0181b5c4ed877fb1f59cae6f4d0ff0d2/napari/utils/notifications.py#L272
## 2023-02-02
- Kandarp: survey discussion (analysis requests; other questions of interest)
- https://bit.ly/napari-survey-sheet (comment on sheet or [email me](mailto:kkhandwala@chanzuckerberg.com))
- Last year's analysis linked here: https://twitter.com/jnuneziglesias/status/1613839615030628353
- Isabela: Layer controls update. Sorting controls and working on competitive analysis.
- Looking for validation on the [sorting info](https://docs.google.com/spreadsheets/d/1RCHD4Wfb9D5Lf2eG_F-U4SgLTwtp_kLzudVJOysWW5Y/edit?usp=sharing). Is there a good place to get this?
- Juan: home page PR / docs WG share out
- Juan/Genevieve/Kyle: progress on multiscale rendering
## 2023-01-19
- Andy: planned work around named dims, types & units
- we've wanted named axes, types & units for a while
- especially since napari is a general purpose array viewer, we want this to be very lightweight
- JNI: big issue is that viewer's 0,1,2 dimensions and that's inconsistent with numpy broadcasting. Solution is to use -1, -2, -3 which is consistent for numpy broadcasting.
- AS: there are a couple of issues listed in this vein. They're a bit scary
- Issue by Alister on this [#3882](https://github.com/napari/napari/issues/3882)
- Issue by Juan: [#906](https://github.com/napari/napari/issues/906)
- Related issue by Nick: [#14](https://github.com/napari/napari/issues/14)
- AS: demo of napari-metadata plugin where he tests things out. One problem: axes order is set for all layers in the viewer, not for each layer independencly
- AS: Two approaches
- prototype, NAP, etc.
- initially, I'm taking the exercise the existing napari API as far as it will go to support the analysis workflows to understand where it breaks down, and whether a plugin solution could be good enough for both CZI and viewer
- also a good way to test & share something without putting burden on community for building, reviewing & consensus
- plugin is intended as something to share more easily internally at CZI
- it's public and it's already exercising what we could do, how it could work
- main limitation is dims are viewer wide and we highlight limitations with that
- single unit for scale bar per viewer, and it does actually adapt as you zoom in and out
- very very experimental plugin: https://github.com/andy-sweet/napari-metadata
- Draga: [command palette PR](https://github.com/napari/napari/pull/5483/files#diff-4a91486b6af0fd2c8031ee31c536776b6827299e0eb42f485826d4562270d3db)
- We definitely have concerns about the widgetiness of the changes in components
- Would like this to ideally be a thinner layer on top of `app-model`
- I'll follow up with a comment and then look into it a bit further to come up with a hopefully leaner path
## 2022-12-22
- Announcement: Take the short napari annual survey! https://bit.ly/napari-survey-c
- The team uses the survey to capture big picture feedback, that is vital to ensuring napari serves the needs of the imaging community and making strategic changes.
Every 10th completed survey respondent will receive a $100 Amazon gift card.<br>
Please share with all your napari-using colleagues and friends!
- Command search palette scope and design share out ([issue #5340](https://github.com/napari/napari/issues/5430))
- Feedback
- to close out the search, one option is to use the esc key
- top search result to be selected by default
- potential to start with a list of potential commands to give users an idea of what's possible
- [NAP-6](https://github.com/napari/docs/pull/77) is live on contributable menus :tada:
- Brief intro
- Current discussion
## 2022-10-27
- Isabela: [Plugin manager and bundled app installation manager](https://github.com/napari/napari/issues/4952) work has been happening! I want to spread the word and invite you all to give feedback.
- Now that the plugin manager tracks the plugin install source (ie. pip or conda), maybe that should also be surfaced in `napari info` since it is already something asked for in support tickets.
- For the installation manager, how does a default napari install get chosen? It may be that the lastest installation is default by (ha ha) default and can be changed manually. This needs to be confirmed.
- Meeting frequency and purpose. The calendar has a lot of meetings on it, but meetings like this have been lighter on the agenda. Is this what we want? Where is a good place to have this discussion?
## 2022-10-13
- Kandarp + Justin: Demo and feedback on napari hub [activity dashboard feature](https://www.figma.com/proto/d3t84J9Uzmj0GZnYROzdQX/Activity-Dashboard?page-id=854%3A8139&node-id=854%3A8144&viewport=109%2C201%2C0.14&scaling=min-zoom&starting-point-node-id=854%3A8140&hotspot-hints=0&hide-ui=1)
## 2022-09-29
- FYI: Participate in UX study on evaluating plugins with metrics!
- Sign up [here](https://calendly.com/imaging_czi/plugin-metrics-study?utm_campaign=2022h2&utm_source=meeting) for a 45-60 minute session or [learn more](https://napari.zulipchat.com/#narrow/stream/212875-general/topic/Participate.20in.20UX.20study.20on.20evaluating.20plugins.20with.20metrics)
- Andy: release update
- may branch to free up `main`
- let's do it
- `imshow` improvements
- should just be updating default parameter values
- macOS briefcase-based bundle test volunteers?
- https://github.com/napari/napari/pull/5152
- artifacts: https://github.com/napari/napari/actions/runs/3152777529
- Genevieve: Napari on M1, some xcb errors
- "source of truth" is https://forum.image.sc/t/napari-tensorflow-aicsimageio-stardist-care-n2v-pyclesperanto-running-native-on-apple-silicon-m1/55051/40
- But Genevieve says issue is conda is failing right now on empty environment -- possibly dependency has been updated and broken install?
- There are no M1 mac instances on Github actions, but they are available on CirrusCI. This is new, so no-one has looked into setting this up yet.
- Switching from pyqt5 to pyqt6 might help sidestep this problem (there are more wheels available for pyqt6, it's better supported)
## 2022-09-15
- Andy/Juan: [NAP-4](https://github.com/napari/napari/pull/5052) / [arch group update](https://napari.zulipchat.com/#narrow/stream/296574-working-group-architecture/topic/Meeting.202022.2F09.2F13/near/298820492)
- Juan: [NAP-5!](https://github.com/napari/napari/pull/5084) (sorry, I'm excited it's finally public :sweat_smile:)
- Draga: can folks weigh in on [#5079](https://github.com/napari/napari/issues/5079)
- [:point_up: add items here :point_up:]
## 2022-09-01
- nathan: plugin working group
- app model
- should form backbone of command structure, replacing ActionManager
- tracking issue: https://github.com/napari/napari/issues/4860
- app model includes menu items
- existing menus are getting migrated to new menu system
- there is one core one that needs to reviewed/pushed forward
- Qt menus are automatically populated after this
- in-n-out: independent of app model
- used in app model
- jordao: graph layer update
- not too much recent progress
- also not blocked
- working with nodes only, but for large numbers of nodes (e.g. 5m)
- andy: arch working group
- PR up for review against main: https://github.com/napari/napari/pull/5003
## 2022-08-18
- Andy: Async updates. [napari/napari #4959](https://github.com/napari/napari/pull/4959) needs review!
- Peter: color map work!
- Adding the `minimum` blending mode (along with inverted color maps, tooltips, and status bar message).
- Andy: "A key point is that the canvas background color is also blended with the images."
- [Discussion #3914](https://github.com/napari/napari/discussions/3914) and [PR #4875](https://github.com/napari/napari/pull/4875). Related [PR #4201](https://github.com/napari/napari/pull/4201).
- Isabela: plugin manager design changes are on the horizon. Follow the discussion and/or add your thoughts at [napari/napari #4952](https://github.com/napari/napari/issues/4952). I'm trying to loop in other plugin manager issues as well to see if this work can help close some things.
- related to [packaging working group roadmap](https://github.com/orgs/napari/projects/20)
- Blank [calendar](https://napari.org/stable/community/meeting_schedule.html). [The issue](https://github.com/napari/napari/issues/4933) might be resolved by [napari/napari #4944](https://github.com/napari/napari/pull/4944)
## 2022-08-4
- Jun: NPE2 questions about the desired user flow and use cases for plugins adding to menus.
- Isabela: design and development community feedback. Informal look into the questions and potential actions to make sure I (and maybe other designers!) can support you all better.
- Immediately actionable:
- Clarify repo labels. Is `design` referring to napari’s architecture design, or UX/UI design?
- Community clarity on what design includes. So far there has been a focus on visuals only, which is fine, but not complete in my mind.
- We can auto-assign issues to designers, how do we decide when we need review on a PR? And what do we need to provide so it can be reviewed (ie. screenshots for when design review is requested)?
- Future actions we can take:
- Documented design system/approach (even based on the current state and not waiting for some ideal version)
- Identify why some contributors do not want to add UI/contribute to the viewer? Is that something we are okay with? Do we need to support them differently?
- Identify common napari units and design choices we have made for them already.
- Notes
- [PR notes in spreadsheet form](https://docs.google.com/spreadsheets/d/11CR_dDg3OX1dnDrJgMHEm-z5f-Go9HoIFnw_Ld9q2dY/edit?usp=sharing)
- [PR notes as “card” slides](https://docs.google.com/presentation/d/1AH7K0XHF3ZyIsQK-OtEslOae6IQnJ69E8uyL7Tc3NcY/edit?usp=sharing)
- Discussion about user interaction design (vs visual design)
- Lots of inconsistencies with user interaction behaviour across different layer types, whenever different modes selected, etc. Should be more consistent.
- Zoom behavior is different on different layers and doesn't always have visual indicator https://github.com/napari/napari/issues/4837
- There must be so many more of these inconsistencies, how do we figure out where they all are?
- [Previous design hueristics audit 2020](https://github.com/napari/product-heuristics-2020)
- Do a keybinding comparison across different layertypes
- Do we need slightly more complicated tasks than the last UI design audit, so we can find
- Missing user interactions
- slice interpolation for labels (experimental PR over at zarpaint https://github.com/jni/zarpaint/pull/32)
- propagation of a new label ID across timepoints (Draga wants this. Perhaps https://www.napari-hub.org/plugins/napari-nD-annotator could help?)
- Gen wants a label "laser cut" function. Eg: two touching nuclei in a labels layer, you want to cut across the join to separate them. Sure, you could try a watershed split, but that's a bit slow and often you have to re-merge extra unwanted fragments later. Instead, what I want is like a label laser line that will relabel several slices deep at once. This will relabel pixels across the join, but leave any background pixels untouched. Then I can use the fill tool on one side of the touching nuclei.
- TODO: Draga/Gen to add an issue (first in zarpaint? Then in napari proper)
## 2022-07-07
- Juan/Nick: NumFOCUS meeting
- Andy:
- Isabela: [Re: 06-09 discussion](https://hackmd.io/VSaKh4hMQ12Bn7uWD_ij6A?both#2022-06-09) of [layer control UI work](https://github.com/napari/napari/issues/3975#issuecomment-1029514216) since we had a different group of people today.
## 2022-06-23
- Nathan: npe2 update
- Nathan: menu items
- how does one plugin declare it wants to go in another plugin's menu
- what to do with name clashes
- napari/npe2#161
- hackmd -> nap. Nathan+Juan to schedule time and hack
- Draga: cookiecutter
- Juan+Andy: tiny async code mergeable?
### Action items:
- point to plugin issues npe2 issue in Zulip
- nathan + Juan to hack on napari menus nap
## 2022-06-09
- Jun/Jaime: Request for comments for [NAP-2 approval](https://github.com/napari/napari/pull/4602). Main discussion points are summarized in the PR description.
- Isabela: layer controls UI
- Following up on [work from way-back forever ago](https://github.com/napari/napari/issues/3975#issuecomment-1029514216)
- Three angles to consider: consistent controls (ie. slider, drop down, etc.) for layer controls, how the tabs interact, how we sort/group layer controls ([messy sorting ideas started here](https://docs.google.com/spreadsheets/d/1RCHD4Wfb9D5Lf2eG_F-U4SgLTwtp_kLzudVJOysWW5Y/edit?usp=sharing)).
- Isabela: another alt text event in August?
## 2022-05-26
- Release update:
- revert supporting both napari builtin plugins
- add formats support for our npe2 builtin reader
- change display name to 'napari-builtins'
- Future: pull out builtins to its own napari-builtins package
- Jun<>Draga: ABRF GUI file opening workflow
- napari <> [astronomers](https://foggie.science/who-we-are.html) meeting happened this morning
- background: "We primarily use napari for visualizing 3D gas information in the galaxy evolution simulations called FOGGIE (Figuring Out Gas & Galaxies In Enzo, where Enzo is the name of the code the simulations are run in). We typically use yt (https://yt-project.org/) for reading in the datasets and quantitative analysis, but yt does not have an interactive tool so “playing around” with visualizing the data is very difficult."
- their requests
- A read-out of the vector of the angle of view, so that the same angle in the viewer could be reproduced at a later time
- This is viewer.camera.angles
- Axis ticks or some other way to get a physical location/size of a particular feature identified by-eye in the visualization
- viewer.scale_bar.visible = True
- viewer.scale_bar.unit = 'Mpc'
- A way to visualize a large amount of particle data in 3D
- Andy helped them resolve this live: setting particle size < 1
- Didn’t quite have time to mention this one, but: a way to save the viewer image to file that’s maybe a bit more streamlined than taking a screenshot
- setting a tracks layer for a "parcel" instead of a point
- ability to dynamically downsample their data (simulated data, ~20GB per snapshot (and they have ~2500 snapshots for a full simulation run))
- Talley: napari-spacemouse demo
- LayerGroups: Isabela proposed thinking of groups as labels rather than a tree/DAG (directed acyclic graph)
### Last week's Agenda
- Jun: Bundle PRs
- [Bundle update](https://github.com/napari/napari/pull/4422) PR needs to go in and needs review
- [Declarative bundle](https://github.com/napari/napari/pull/4404) file PR also needs discussion
- Draga: adding reader preferences to the GUI
## New action items
------
At the end of the meeting:
- Copy the contents of this document to a new file in https://github.com/napari/meeting-notes
- Clear out the Agenda from last meeting