diff --git a/docs/release/release_0_6_5.md b/docs/release/release_0_6_5.md index bc907ca75..5f7e6ba4b 100644 --- a/docs/release/release_0_6_5.md +++ b/docs/release/release_0_6_5.md @@ -3,7 +3,6 @@ *Fri, Sep 26, 2025* - We're happy to announce the release of napari 0.6.5! napari is a fast, interactive, multi-dimensional image viewer for Python. It's designed for browsing, annotating, and analyzing large multi-dimensional @@ -13,29 +12,66 @@ rendering), and the scientific Python stack (numpy, scipy). For more information, examples, and documentation, please visit our website, https://napari.org. +napari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Meso** release containing awesome new features, but some effort may be needed when updating previous projects to use this version. + ## Highlights -- Add colormap overlay ([#7832](https://github.com/napari/napari/pull/7832)) -- add option to define startup script in settings ([#8188](https://github.com/napari/napari/pull/8188)) -- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189)) -- Add a tasks manager status for plugins actions and napari processes ([#8211](https://github.com/napari/napari/pull/8211)) +### Define a startup script for custom launch behaviour +Do you have a code snippet that you always find yourself running after you launch napari? No more! You can now put this code in a script and set its path in the new `startup script` setting ([#8188](https://github.com/napari/napari/pull/8188)), and it will be executed every time napari opens. It's just a python script, so sky's the limit :) We found it particularly useful for adding custom colormaps, setting up the scale bar *just right*, or automatically launching our favourite plugin on startup. + +![Screenshot of the application settings menu highlighting the field for the startup script path](https://github.com/user-attachments/assets/7b0e5e5c-252b-45a0-ae76-aac88e488cbc) + +### Automatically tiled overlays and ColorBar overlay +Canvas overlays such as `scale_bar`, `text_overlay`, and `colorbar` overlay are now automatically tiling ([#7836](https://github.com/napari/napari/pull/7836)), preventing annoying overlap and making them easier to use without having to manage positioning. Wait, `colorbar` overlay you said? You heard it right! This is a new overlay ([#7832](https://github.com/napari/napari/pull/7832))that shows a color bar legend, and it works with any layer which uses a colormap. All of this works seamlessly with multiple overlays and even grid mode: + +```py +import napari + +viewer = napari.Viewer() + +# enable grid with stride 2 to get layers split two-by-two +viewer.grid.enabled = True +viewer.grid.stride = 2 + +# set the scale bar to gridded mode so it appears in each grid box +viewer.scale_bar.visible = True +viewer.scale_bar.gridded = True + +layers = viewer.open_sample('napari', 'lily') + +# enable color bars +for layer in layers: + layer.colorbar.visible = True +``` + +![Image depicting the napari viewer in grid mode with scale bars and color bars enabled](https://github.com/user-attachments/assets/622b2d36-11a7-4c55-9550-c82ddebc2fda) + +### Task manager will now try to prevent losing unfinished work +We added a new task manager ([#8211](https://github.com/napari/napari/pull/8211)) which automatically registers any running `thread_worker`, showing a confirmation dialog if you attempt to close napari while a task is running. + +### New `remove()` and `pop()` methods for Points and Shapes +Points and Shapes can now be easily removed, not just added :P ([#8031](https://github.com/napari/napari/pull/8031) and [#8072](https://github.com/napari/napari/pull/8072)). + +### A new and updated guide on napari Preferences +Our documentation on the napari Preferences has received a major overhaul! [Check it out here](https://napari.org/stable/guides/preferences.html#preferences)! + +TODO: does this link work? + - Migrate non-user extras to dependency-groups ([#8227](https://github.com/napari/napari/pull/8227)) +- [maint] Drop alpha mentions ([#8288](https://github.com/napari/napari/pull/8288)) - Auto generate release index with highlights and timeline ([docs#838](https://github.com/napari/docs/pull/838)) ## New Features -- Feature: labels layer with a closed predefined set of named labels + combobox selection ([#5875](https://github.com/napari/napari/pull/5875)) +- Add color bar overlay ([#7832](https://github.com/napari/napari/pull/7832)) - Tiling canvas overlays ([#7836](https://github.com/napari/napari/pull/7836)) -- Use information about units when calculate scale of layers when render ([#7889](https://github.com/napari/napari/pull/7889)) -- Add hot-reload for the devs ([#8007](https://github.com/napari/napari/pull/8007)) -- Cursor overlay ([#8017](https://github.com/napari/napari/pull/8017)) +- Add `pop()` for `Points` and `Shapes` ([#8072](https://github.com/napari/napari/pull/8072)) - add option to define startup script in settings ([#8188](https://github.com/napari/napari/pull/8188)) -- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189)) +- use `Selection` class in shapes layer ([#8297](https://github.com/napari/napari/pull/8297)) ## Improvements -- [Update] Added `remove` and `remove_selected` in Shapes and Points ([#8031](https://github.com/napari/napari/pull/8031)) -- Add Features using Features Table widget ([#8093](https://github.com/napari/napari/pull/8093)) +- Add `remove()` in Shapes and Points ([#8031](https://github.com/napari/napari/pull/8031)) - Example from SciPy 2025 tutorial; image warping ([#8111](https://github.com/napari/napari/pull/8111)) - Add a tasks manager status for plugins actions and napari processes ([#8211](https://github.com/napari/napari/pull/8211)) - Use single settings path for all `uv tool run` ([#8250](https://github.com/napari/napari/pull/8250)) @@ -46,23 +82,23 @@ https://napari.org. ## Bug Fixes - Layer controls widgets refactor ([#7355](https://github.com/napari/napari/pull/7355)) -- Set the dimensions of the label equal to the maximum value of the layers world ([#8098](https://github.com/napari/napari/pull/8098)) +- Fix effect of scaling when converting shapes to labels ([#8098](https://github.com/napari/napari/pull/8098)) - Fix disappearing points ([#8223](https://github.com/napari/napari/pull/8223)) - Fix shape position by using a stable algorithm for sorting z_position ([#8232](https://github.com/napari/napari/pull/8232)) - Remove console print action shortcut to prevent collision with command palette shortcut ([#8233](https://github.com/napari/napari/pull/8233)) - Do not update thumbnail on Labels empty slice ([#8251](https://github.com/napari/napari/pull/8251)) +- Handle affine layer metadata when splitting RGB images ([#8256](https://github.com/napari/napari/pull/8256)) - fix slice_from_axis to wrap zarr in dask to keep lazy behavior ([#8260](https://github.com/napari/napari/pull/8260)) - Add menu-xdg to XPRA containers ([#8263](https://github.com/napari/napari/pull/8263)) - Check for zarr in `images_to_stack` and use da.stack instead of np.stack ([#8267](https://github.com/napari/napari/pull/8267)) - Better handling of remote zarr ([#8268](https://github.com/napari/napari/pull/8268)) - -## API Changes - -- Expose force_sync context manager ([#7908](https://github.com/napari/napari/pull/7908)) +- Use custom logger formatting to most of argument to string ([#8305](https://github.com/napari/napari/pull/8305)) ## Documentation - Use EffVer ([#8243](https://github.com/napari/napari/pull/8243)) +- Use shared workflows for build docs ([#8308](https://github.com/napari/napari/pull/8308)) +- Bump napari-sphinx-theme in deps and constraints ([#8315](https://github.com/napari/napari/pull/8315)) - Add funding information to the home page ([docs#818](https://github.com/napari/docs/pull/818)) - Update version switcher for 0.6.4 ([docs#826](https://github.com/napari/docs/pull/826)) - Fix version switcher URL to prevent problems with unversioned pages ([docs#827](https://github.com/napari/docs/pull/827)) @@ -71,14 +107,15 @@ https://napari.org. - Fix @jaimergp's last name ([docs#835](https://github.com/napari/docs/pull/835)) - Auto generate release index with highlights and timeline ([docs#838](https://github.com/napari/docs/pull/838)) - Add EffVer to release guide and link to checklist template ([docs#839](https://github.com/napari/docs/pull/839)) +- Enable dark mode for website ([docs#840](https://github.com/napari/docs/pull/840)) +- Add draft of 0.6.5 release notes ([docs#845](https://github.com/napari/docs/pull/845)) +- Add documentation for startup script. ([docs#846](https://github.com/napari/docs/pull/846)) +- Add some info about running python scripts via cli ([docs#847](https://github.com/napari/docs/pull/847)) +- Add note about workers registration as tasks and close confirmation dialog when closing napari GUI via close button ([docs#851](https://github.com/napari/docs/pull/851)) +- Release notes v0.6.5 ([docs#853](https://github.com/napari/docs/pull/853)) ## Other Pull Requests -- Add codespell support (config, workflow to detect/not fix) and make it fix few typos ([#7619](https://github.com/napari/napari/pull/7619)) -- Clipping planes control widget ([#7993](https://github.com/napari/napari/pull/7993)) -- Add cell tracking example ([#8051](https://github.com/napari/napari/pull/8051)) -- [Update] Added `pop` for `Points` and `Shapes` ([#8072](https://github.com/napari/napari/pull/8072)) -- Welcome widget as an overlay ([#8117](https://github.com/napari/napari/pull/8117)) - Improve workflow naming by prefixing triage- doc- make- ([#8159](https://github.com/napari/napari/pull/8159)) - Move the test that requires `make_napari_viewer` from `test_qt_viewer` ([#8176](https://github.com/napari/napari/pull/8176)) - Bump `superqt` min version ([#8212](https://github.com/napari/napari/pull/8212)) @@ -101,50 +138,56 @@ https://napari.org. - [maint] Revert back to windows-2022 for windows runners ([#8265](https://github.com/napari/napari/pull/8265)) - Update `dask`, `hypothesis`, `pydantic`, `qtconsole`, `scipy`, `tifffile` ([#8270](https://github.com/napari/napari/pull/8270)) - Add napari to trove classifiers to populate builtins on napari hub ([#8277](https://github.com/napari/napari/pull/8277)) -- [maint] Drop alpha mentions ([#8288](https://github.com/napari/napari/pull/8288)) - Add release checklist template ([#8295](https://github.com/napari/napari/pull/8295)) - Update `coverage`, `dask`, `hypothesis`, `lxml`, `numpy`, `psutil`, `tensorstore`, `tifffile` ([#8296](https://github.com/napari/napari/pull/8296)) - Move Jaime Rodríguez-Guerra to core-team section of CITATION.cff ([#8298](https://github.com/napari/napari/pull/8298)) +- Do not use verbose mode for headless test ([#8300](https://github.com/napari/napari/pull/8300)) +- Migrate macos-13 to macos-15-intel runner ([#8301](https://github.com/napari/napari/pull/8301)) +- Update `remove_ready_to_merge` so it only sweeps on pushed and crons ([#8302](https://github.com/napari/napari/pull/8302)) +- [maint] Revert docs constraints changes from #8270 ([#8307](https://github.com/napari/napari/pull/8307)) +- Fix constraints generation ([#8309](https://github.com/napari/napari/pull/8309)) +- CI: Fix `github.rest.issues.removeLabel` call ([#8311](https://github.com/napari/napari/pull/8311)) - Add pooch cache for build docs ([docs#830](https://github.com/napari/docs/pull/830)) - ci(dependabot): bump the github-actions group with 3 updates ([docs#831](https://github.com/napari/docs/pull/831)) +- add docs/release/index.md to gitignore ([docs#843](https://github.com/napari/docs/pull/843)) - Add Jaime Rodríguez-Guerra to core-team ([docs#844](https://github.com/napari/docs/pull/844)) +- Bump python to 3.12 for build docs workflows ([docs#848](https://github.com/napari/docs/pull/848)) +- Use shared workflow for build docs ([docs#850](https://github.com/napari/docs/pull/850)) -## 9 authors added to this release (alphabetical) +## 12 authors added to this release (alphabetical) (+) denotes first-time contributors 🥳 -- [Daniel Althviz Moré](https://github.com/napari/napari/commits?author=dalthviz) - @dalthviz +- [Daniel Althviz Moré](https://github.com/napari/napari/commits?author=dalthviz) ([docs](https://github.com/napari/docs/commits?author=dalthviz)) - @dalthviz - [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki)) - @Czaki - [Jaime Rodríguez-Guerra](https://github.com/napari/napari/commits?author=jaimergp) ([docs](https://github.com/napari/docs/commits?author=jaimergp)) - @jaimergp +- [Johannes Soltwedel](https://github.com/napari/napari/commits?author=jo-mueller) - @jo-mueller - [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni - [Kanai Potts](https://github.com/napari/napari/commits?author=8bitbiscuit) - @8bitbiscuit -- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag +- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag)) - @brisvag - [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm - [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD)) - @psobolewskiPhD +- [Rahul Kumar](https://github.com/napari/napari/commits?author=rahul713rk) - @rahul713rk +- [rwkozar](https://github.com/napari/napari/commits?author=rwkozar) - @rwkozar - [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko)) - @TimMonko - -## 18 reviewers added to this release (alphabetical) +## 15 reviewers added to this release (alphabetical) (+) denotes first-time contributors 🥳 - [Andrew Sweet](https://github.com/napari/docs/commits?author=andy-sweet) - @andy-sweet - [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc -- [Daniel Althviz Moré](https://github.com/napari/napari/commits?author=dalthviz) - @dalthviz +- [Daniel Althviz Moré](https://github.com/napari/napari/commits?author=dalthviz) ([docs](https://github.com/napari/docs/commits?author=dalthviz)) - @dalthviz - [Davis Bennett](https://github.com/napari/docs/commits?author=d-v-b) - @d-v-b - [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila - [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki)) - @Czaki - [Jaime Rodríguez-Guerra](https://github.com/napari/napari/commits?author=jaimergp) ([docs](https://github.com/napari/docs/commits?author=jaimergp)) - @jaimergp -- [Johannes Soltwedel](https://github.com/napari/docs/commits?author=jo-mueller) - @jo-mueller +- [Johannes Soltwedel](https://github.com/napari/napari/commits?author=jo-mueller) - @jo-mueller - [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni -- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag -- [Marcelo Zoccoler](https://github.com/napari/docs/commits?author=zoccoler) - @zoccoler +- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag)) - @brisvag - [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm - [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD)) - @psobolewskiPhD -- [Rahul Kumar](https://github.com/napari/docs/commits?author=rahul713rk) - @rahul713rk -- [rwkozar](https://github.com/napari/docs/commits?author=rwkozar) - @rwkozar -- [Sesan](https://github.com/napari/docs/commits?author=Olusesan) - @Olusesan +- [Rahul Kumar](https://github.com/napari/napari/commits?author=rahul713rk) - @rahul713rk +- [rwkozar](https://github.com/napari/napari/commits?author=rwkozar) - @rwkozar - [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko)) - @TimMonko -- [Yaroslav Halchenko](https://github.com/napari/docs/commits?author=yarikoptic) - @yarikoptic -