[{"url":"https://api.github.com/repos/napari/napari/releases/383029538","assets_url":"https://api.github.com/repos/napari/napari/releases/383029538/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/383029538/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.1","id":383029538,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84W1JEi","tag_name":"v0.9.1","target_commitish":"9c06e25a745586e84021a1bc86b1a315ded6205f","name":"v0.9.1","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-09-04T20:23:51Z","updated_at":"2026-09-04T21:53:52Z","published_at":"2026-09-04T21:42:59Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/544952920","id":544952920,"node_id":"RA_kwDOCJ0aI84ge1JY","name":"napari-0.9.1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46801,"digest":"sha256:d75b429eb7eb52716c385523da8cbc2559fce89c951a7ce1981b98129b8e91b8","download_count":1,"created_at":"2026-09-04T21:49:38Z","updated_at":"2026-09-04T21:49:38Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544952245","id":544952245,"node_id":"RA_kwDOCJ0aI84ge0-1","name":"napari-0.9.1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":704254444,"digest":"sha256:5c8b40fd1928fd2c226012ed6e411d69dccbc9e19198de33a1a30f407b24f76e","download_count":32,"created_at":"2026-09-04T21:49:13Z","updated_at":"2026-09-04T21:49:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544957935","id":544957935,"node_id":"RA_kwDOCJ0aI84ge2Xv","name":"napari-0.9.1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40529,"digest":"sha256:6ea4a7266fb64401471308aa2378d6f7a49820ad7b0a8a962cf7fda1dd3e742d","download_count":2,"created_at":"2026-09-04T21:53:33Z","updated_at":"2026-09-04T21:53:33Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544957709","id":544957709,"node_id":"RA_kwDOCJ0aI84ge2UN","name":"napari-0.9.1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":503638343,"digest":"sha256:6e8727b5745b79c20a11efd8c2e52d941aa35c9df553f9a39652116957fc41f4","download_count":71,"created_at":"2026-09-04T21:53:17Z","updated_at":"2026-09-04T21:53:33Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544958162","id":544958162,"node_id":"RA_kwDOCJ0aI84ge2bS","name":"napari-0.9.1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37898,"digest":"sha256:5abde6169925acf759d8fa31b65c4dab8682e0f12fc4ae77fd75bc3ebe293224","download_count":0,"created_at":"2026-09-04T21:53:52Z","updated_at":"2026-09-04T21:53:52Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544957893","id":544957893,"node_id":"RA_kwDOCJ0aI84ge2XF","name":"napari-0.9.1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":514767200,"digest":"sha256:bb7b9650bc7a927fbff2972c053fda22d030261e3e4ea682f29b7c3b238aa7f5","download_count":32,"created_at":"2026-09-04T21:53:31Z","updated_at":"2026-09-04T21:53:51Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544946507","id":544946507,"node_id":"RA_kwDOCJ0aI84gezlL","name":"napari-0.9.1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3832509,"digest":"sha256:546eab2a65bc3e929e610daac1cdd9bd36886d98a4fe0888f5e1dfa12e15963b","download_count":4,"created_at":"2026-09-04T21:42:59Z","updated_at":"2026-09-04T21:42:59Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544956272","id":544956272,"node_id":"RA_kwDOCJ0aI84ge19w","name":"napari-0.9.1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":604911744,"digest":"sha256:3124ab5f23f5b915ae27f04d743305f60611f09d5889d16d7a30a141d4517752","download_count":162,"created_at":"2026-09-04T21:51:56Z","updated_at":"2026-09-04T21:52:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544956663","id":544956663,"node_id":"RA_kwDOCJ0aI84ge2D3","name":"napari-0.9.1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36775,"digest":"sha256:ef8decb188ce4f5e62e8d26b774da599509ea42ddcc711fded51b96758bc68bc","download_count":0,"created_at":"2026-09-04T21:52:25Z","updated_at":"2026-09-04T21:52:25Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544946505","id":544946505,"node_id":"RA_kwDOCJ0aI84gezlJ","name":"napari-0.9.1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3403020,"digest":"sha256:9a0712de1ede928e1274cec7c0d04a263eaec8be76e231435d99f988cfe51a98","download_count":3,"created_at":"2026-09-04T21:42:59Z","updated_at":"2026-09-04T21:42:59Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1/napari-0.9.1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.1","body":"# napari 0.9.1\n\n*Fri, Sep 04, 2026*\n\nWe're happy to announce the bugfix release of napari 0.9.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nThis is a bug fix release, primarily fixing a regression in how dock widgets are resized.\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Micro** release containing bug fixes, so we encourage upgrading.\n\n## Improvements\n\n- Allow single widget in layer controls ([#9448](https://github.com/napari/napari/pull/9448))\n\n## Bug Fixes\n\n- [bug fix] Keep playback in sync when dimension ranges change ([#9440](https://github.com/napari/napari/pull/9440))\n- Fix out-of-sync extent in async mode ([#9459](https://github.com/napari/napari/pull/9459))\n- Revert widget size policy change ([#9484](https://github.com/napari/napari/pull/9484))\n- Revert the str cast of shortcut in `bind_shortcut` from #9076 ([#9488](https://github.com/napari/napari/pull/9488))\n\n## Documentation\n\n- Prefetch data that are problematic and causing docs build failure ([docs#1103](https://github.com/napari/docs/pull/1103))\n- Fix incorrect image link formatting in 0.9 release notes ([docs#1123](https://github.com/napari/docs/pull/1123))\n- Add 0.9.1 release notes ([docs#1128](https://github.com/napari/docs/pull/1128))\n- Update version switch to set 0.9.1 to default release  ([docs#1129](https://github.com/napari/docs/pull/1129))\n- Update README image using the imshow.py example ([#9467](https://github.com/napari/napari/pull/9467))\n\n## Other Pull Requests\n\n- [pre-commit.ci] pre-commit autoupdate ([#9445](https://github.com/napari/napari/pull/9445))\n\n\n## 5 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Grzegorz Bokota](https://github.com/napari/docs/commits?author=Czaki) - @Czaki\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel\n- [Suyash Naik](https://github.com/napari/napari/commits?author=Suyash-Naik) - @Suyash-Naik +\n\n## 10 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/docs/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Grzegorz Bokota](https://github.com/napari/docs/commits?author=Czaki) - @Czaki\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel\n- [Peter Sobolewski](https://github.com/napari/docs/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Suyash Naik](https://github.com/napari/napari/commits?author=Suyash-Naik) - @Suyash-Naik +\n- [Tim Monko](https://github.com/napari/docs/commits?author=TimMonko) - @TimMonko\n","mentions_count":10},{"url":"https://api.github.com/repos/napari/napari/releases/383009407","assets_url":"https://api.github.com/repos/napari/napari/releases/383009407/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/383009407/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.1rc1","id":383009407,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84W1EJ_","tag_name":"v0.9.1rc1","target_commitish":"9c06e25a745586e84021a1bc86b1a315ded6205f","name":"v0.9.1rc1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-09-04T20:23:51Z","updated_at":"2026-09-04T21:05:09Z","published_at":"2026-09-04T20:53:35Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/544897797","id":544897797,"node_id":"RA_kwDOCJ0aI84gensF","name":"napari-0.9.1rc1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46858,"digest":"sha256:92bc4f2c9a4487e06856ad4d75d5ea3ccc9118727905873a8078233a1b178e09","download_count":1,"created_at":"2026-09-04T20:59:54Z","updated_at":"2026-09-04T20:59:54Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544897460","id":544897460,"node_id":"RA_kwDOCJ0aI84genm0","name":"napari-0.9.1rc1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":704254453,"digest":"sha256:108c2383ce44e000b572ed040676613b88e838f82463cc25a2b5179e6c0cd85c","download_count":2,"created_at":"2026-09-04T20:59:37Z","updated_at":"2026-09-04T20:59:54Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544901662","id":544901662,"node_id":"RA_kwDOCJ0aI84geooe","name":"napari-0.9.1rc1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40586,"digest":"sha256:9cf89caf3ceaf330c6263443c331f2bdeb9a6e089bea0741b40df8e51dfaa773","download_count":0,"created_at":"2026-09-04T21:02:40Z","updated_at":"2026-09-04T21:02:40Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544901358","id":544901358,"node_id":"RA_kwDOCJ0aI84geoju","name":"napari-0.9.1rc1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":503639595,"digest":"sha256:04569ef381d11e30c937bf23e31c4bc3d88493539d88b57ce53776953531f862","download_count":1,"created_at":"2026-09-04T21:02:23Z","updated_at":"2026-09-04T21:02:39Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544903812","id":544903812,"node_id":"RA_kwDOCJ0aI84gepKE","name":"napari-0.9.1rc1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37955,"digest":"sha256:a7d2bf3773287ed3c2ebafaf8b495c93bce1e04aa541ddcc18efe7dbfdec6d2f","download_count":1,"created_at":"2026-09-04T21:05:09Z","updated_at":"2026-09-04T21:05:09Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544903502","id":544903502,"node_id":"RA_kwDOCJ0aI84gepFO","name":"napari-0.9.1rc1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":514766767,"digest":"sha256:d0341068d34821d7410d78633a52fac7c63534a32adc1bbde9a8ba7a3d0e82bd","download_count":1,"created_at":"2026-09-04T21:04:44Z","updated_at":"2026-09-04T21:05:08Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544891227","id":544891227,"node_id":"RA_kwDOCJ0aI84gemFb","name":"napari-0.9.1rc1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3832557,"digest":"sha256:881db81f02a85133432a2e27dfc9004e6b8d7d1ded3a6d06b73a1f6ccf2350ab","download_count":6,"created_at":"2026-09-04T20:53:34Z","updated_at":"2026-09-04T20:53:34Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544902048","id":544902048,"node_id":"RA_kwDOCJ0aI84geoug","name":"napari-0.9.1rc1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":604912216,"digest":"sha256:f7c28a38da9d918f033ddedd55c28b0bfa76de563f17957e1fa262593ac785bf","download_count":2,"created_at":"2026-09-04T21:03:06Z","updated_at":"2026-09-04T21:03:20Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544902237","id":544902237,"node_id":"RA_kwDOCJ0aI84geoxd","name":"napari-0.9.1rc1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36832,"digest":"sha256:930cac4467d5b2c52684280ba5c8d2962d2106a391f13771859256309a2614c9","download_count":1,"created_at":"2026-09-04T21:03:20Z","updated_at":"2026-09-04T21:03:21Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544891224","id":544891224,"node_id":"RA_kwDOCJ0aI84gemFY","name":"napari-0.9.1rc1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3402987,"digest":"sha256:dbee71c97e9fcab7ef69a9e7fa470c800f9e2e3719ddd1c7527c1242cd3dcd7a","download_count":5,"created_at":"2026-09-04T20:53:34Z","updated_at":"2026-09-04T20:53:34Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1rc1/napari-0.9.1rc1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.1rc1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.1rc1","body":"# napari 0.9.1\n\n*Fri, Sep 04, 2026*\n\nWe're happy to announce the bugfix release of napari 0.9.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nThis is a bug fix release, primarily fixing a regression in how dock widgets are resized.\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Micro** release containing bug fixes, so we encourage upgrading.\n\n## Improvements\n\n- Allow single widget in layer controls ([#9448](https://github.com/napari/napari/pull/9448))\n\n## Bug Fixes\n\n- [bug fix] Keep playback in sync when dimension ranges change ([#9440](https://github.com/napari/napari/pull/9440))\n- Fix out-of-sync extent in async mode ([#9459](https://github.com/napari/napari/pull/9459))\n- Revert widget size policy change ([#9484](https://github.com/napari/napari/pull/9484))\n- Revert the str cast of shortcut in `bind_shortcut` from #9076 ([#9488](https://github.com/napari/napari/pull/9488))\n\n## Documentation\n\n- Prefetch data that are problematic and causing docs build failure ([docs#1103](https://github.com/napari/docs/pull/1103))\n- Fix incorrect image link formatting in 0.9 release notes ([docs#1123](https://github.com/napari/docs/pull/1123))\n- Add 0.9.1 release notes ([docs#1128](https://github.com/napari/docs/pull/1128))\n- Update version switch to set 0.9.1 to default release  ([docs#1129](https://github.com/napari/docs/pull/1129))\n- Update README image using the imshow.py example ([#9467](https://github.com/napari/napari/pull/9467))\n\n## Other Pull Requests\n\n- [pre-commit.ci] pre-commit autoupdate ([#9445](https://github.com/napari/napari/pull/9445))\n\n\n## 5 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Grzegorz Bokota](https://github.com/napari/docs/commits?author=Czaki) - @Czaki\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel\n- [Suyash Naik](https://github.com/napari/napari/commits?author=Suyash-Naik) - @Suyash-Naik +\n\n## 10 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/docs/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Grzegorz Bokota](https://github.com/napari/docs/commits?author=Czaki) - @Czaki\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel\n- [Peter Sobolewski](https://github.com/napari/docs/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Suyash Naik](https://github.com/napari/napari/commits?author=Suyash-Naik) - @Suyash-Naik +\n- [Tim Monko](https://github.com/napari/docs/commits?author=TimMonko) - @TimMonko\n","mentions_count":10},{"url":"https://api.github.com/repos/napari/napari/releases/382967133","assets_url":"https://api.github.com/repos/napari/napari/releases/382967133/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/382967133/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.1a1","id":382967133,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84W051d","tag_name":"v0.9.1a1","target_commitish":"7f14b70909f72a331096e5e27d7eed13d8565df4","name":"v0.9.1a1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-09-04T17:16:30Z","updated_at":"2026-09-04T19:36:32Z","published_at":"2026-09-04T19:24:43Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/544801002","id":544801002,"node_id":"RA_kwDOCJ0aI84geQDq","name":"napari-0.9.1a1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46811,"digest":"sha256:cfcd975be5ebe46431771349134f058dac056db63288e8becd7b008c6af63366","download_count":1,"created_at":"2026-09-04T19:30:53Z","updated_at":"2026-09-04T19:30:53Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544800595","id":544800595,"node_id":"RA_kwDOCJ0aI84geP9T","name":"napari-0.9.1a1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":704254450,"digest":"sha256:37e2828b5f4703256bc7762bef707ea51d2a1b4191a16fc824d38438fbe56217","download_count":3,"created_at":"2026-09-04T19:30:29Z","updated_at":"2026-09-04T19:30:52Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544804637","id":544804637,"node_id":"RA_kwDOCJ0aI84geQ8d","name":"napari-0.9.1a1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40539,"digest":"sha256:304e95995659b2d887265bf1c669151dbc785cdd14861104d097e86d1be1e8d4","download_count":0,"created_at":"2026-09-04T19:34:50Z","updated_at":"2026-09-04T19:34:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544804358","id":544804358,"node_id":"RA_kwDOCJ0aI84geQ4G","name":"napari-0.9.1a1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":503638233,"digest":"sha256:abba03b6790027e0e7dd337aabffe546c8353aa511639610c02705c684d209f5","download_count":1,"created_at":"2026-09-04T19:34:30Z","updated_at":"2026-09-04T19:34:49Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544806330","id":544806330,"node_id":"RA_kwDOCJ0aI84geRW6","name":"napari-0.9.1a1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37908,"digest":"sha256:1d16b38b9f4319deb17350ceb5cef4ead5a174e0030a069c988cc62b0dfc5139","download_count":1,"created_at":"2026-09-04T19:36:31Z","updated_at":"2026-09-04T19:36:32Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544805959","id":544805959,"node_id":"RA_kwDOCJ0aI84geRRH","name":"napari-0.9.1a1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":514765433,"digest":"sha256:d564db2e3e5ec3a8763e06385fe52839fae067fdd774743412b13595790f5080","download_count":1,"created_at":"2026-09-04T19:36:11Z","updated_at":"2026-09-04T19:36:31Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544794819","id":544794819,"node_id":"RA_kwDOCJ0aI84geOjD","name":"napari-0.9.1a1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3832523,"digest":"sha256:40b409781cadc8aff0ba5d7f8a30b2165a43810651627c44cbe35d40fa0aad1e","download_count":3,"created_at":"2026-09-04T19:24:42Z","updated_at":"2026-09-04T19:24:42Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544803709","id":544803709,"node_id":"RA_kwDOCJ0aI84geQt9","name":"napari-0.9.1a1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":604912064,"digest":"sha256:0364ea20913efd944784f6988c44e116f55fb99a3653eb6bf95229414a2e9b1b","download_count":1,"created_at":"2026-09-04T19:33:47Z","updated_at":"2026-09-04T19:34:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544804011","id":544804011,"node_id":"RA_kwDOCJ0aI84geQyr","name":"napari-0.9.1a1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36785,"digest":"sha256:c6923102e05f6df10ff70c6aeca6f2e090fcbad395affd67f86b2de4b6d466b3","download_count":1,"created_at":"2026-09-04T19:34:04Z","updated_at":"2026-09-04T19:34:04Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/544794826","id":544794826,"node_id":"RA_kwDOCJ0aI84geOjK","name":"napari-0.9.1a1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3402741,"digest":"sha256:9e8c155ea2902fcc39d1ce2c9261cbeec566a2cf0637753034881fc7091fdcfb","download_count":3,"created_at":"2026-09-04T19:24:42Z","updated_at":"2026-09-04T19:24:42Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.1a1/napari-0.9.1a1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.1a1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.1a1","body":"# napari 0.9.1\n\n*Fri, Sep 04, 2026*\n\nWe're happy to announce the bugfix release of napari 0.9.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nThis is a bug fix release, primarily fixing a regression in how dock widgets are resized.\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Micro** release containing bug fixes, so we encourage upgrading.\n\n## Improvements\n\n- Allow single widget in layer controls ([#9448](https://github.com/napari/napari/pull/9448))\n\n## Bug Fixes\n\n- [bug fix] Keep playback in sync when dimension ranges change ([#9440](https://github.com/napari/napari/pull/9440))\n- Fix out-of-sync extent in async mode ([#9459](https://github.com/napari/napari/pull/9459))\n- Revert widget size policy change ([#9484](https://github.com/napari/napari/pull/9484))\n- Revert the str cast of shortcut in `bind_shortcut` from #9076 ([#9488](https://github.com/napari/napari/pull/9488))\n\n## Documentation\n\n- Prefetch data that are problematic and causing docs build failure ([docs#1103](https://github.com/napari/docs/pull/1103))\n- Fix incorrect image link formatting in 0.9 release notes ([docs#1123](https://github.com/napari/docs/pull/1123))\n- Add 0.9.1 release notes ([docs#1128](https://github.com/napari/docs/pull/1128))\n- Update version switch to set 0.9.1 to default release  ([docs#1129](https://github.com/napari/docs/pull/1129))\n- Update README image using the imshow.py example ([#9467](https://github.com/napari/napari/pull/9467))\n\n## Other Pull Requests\n\n- [pre-commit.ci] pre-commit autoupdate ([#9445](https://github.com/napari/napari/pull/9445))\n\n\n## 5 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Grzegorz Bokota](https://github.com/napari/docs/commits?author=Czaki) - @Czaki\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel\n- [Suyash Naik](https://github.com/napari/napari/commits?author=Suyash-Naik) - @Suyash-Naik +\n\n## 10 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/docs/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Grzegorz Bokota](https://github.com/napari/docs/commits?author=Czaki) - @Czaki\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel\n- [Peter Sobolewski](https://github.com/napari/docs/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Suyash Naik](https://github.com/napari/napari/commits?author=Suyash-Naik) - @Suyash-Naik +\n- [Tim Monko](https://github.com/napari/docs/commits?author=TimMonko) - @TimMonko\n","mentions_count":10},{"url":"https://api.github.com/repos/napari/napari/releases/376576897","assets_url":"https://api.github.com/repos/napari/napari/releases/376576897/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/376576897/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0","id":376576897,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84WchuB","tag_name":"v0.9.0","target_commitish":"908b3ed80ccbe73a3393f0207aafc6d7a45e116a","name":"v0.9.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-08-25T16:09:15Z","updated_at":"2026-08-25T17:33:01Z","published_at":"2026-08-25T17:14:22Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/529536310","id":529536310,"node_id":"RA_kwDOCJ0aI84fkBU2","name":"napari-0.9.0-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46881,"digest":"sha256:63dfcd489d3cf1b996d47e9cf81e1b0ef3f688e82cfcbc2439fb3b5f7eb11acb","download_count":2,"created_at":"2026-08-25T17:23:09Z","updated_at":"2026-08-25T17:23:09Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529535512","id":529535512,"node_id":"RA_kwDOCJ0aI84fkBIY","name":"napari-0.9.0-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":637192684,"digest":"sha256:d3affa800afd9e26250ddabe2fccfbd9f12c83172ed9ba6eb26a35bd4359e3fd","download_count":51,"created_at":"2026-08-25T17:22:36Z","updated_at":"2026-08-25T17:23:08Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529539887","id":529539887,"node_id":"RA_kwDOCJ0aI84fkCMv","name":"napari-0.9.0-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40857,"digest":"sha256:553495b2b42379541e0966b9ddca6dbe2f2398e12194eeeed2cd11588907f9dd","download_count":1,"created_at":"2026-08-25T17:26:18Z","updated_at":"2026-08-25T17:26:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529539287","id":529539287,"node_id":"RA_kwDOCJ0aI84fkCDX","name":"napari-0.9.0-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":505595595,"digest":"sha256:c059e72d2fc6041201ef4962ad82d16b8ee7607d73d9f94ec5f8075575b82264","download_count":140,"created_at":"2026-08-25T17:25:49Z","updated_at":"2026-08-25T17:26:17Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529546944","id":529546944,"node_id":"RA_kwDOCJ0aI84fkD7A","name":"napari-0.9.0-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40254,"digest":"sha256:13ef06a9c5a952b2f34aa43dae374985acc6753796ade9f9717ee0c86a8f6b5a","download_count":2,"created_at":"2026-08-25T17:33:01Z","updated_at":"2026-08-25T17:33:01Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529546432","id":529546432,"node_id":"RA_kwDOCJ0aI84fkDzA","name":"napari-0.9.0-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":547635066,"digest":"sha256:e780652b4677a643a69db90b94b6e3ce26c3ace6eef410e1004530c464ec8d2e","download_count":60,"created_at":"2026-08-25T17:32:32Z","updated_at":"2026-08-25T17:32:59Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529525806","id":529525806,"node_id":"RA_kwDOCJ0aI84fj-wu","name":"napari-0.9.0-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3696463,"digest":"sha256:821516d9954b383ccb63d9573b625375ef859751539f36b3844190fee39bb654","download_count":3,"created_at":"2026-08-25T17:14:13Z","updated_at":"2026-08-25T17:14:14Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529539041","id":529539041,"node_id":"RA_kwDOCJ0aI84fkB_h","name":"napari-0.9.0-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":605352992,"digest":"sha256:044172140dd0b138ff79f59eb1324864f51c858a87790cf471dc6da31807e574","download_count":283,"created_at":"2026-08-25T17:25:35Z","updated_at":"2026-08-25T17:25:56Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529539439","id":529539439,"node_id":"RA_kwDOCJ0aI84fkCFv","name":"napari-0.9.0-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36991,"digest":"sha256:a52e375ba01c9f4bde9305fc545b5dc8a9d1e4be3129517e9023a3a4946101ae","download_count":3,"created_at":"2026-08-25T17:25:57Z","updated_at":"2026-08-25T17:25:57Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529525805","id":529525805,"node_id":"RA_kwDOCJ0aI84fj-wt","name":"napari-0.9.0.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3267570,"digest":"sha256:697a24165f918e09bf03c31ccddaaf38114d73cb1474cd179ef19d26f88ddeb5","download_count":2,"created_at":"2026-08-25T17:14:13Z","updated_at":"2026-08-25T17:14:22Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0/napari-0.9.0.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0","body":"# napari 0.9.0\n\n*Tue, Aug 25, 2026*\n\nWe're happy to announce the release of napari 0.9.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Auto-labelling of viewer axes\n\nnapari 0.5.0 laid the ground work for more accurate metadata handling by\nallowing users and plugins to set the `axis_labels` on layers. napari 0.9.0\n*finally* capitalises on that work by automatically labelling viewer axes based\non the axis labels of layers present in the viewer.\n([#9282](https://github.com/napari/napari/pull/9282))\n\nNow, opening a dataset with labelled axes will result in correctly labelled\naxes in the viewer:\n\n![napari screenshot showing inherited labeled viewer axes](../_static/images/axis-labels.png)\n\nAdditionally, when you create a new layer from an existing one using the\nbuttons in the GUI, the new layer now inherits the axis labels of the layer(s)\nit was derived from. ([#9293](https://github.com/napari/napari/pull/9293))\n\nThere is still work to be done here. For example, if layers have labels that\nare inconsistent with each other, napari will simply ignore layers with fewer\ndimensions, or layers added later. But, for most use cases, layer and viewer\nmetadata will now be much more informative!\n\n### Xarray metadata is now inherited\n\nIn the same vein, if you work with [Xarray](https://docs.xarray.dev/) — common in climate,\ngeoscience, and many places where data ships with labelled coordinates — napari\nnow reads metadata straight from your `DataArray`s. When you add an xarray\nobject to the viewer, napari will use its dimension names as axis labels, infer\n`scale` and `translate` from the coordinate values, and pick up `units` from\nCF-convention `units` attributes on coordinates ([#9316](https://github.com/napari/napari/pull/9316)).\nThis closed an 8-year old, double-digit, nearly-as-old-as-napari-itself issue!\n([#14](https://github.com/napari/napari/issues/14))\n\n### Status bar coordinates as floats\n\nContinuing on the theme of improved metadata, when scale and/or unit metadata\nis set on the layer, the status bar coordinates now have increased precision,\nwhere before they were limited to just integers. This means you can have more\naccurate physical estimates of your data coordinates when exploring data.\n([#9287](https://github.com/napari/napari/pull/9287))\n\n### Layer controls for multiple selected layers\n\nUntil now, layer controls only appeared when a single layer was selected. Now,\nnapari dynamically builds the layer controls from your selection, so\nwhen you select several layers at once you can see and use the controls that\nare shared between them. Pan-zoom is always available, while the layer-specific\nbuttons still appear only when a single layer is selected.\n([#9318](https://github.com/napari/napari/pull/9318))\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/joint-controls.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/joint-controls.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/joint-controls.png\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing the editing of multiple selected layers at once.\"\n    >\n  </video>\n</figure>\n```\n\nThere's also an experimental setting, *Generate GUI layer controls dynamically\ninstead of using premade panels*, that makes napari use the new dynamic\ncontrols even for single layers.\n\n### Take a guided tour of the viewer\n\nNew to napari, or just want a quick refresher on where everything lives? There's\nnow a guided tour, available from **Help → Take a tour**. The tour highlights\nthe main areas of the viewer — the canvas, the layer list, layer controls, the\nviewer buttons, the dimension sliders, and the status bar — so you can get your\nbearings in seconds. If the viewer is empty, napari opens the built-in *Balls\n(3D)* sample data so the walkthrough has something to show ([#9290](https://github.com/napari/napari/pull/9290)).\n\n![Screenshot of the napari viewer guided tour][../_static/images/guided-tour.png)\n\n### Contributable plugin preferences\n\nPlugins can now ship their own preferences ([#9308](https://github.com/napari/napari/pull/9308))!\nBy declaring `configurations` in\ntheir `napari.yaml` manifest, plugins get their own settings — stored\nseparately from napari's own settings, automatically added to and editable from\nthe napari **Preferences** dialog, and accessible programmatically from Python:\n\n```python\nfrom napari.settings import get_plugin_settings\n\nsettings = get_plugin_settings(\"my-plugin\")\nsettings.reader.lazy = True\n```\n\nRead more in the [Configurations Guide](https://napari.org/dev/plugins/building_a_plugin/guides.html#configurations)\nto learn more about how to add this new contribution to your own plugins.\n\n### Adjust grid rendering with hidden layers\n\nGrid mode with hidden layers is much improved: empty\ngrid spaces are never shown and stride operates on the *full* layer list, so\nlayer grouping doesn't change when you show or hide layers ([#9244](https://github.com/napari/napari/pull/9244)).\n\n### Fuzzy find in command palette\n\nHave you used our [command palette](command-palette) yet? It's a great way to\nquickly access and even discover napari functionality. Now, thanks to\n[#8661](https://github.com/napari/napari/pull/8661), it's easier to find\nfunctions when you don't know the exact name, or you mistyped something. You'll\nneed to have [rapidfuzz](https://rapidfuzz.github.io/RapidFuzz/) installed to\nmake use of it. It's automatically installed with `napari[all]` or\n`napari[optional]`. And if the search feels a bit off, you can set just how\nfuzzy you want it to be in Preferences > Experimental > Fuzzy Search Threshold.\n\n![Example of fuzzy find using \"scle\" to find \"scale\"](https://github.com/user-attachments/assets/88d4d2e1-36e1-4921-8df6-6f8ded4df12e)\n\n### 2D slicing of surfaces\n\nEver since we added surfaces, they have been invisible in 2D slices. Now,\nthanks to all the work done on [thick slicing](thick-slicing), surface\nslices appear in 2D view ([#8783](https://github.com/napari/napari/pull/8783)).\nThis enhancement is accompanied by support for async slicing, which should\nimprove viewer responsiveness when slicing large, time varying surfaces, for\nexample.\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/slicing_surface.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/slicing_surface.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/slicing_surface.png\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing a slicing of surface layers, with showing how to change thickness of slize and controlling slice mmode.\"\n    >\n  </video>\n</figure>\n```\n\n... And you can try this out yourself with common .obj surface files thanks to\na new built-in reader plugin!\n([#9228](https://github.com/napari/napari/pull/9228))\n\nYou should now be able to drag and drop .obj files into napari and see them\ninstantly.\n\n### Public API for auto contrast limits\n\nFor a very long time, it's been possible to set automatic contrast limits\nupdating on a layer *only* through the graphical user interface. This means an\nextra click for many workflows and poorer reproducibility. Thanks to\n[#9271](https://github.com/napari/napari/pull/9271), you can now set the\n`auto_contrast` attribute on Image layers:\n\n```python\nimage_layer = viewer.add_image(..., auto_contrast=True)\n# or\nimage_layer.auto_contrast = True\n```\n\n### The life-changing magic of tidying up the Viewer model\n\nThe napari Viewer model, for historical reasons, is a grab-bag of *many*\nattributes, which makes usage, discoverability, and code modularity and\ncomposability a major issue. We've taken some *big* steps towards cleaning up\none of our most important namespaces by creating Canvas\n([#8633](https://github.com/napari/napari/pull/8633)) and Scene\n([#9323](https://github.com/napari/napari/pull/9323)) models, which cleans up\n([#9363](https://github.com/napari/napari/pull/9363)) and clarifies\n([napari/docs#1083](https://github.com/napari/docs/pull/1083)) many parts of\nthe API.\n\nThe old API is in extremely widespread use, so although it is silently\ndeprecated, it will continue to work for the foreseeable future. In the\nmeantime, the new API should be much friendlier to work with by carefully\ngrouping related concepts and APIs. Some examples:\n\n- `viewer.axes` and `viewer.floating_axes` become `viewer.scene.overlays.axes`\n  and `viewer.canvas.overlays.axes`.\n- From that API, you may also guess that the scale bar is on\n  `viewer.canvas.overlays.scale_bar`.\n- You can even get a list of the current overlays (both visible and invisible)\n  with `list(viewer.canvas.overlays)` and `list(viewer.scene.overlays)`. (But\n  do note that overlays with a `_` prefix are private and may change!)\n- `viewer.camera` is now `viewer.scene.camera`.\n- Grid mode is now accessed at `viewer.canvas.grid` (e.g.\n  `viewer.canvas.grid.enabled = True`).\n\nThis has also enabled a new public API: you can now query the canvas size (in\npixels) without accessing private napari APIs! Check `viewer.canvas.size`!\n\nThe TL;DR:\n\n```python\n# Canvas Model\nviewer.scale_bar -> viewer.canvas.overlays.scale_bar\nviewer.text_overlay -> viewer.canvas.overlays.text\nviewer.floating_axes -> viewer.canvas.overlays.axes\nviewer.grid -> viewer.canvas.grid\nNOW EXPOSED -> viewer.canvas.overlays.current_slice\nNEW -> viewer.canvas.overlay_tiling\nNEW -> viewer.canvas.background_color & viewer.canvas.background_color_override\nNEW -> viewer.canvas.size\n\n# Scene Model\nviewer.camera -> viewer.scene.camera\nviewer.axes -> viewer.scene.overlays.axes\n```\n\n### Removal of translation code\n\nSeveral years ago, we started working on implementing localization machinery\ninto napari. Unfortunately, this work has been sitting unfinished and unused,\nwhile making maintaining napari harder. Given the extra maintenance burden\nwithout benefit, we made the difficult decision to remove it from our codebase\n([#8935](https://github.com/napari/napari/pull/8935)), with the hope that in\nthe future we might restart this effort with a better plan.\n\nWe do aim to revisit when napari's foundations are more solid, but for now,\n`napari.utils.translations` is deprecated. If you have this code in your\ncodebase:\n\n```\nfrom napari.utils import translations as trans\n```\n\nplease remove it. (For now, `trans._()` is a no-op.)\n\n\n\n## New Features\n\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\n- Add plugin-defined settings through `ConfigurationContribution`s ([#9308](https://github.com/napari/napari/pull/9308))\n- Inherit axis label, scale, unit, and translate from Xarrays ([#9316](https://github.com/napari/napari/pull/9316))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- Wrap zarr in dask while projecting multi-scale to keep lazy behavior. ([#9408](https://github.com/napari/napari/pull/9408))\n\n## Improvements\n\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\n- Move the layer lock to group with link/unlink in layer list context menu ([#9235](https://github.com/napari/napari/pull/9235))\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\n- Add multiscale projection `Image` ([#9252](https://github.com/napari/napari/pull/9252))\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- Scene model ([#9323](https://github.com/napari/napari/pull/9323))\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\n- Add middle position to canvas overlays (in addition to top and bottom) ([#9374](https://github.com/napari/napari/pull/9374))\n- Extend viewbox hiding behaviour on grid to non-1 stride values ([#9397](https://github.com/napari/napari/pull/9397))\n- Restyle (vendored) jsonschema form widgets for Validation Errors ([#9401](https://github.com/napari/napari/pull/9401))\n\n## Performance\n\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\n- [perf] Remove extra _update_theme call from Window init ([#9376](https://github.com/napari/napari/pull/9376))\n\n## Bug Fixes\n\n- [shapes] Preserve selection when changing ndisplay or slices and avoid stale highlights  ([#9059](https://github.com/napari/napari/pull/9059))\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\n- fix(key_bindings): make navigation keys auto-repeat however they are bound ([#9257](https://github.com/napari/napari/pull/9257))\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\n- OS default behavior consistency : keep popups open when Return is pressed ([#9327](https://github.com/napari/napari/pull/9327))\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\n- Give cycle color mode a usable default color cycle on Points and Vectors ([#9334](https://github.com/napari/napari/pull/9334))\n- Use magnitude of `Layer.scale` for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\n- fix(layer_utils): handle non-native byte order in convert_to_uint8 ([#9345](https://github.com/napari/napari/pull/9345))\n- Vectors: redraw after edge color mode remaps colors ([#9353](https://github.com/napari/napari/pull/9353))\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\n- fix(vectors): stop edge-color controls mutating the layer and hiding mode changes ([#9364](https://github.com/napari/napari/pull/9364))\n- Fix missing `f` for strings modified in #8935 ([#9371](https://github.com/napari/napari/pull/9371))\n- Fix the built-in `nan` colormap setting `bad_color` instead of `nan_color` ([#9373](https://github.com/napari/napari/pull/9373))\n- Fix dock widget positioning ([#9393](https://github.com/napari/napari/pull/9393))\n- fix: reset `dims axis_labels` when layer labels return to default ([#9398](https://github.com/napari/napari/pull/9398))\n- Fix background of contrast limit popup ([#9436](https://github.com/napari/napari/pull/9436))\n- Fix connection of callbacks of settings changes ([#9437](https://github.com/napari/napari/pull/9437))\n- Restore size policy for layerList docked widget ([#9447](https://github.com/napari/napari/pull/9447))\n- Fix spherical projection ([#9453](https://github.com/napari/napari/pull/9453))\n- Fix warning on new label button ([#9455](https://github.com/napari/napari/pull/9455))\n\n## Deprecations\n\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\n- Refactor floating_axes/axes into canvas_axes/scene_axes ([#9363](https://github.com/napari/napari/pull/9363))\n\n## Documentation\n\n- Add info about color and intensity to surface guide ([docs#993](https://github.com/napari/docs/pull/993))\n- Create a repository mapping with descriptions for the project ([docs#1007](https://github.com/napari/docs/pull/1007))\n- Update homepage video for 0.8.0/0.9.0 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\n-  NAP 10 migration events ([docs#1086](https://github.com/napari/docs/pull/1086))\n- Improve tox usage documentation ([docs#1088](https://github.com/napari/docs/pull/1088))\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\n- Update release notes for napari 0.9.0rc1 ([docs#1099](https://github.com/napari/docs/pull/1099))\n- Create stubs for npe2 `ConfigurationContribution` ([docs#1100](https://github.com/napari/docs/pull/1100))\n- Fix building docs with PyQt6 ([docs#1102](https://github.com/napari/docs/pull/1102))\n- Triage team and how-to docs ([docs#1106](https://github.com/napari/docs/pull/1106))\n- Mention guided viewer tour ([docs#1107](https://github.com/napari/docs/pull/1107))\n- Bring NAP 9 up to date ([docs#1108](https://github.com/napari/docs/pull/1108))\n- docs: add list of built-in `sample images` ([docs#1111](https://github.com/napari/docs/pull/1111))\n- Info about Xarray metadata inheritance ([docs#1113](https://github.com/napari/docs/pull/1113))\n- Update `axis_labels` guidance for 0.9 ([docs#1117](https://github.com/napari/docs/pull/1117))\n- Update handedness guide for 0.9 changes ([docs#1118](https://github.com/napari/docs/pull/1118))\n- Update opengraph preview image for 0.9 with script ([docs#1119](https://github.com/napari/docs/pull/1119))\n- Use a pages first image for OpenGraph Preview if there is one ([docs#1120](https://github.com/napari/docs/pull/1120))\n- Final update release notes for 0.9.0 ([docs#1121](https://github.com/napari/docs/pull/1121))\n- Update version switcher for 0.9.0 ([docs#1122](https://github.com/napari/docs/pull/1122))\n- Update overlay docstrings ([#9081](https://github.com/napari/napari/pull/9081))\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\n- Add projection mode to class Image attributes docstring ([#9378](https://github.com/napari/napari/pull/9378))\n- Add docstrings for relocated models on ViewerModel ([#9430](https://github.com/napari/napari/pull/9430))\n\n## Other Pull Requests\n\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\n- Update info about Canvas and Scene models ([docs#1083](https://github.com/napari/docs/pull/1083))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\n- Add auto labeling as maintenance PR that edit `.pre-commit-config.yml` ([docs#1098](https://github.com/napari/docs/pull/1098))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1101](https://github.com/napari/docs/pull/1101))\n- Use PyQt6 when build docs on circleci ([docs#1104](https://github.com/napari/docs/pull/1104))\n- fix(typing): add type hints and fix mypy errors in `qt_viewer.py` ([#9076](https://github.com/napari/napari/pull/9076))\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\n- fix(typing): add typing and fix mypy error in `confirm_close_dialog.py` ([#9170](https://github.com/napari/napari/pull/9170))\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\n- Add hint for missing qt6-wayland when conda Qt cannot start napari on Wayland ([#9174](https://github.com/napari/napari/pull/9174))\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\n- fix(typing): add typing and fix mypy error in `qt_current_size_slider.py` ([#9180](https://github.com/napari/napari/pull/9180))\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\n- Update dev dependencies of napari ([#9211](https://github.com/napari/napari/pull/9211))\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\n- fix(typing): add typing and fix mypy error in `qt_color_mode_combobox.py` ([#9239](https://github.com/napari/napari/pull/9239))\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\n- Enable coverage annotation in PR changes view ([#9288](https://github.com/napari/napari/pull/9288))\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\n- Simplify tox configuration ([#9309](https://github.com/napari/napari/pull/9309))\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\n- Remove `make_napari_viewer` from `test_vispy_labels_polygon_overlay` ([#9314](https://github.com/napari/napari/pull/9314))\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\n- Drop colormap translation dictionaries ([#9358](https://github.com/napari/napari/pull/9358))\n- Use LF for all files in gitattributes ([#9359](https://github.com/napari/napari/pull/9359))\n- Stop window-owned worker threads when the interpreter shuts down ([#9367](https://github.com/napari/napari/pull/9367))\n- Change tox and codecov configuration to simplify local reports ([#9368](https://github.com/napari/napari/pull/9368))\n- Update `coverage`, `hypothesis`, `platformdirs`, `pydantic-settings`, `tensorstore`, `virtualenv` ([#9380](https://github.com/napari/napari/pull/9380))\n- chore: remove QRangeSliderPopup ([#9382](https://github.com/napari/napari/pull/9382))\n- chore: remove qt_size_preview module ([#9385](https://github.com/napari/napari/pull/9385))\n- [pre-commit.ci] pre-commit autoupdate ([#9386](https://github.com/napari/napari/pull/9386))\n- Fix handling exception when go to fallback source of data in map example ([#9388](https://github.com/napari/napari/pull/9388))\n- Update build docs on circleci to PyQt6 and update python ([#9390](https://github.com/napari/napari/pull/9390))\n- Fix broken shapes due to incomplete merge ([#9399](https://github.com/napari/napari/pull/9399))\n- Bump npe2 minimum for ConfigurationContribution ([#9400](https://github.com/napari/napari/pull/9400))\n- Update `hypothesis`, `numpy`, `platformdirs`, `pygments`, `pyside6`, `pytest-rerunfailures`, `tifffile`, `virtualenv` ([#9414](https://github.com/napari/napari/pull/9414))\n- Improve qproviders testing by remove part of make_napari_viewer ([#9416](https://github.com/napari/napari/pull/9416))\n- [pre-commit.ci] pre-commit autoupdate ([#9420](https://github.com/napari/napari/pull/9420))\n- Bump npe2 dependency and constraints to 0.9.0 ([#9422](https://github.com/napari/napari/pull/9422))\n- Fix Points.symbol type annotation ([#9423](https://github.com/napari/napari/pull/9423))\n- Follow-up: Rename PluginPreferences to PluginSettings ([#9424](https://github.com/napari/napari/pull/9424))\n- Fix comprehensive test configuration for examples job ([#9426](https://github.com/napari/napari/pull/9426))\n- Delay deprecation of qt_viewer and private access to 0.10.0 ([#9433](https://github.com/napari/napari/pull/9433))\n- Update `lxml`, `pyqt6`, `pyqt6-qt6`, `scipy`, `tifffile` ([#9443](https://github.com/napari/napari/pull/9443))\n\n\n## 31 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Lucy Liu](https://github.com/napari/napari/commits?author=lucyleeow) - @lucyleeow\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Venkateswarlu Nagineni](https://github.com/napari/napari/commits?author=VenkateswarluNagineni) - @VenkateswarluNagineni +\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss +\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Ian Hunt-Isaak](https://github.com/napari/docs/commits?author=ianhi) - @ianhi +\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Justus Magin](https://github.com/napari/docs/commits?author=keewis) - @keewis +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey +\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt +\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/376576897/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"mentions_count":37},{"url":"https://api.github.com/repos/napari/napari/releases/376547112","assets_url":"https://api.github.com/repos/napari/napari/releases/376547112/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/376547112/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0rc3","id":376547112,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84Wcaco","tag_name":"v0.9.0rc3","target_commitish":"908b3ed80ccbe73a3393f0207aafc6d7a45e116a","name":"v0.9.0rc3","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-25T16:09:15Z","updated_at":"2026-08-25T16:21:57Z","published_at":"2026-08-25T16:21:57Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/529460686","id":529460686,"node_id":"RA_kwDOCJ0aI84fju3O","name":"napari-0.9.0rc3-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3696513,"digest":"sha256:30bf0b9abd2d7b169ea6c0a14fc513da94067f6d48e03cf9898c2f13ca8d95fc","download_count":4,"created_at":"2026-08-25T16:21:56Z","updated_at":"2026-08-25T16:21:56Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc3/napari-0.9.0rc3-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/529460687","id":529460687,"node_id":"RA_kwDOCJ0aI84fju3P","name":"napari-0.9.0rc3.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3267675,"digest":"sha256:5caf0112a66a77a145bbde912b0e576be181be66d40a567edcd6f357182a3f66","download_count":2,"created_at":"2026-08-25T16:21:56Z","updated_at":"2026-08-25T16:21:56Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc3/napari-0.9.0rc3.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0rc3","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0rc3","body":"# napari 0.9.0\n⚠️ *Note: these release notes are still in draft while 0.9.0rc1 is in prerelease testing.* ⚠️\n\n*Thu, Aug 20, 2026*\n\nWe're happy to announce the release of napari 0.9.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Auto-labelling of viewer axes\n\nnapari 0.5.0 laid the ground work for more accurate metadata handling by\nallowing users and plugins to set the `axis_labels` on layers. napari 0.9.0\n*finally* capitalises on that work by automatically labelling viewer axes based\non the axis labels of layers present in the viewer.\n([#9282](https://github.com/napari/napari/pull/9282))\n\nNow, opening a dataset with labelled axes will result in correctly labelled\naxes in the viewer:\n\n![napari screenshot showing inherited labeled viewer axes](https://us1.discourse-cdn.com/flex015/uploads/imagej/original/3X/6/7/67f30f24a32465ffdee330b59a7e342ec89e1ce1.png)]\n\nAdditionally, when you create a new layer from an existing one using the\nbuttons in the GUI, the new layer now inherits the axis labels of the layer(s)\nit was derived from. ([#9293](https://github.com/napari/napari/pull/9293))\n\nThere is still work to be done here. For example, if layers have labels that\nare inconsistent with each other, napari will simply ignore layers with fewer\ndimensions, or layers added later. But, for most use cases, layer and viewer\nmetadata will now be much more informative!\n\n### Layer controls for multiple selected layers\n\nUntil now, layer controls only appeared when a single layer was selected. Now,\nnapari dynamically builds the layer controls from your selection, so\nwhen you select several layers at once you can see and use the controls that\nare shared between them. Pan-zoom is always available, while the layer-specific\nbuttons still appear only when a single layer is selected.\n([#9318](https://github.com/napari/napari/pull/9318))\n\nThere's also an experimental setting, *Generate GUI layer controls dynamically\ninstead of using premade panels*, that makes napari use the new dynamic\ncontrols even for single layers.\n\n### Xarray metadata is now inherited\n\nIf you work with [Xarray](https://docs.xarray.dev/) — common in climate,\ngeoscience, and many places where data ships with labelled coordinates — napari\nnow reads metadata straight from your `DataArray`s. When you add an xarray\nobject to the viewer, napari will use its dimension names as axis labels, infer\n`scale` and `translate` from the coordinate values, and pick up `units` from\nCF-convention `units` attributes on coordinates ([#9316](https://github.com/napari/napari/pull/9316)).\nThis closed an 8-year old issue: [#14](https://github.com/napari/napari/issues/14)!\n\n### Status bar coordinates as floats\n\nContinuing on the theme of improved metadata, when scale and/or unit metadata\nis set on the layer, the status bar coordinates now have increased precision,\nwhere before they were limited to just integers. This means you can have more\naccurate physical estimates of your data coordinates when exploring data.\n([#9287](https://github.com/napari/napari/pull/9287))\n\n### Take a guided tour of the viewer\n\nNew to napari, or just want a quick refresher on where everything lives? There's\nnow a guided tour, available from **Help → Take a tour**. The tour highlights\nthe main areas of the viewer — the canvas, the layer list, layer controls, the\nviewer buttons, the dimension sliders, and the status bar — so you can get your\nbearings in seconds. If the viewer is empty, napari opens the built-in *Balls*\n(3D) sample data so the walkthrough has something to show ([#9290](https://github.com/napari/napari/pull/9290)).\n\n### Contributable plugin preferences\n\nPlugins can now ship their own preferences ([#9308](https://github.com/napari/napari/pull/9308))!\nBy declaring `configurations` in\ntheir `napari.yaml` manifest, plugins get their own settings — stored\nseparately from napari's own settings, automatically added to and editable from\nthe napari **Preferences** dialog, and accessible programmatically from Python:\n\n```python\nfrom napari.settings import get_plugin_settings\n\nsettings = get_plugin_settings(\"my-plugin\")\nsettings.reader.lazy = True\n```\n\nRead more in the [Configurations Guide](https://napari.org/dev/plugins/building_a_plugin/guides.html#configurations)\nto learn more about how to add this new contribution to your own plugins.\n\n### Adjust grid rendering with hidden layers\n\nSpeaking of grid mode: grid mode with hidden layers is much improved: empty\ngrid spaces are never shown and stride operates on the *full* layer list, so\nlayer grouping doesn't change when you show or hide layers ([#9244](https://github.com/napari/napari/pull/9244)).\n\n### Fuzzy find in command palette\n\nHave you used our [command palette](command-palette) yet? It's a great way to\nquickly access and even discover napari functionality. Now, thanks to\n[#8661](https://github.com/napari/napari/pull/8661), it's easier to find\nfunctions when you don't know the exact name, or you mistyped something. You'll\nneed to have [rapidfuzz](https://rapidfuzz.github.io/RapidFuzz/) installed to\nmake use of it. It's automatically installed with `napari[all]` or\n`napari[optional]`. And if the search feels a bit off, you can set just how\nfuzzy you want it to be in Preferences > Experimental > Fuzzy Search Threshold.\n\n[screenshot or movie to be provided by Lorenzo]\n\n### 2D slicing of surfaces\n\nEver since we added surfaces, they have been invisible in 2D slices. Now,\nthanks to all the work done on [thick slicing](thick-slicing), surface\nslices appear in 2D view ([#8783](https://github.com/napari/napari/pull/8783)).\nThis enhancement is accompanied by support for async slicing, which should\nimprove viewer responsiveness when slicing large, time varying surfaces, for\nexample.\n\n[movie of ND-cows and slicing]\n\n... And you can try this out yourself with common .obj surface files thanks to\na new built-in reader plugin!\n([#9228](https://github.com/napari/napari/pull/9228))\n\nYou should now be able to drag and drop .obj files into napari and see them\ninstantly.\n\n### Public API for auto contrast limit\n\nFor a very long time, it's been possible to set automatic contrast limits\nupdating on a layer *only* through the graphical user interface. This means an\nextra click for many workflows and poorer reproducibility. Thanks to\n[#9271](https://github.com/napari/napari/pull/9271), you can now set the\n`auto_contrast` attribute on Image layers:\n\n```python\nimage_layer = viewer.add_image(..., auto_contrast=True)\n# or\nimage_layer.auto_contrast = True\n```\n\n### The life-changing magic of tidying up the Viewer model\n\nThe napari Viewer model, for historical reasons, is a grab-bag of *many*\nattributes, which makes usage, discoverability, and code modularity and\ncomposability a major issue. We've taken some *big* steps towards cleaning up\none of our most important namespaces by creating Canvas\n([#8633](https://github.com/napari/napari/pull/8633)) and Scene\n([#9323](https://github.com/napari/napari/pull/9323)) models, which cleans up\n([#9363](https://github.com/napari/napari/pull/9363)) and clarifies\n([napari/docs#1083](https://github.com/napari/docs/pull/1083)) many parts of\nthe API.\n\nThe old API is in extremely widespread use, so although it is silently\ndeprecated, it will continue to work for the foreseeable future. In the\nmeantime, the new API should be much friendlier to work with by carefully\ngrouping related concepts and APIs. Some examples:\n\n- `viewer.axes` and `viewer.floating_axes` become `viewer.scene.overlays.axes`\n  and `viewer.canvas.overlays.axes`.\n- From that API, you may also guess that the scale bar is on\n  `viewer.canvas.overlays.scale_bar`.\n- You can even get a list of the current overlays (both visible and invisible)\n  with `list(viewer.canvas.overlays)` and `list(viewer.scene.overlays)`. (But\n  do note that overlays with a `_` prefix are private and may change!)\n- `viewer.camera` is now `viewer.scene.camera`.\n- Grid mode is now accessed at `viewer.canvas.grid` (e.g.\n  `viewer.canvas.grid.enabled = True`).\n\nThis has also enabled a new public API: you can now query the canvas size (in\npixels) without accessing private napari APIs! Check `viewer.canvas.size`!\n\nThe TL;DR:\n\n```python\n# Canvas Model\nviewer.scale_bar -> viewer.canvas.overlays.scale_bar\nviewer.text_overlay -> viewer.canvas.overlays.text\nviewer.floating_axes -> viewer.canvas.overlays.axes\nviewer.grid -> viewer.canvas.grid\nNOW EXPOSED -> viewer.canvas.overlays.current_slice\nNEW -> viewer.canvas.overlay_tiling\nNEW -> viewer.canvas.background_color & viewer.canvas.background_color_override\nNEW -> viewer.canvas.size\n\n# Scene Model\nviewer.camera -> viewer.scene.camera\nviewer.axes -> viewer.scene.overlays.axes\n```\n\n### Removal of translation code\n\nSeveral years ago, we started working on implementing localization machinery\ninto napari. Unfortunately, this work has been sitting unfinished and unused,\nwhile making maintaining napari harder. Given the extra maintenance burden\nwithout benefit, we made the difficult decision to remove it from our codebase\n([#8935](https://github.com/napari/napari/pull/8935)), with the hope that in\nthe future we might restart this effort with a better plan.\n\nWe do aim to revisit when napari's foundations are more solid, but for now,\n`napari.utils.translations` is deprecated. If you have this code in your\ncodebase:\n\n```\nfrom napari.utils import translations as trans\n```\n\nplease remove it. (For now, `trans._()` is a no-op.)\n\n\n\n## New Features\n\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\n- Add plugin-defined settings through `ConfigurationContribution`s ([#9308](https://github.com/napari/napari/pull/9308))\n- Inherit axis label, scale, unit, and translate from Xarrays ([#9316](https://github.com/napari/napari/pull/9316))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- Wrap zarr in dask while projecting multi-scale to keep lazy behavior. ([#9408](https://github.com/napari/napari/pull/9408))\n\n## Improvements\n\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\n- Move the layer lock to group with link/unlink in layer list context menu ([#9235](https://github.com/napari/napari/pull/9235))\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\n- Add multiscale projection `Image` ([#9252](https://github.com/napari/napari/pull/9252))\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- Scene model ([#9323](https://github.com/napari/napari/pull/9323))\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\n- Add middle position to canvas overlays (in addition to top and bottom) ([#9374](https://github.com/napari/napari/pull/9374))\n- Extend viewbox hiding behaviour on grid to non-1 stride values ([#9397](https://github.com/napari/napari/pull/9397))\n\n## Performance\n\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\n- [perf] Remove extra _update_theme call from Window init ([#9376](https://github.com/napari/napari/pull/9376))\n\n## Bug Fixes\n\n- [shapes] Preserve selection when changing ndisplay or slices and avoid stale highlights  ([#9059](https://github.com/napari/napari/pull/9059))\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\n- fix(key_bindings): make navigation keys auto-repeat however they are bound ([#9257](https://github.com/napari/napari/pull/9257))\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\n- OS default behavior consistency : keep popups open when Return is pressed ([#9327](https://github.com/napari/napari/pull/9327))\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\n- Give cycle color mode a usable default color cycle on Points and Vectors ([#9334](https://github.com/napari/napari/pull/9334))\n- Use magnitude of `Layer.scale` for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\n- fix(layer_utils): handle non-native byte order in convert_to_uint8 ([#9345](https://github.com/napari/napari/pull/9345))\n- Vectors: redraw after edge color mode remaps colors ([#9353](https://github.com/napari/napari/pull/9353))\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\n- fix(vectors): stop edge-color controls mutating the layer and hiding mode changes ([#9364](https://github.com/napari/napari/pull/9364))\n- Fix missing `f` for strings modified in #8935 ([#9371](https://github.com/napari/napari/pull/9371))\n- Fix the built-in `nan` colormap setting `bad_color` instead of `nan_color` ([#9373](https://github.com/napari/napari/pull/9373))\n- fix: reset `dims axis_labels` when layer labels return to default ([#9398](https://github.com/napari/napari/pull/9398))\n\n## Deprecations\n\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\n- Refactor floating_axes/axes into canvas_axes/scene_axes ([#9363](https://github.com/napari/napari/pull/9363))\n\n## Documentation\n\n- Add info about color and intensity to surface guide ([docs#993](https://github.com/napari/docs/pull/993))\n- Create a repository mapping with descriptions for the project ([docs#1007](https://github.com/napari/docs/pull/1007))\n- Update homepage video for 0.8.0/0.9.0 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\n-  NAP 10 migration events ([docs#1086](https://github.com/napari/docs/pull/1086))\n- Improve tox usage documentation ([docs#1088](https://github.com/napari/docs/pull/1088))\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\n- Update release notes for napari 0.9.0rc1 ([docs#1099](https://github.com/napari/docs/pull/1099))\n- Create stubs for npe2 `ConfigurationContribution` ([docs#1100](https://github.com/napari/docs/pull/1100))\n- Fix building docs with PyQt6 ([docs#1102](https://github.com/napari/docs/pull/1102))\n- Triage team and how-to docs ([docs#1106](https://github.com/napari/docs/pull/1106))\n- Mention guided viewer tour ([docs#1107](https://github.com/napari/docs/pull/1107))\n- docs: add list of built-in `sample images` ([docs#1111](https://github.com/napari/docs/pull/1111))\n- Info about Xarray metadata inheritance ([docs#1113](https://github.com/napari/docs/pull/1113))\n- Update overlay docstrings ([#9081](https://github.com/napari/napari/pull/9081))\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\n- Add projection mode to class Image attributes docstring ([#9378](https://github.com/napari/napari/pull/9378))\n\n## Other Pull Requests\n\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\n- Update info about Canvas and Scene models ([docs#1083](https://github.com/napari/docs/pull/1083))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\n- Add auto labeling as maintenance PR that edit `.pre-commit-config.yml` ([docs#1098](https://github.com/napari/docs/pull/1098))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1101](https://github.com/napari/docs/pull/1101))\n- Use PyQt6 when build docs on circleci ([docs#1104](https://github.com/napari/docs/pull/1104))\n- fix(typing): add type hints and fix mypy errors in `qt_viewer.py` ([#9076](https://github.com/napari/napari/pull/9076))\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\n- fix(typing): add typing and fix mypy error in `confirm_close_dialog.py` ([#9170](https://github.com/napari/napari/pull/9170))\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\n- Add hint for missing qt6-wayland when conda Qt cannot start napari on Wayland ([#9174](https://github.com/napari/napari/pull/9174))\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\n- fix(typing): add typing and fix mypy error in `qt_current_size_slider.py` ([#9180](https://github.com/napari/napari/pull/9180))\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\n- Update dev dependencies of napari ([#9211](https://github.com/napari/napari/pull/9211))\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\n- fix(typing): add typing and fix mypy error in `qt_color_mode_combobox.py` ([#9239](https://github.com/napari/napari/pull/9239))\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\n- Enable coverage annotation in PR changes view ([#9288](https://github.com/napari/napari/pull/9288))\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\n- Simplify tox configuration ([#9309](https://github.com/napari/napari/pull/9309))\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\n- Remove `make_napari_viewer` from `test_vispy_labels_polygon_overlay` ([#9314](https://github.com/napari/napari/pull/9314))\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\n- Drop colormap translation dictionaries ([#9358](https://github.com/napari/napari/pull/9358))\n- Use LF for all files in gitattributes ([#9359](https://github.com/napari/napari/pull/9359))\n- Stop window-owned worker threads when the interpreter shuts down ([#9367](https://github.com/napari/napari/pull/9367))\n- Change tox and codecov configuration to simplify local reports ([#9368](https://github.com/napari/napari/pull/9368))\n- Update `coverage`, `hypothesis`, `platformdirs`, `pydantic-settings`, `tensorstore`, `virtualenv` ([#9380](https://github.com/napari/napari/pull/9380))\n- chore: remove QRangeSliderPopup ([#9382](https://github.com/napari/napari/pull/9382))\n- chore: remove qt_size_preview module ([#9385](https://github.com/napari/napari/pull/9385))\n- [pre-commit.ci] pre-commit autoupdate ([#9386](https://github.com/napari/napari/pull/9386))\n- Fix handling exception when go to fallback source of data in map example ([#9388](https://github.com/napari/napari/pull/9388))\n- Update build docs on circleci to PyQt6 and update python ([#9390](https://github.com/napari/napari/pull/9390))\n- Fix broken shapes due to incomplete merge ([#9399](https://github.com/napari/napari/pull/9399))\n- Bump npe2 minimum for ConfigurationContribution ([#9400](https://github.com/napari/napari/pull/9400))\n- Update `hypothesis`, `numpy`, `platformdirs`, `pygments`, `pyside6`, `pytest-rerunfailures`, `tifffile`, `virtualenv` ([#9414](https://github.com/napari/napari/pull/9414))\n- [pre-commit.ci] pre-commit autoupdate ([#9420](https://github.com/napari/napari/pull/9420))\n- Bump npe2 dependency and constraints to 0.9.0 ([#9422](https://github.com/napari/napari/pull/9422))\n- Fix Points.symbol type annotation ([#9423](https://github.com/napari/napari/pull/9423))\n- Follow-up: Rename PluginPreferences to PluginSettings ([#9424](https://github.com/napari/napari/pull/9424))\n\n\n## 31 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Lucy Liu](https://github.com/napari/napari/commits?author=lucyleeow) - @lucyleeow\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Venkateswarlu Nagineni](https://github.com/napari/napari/commits?author=VenkateswarluNagineni) - @VenkateswarluNagineni +\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Ian Hunt-Isaak](https://github.com/napari/docs/commits?author=ianhi) - @ianhi\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Justus Magin](https://github.com/napari/docs/commits?author=keewis) - @keewis\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n","mentions_count":37},{"url":"https://api.github.com/repos/napari/napari/releases/375910810","assets_url":"https://api.github.com/repos/napari/napari/releases/375910810/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/375910810/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0rc2","id":375910810,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84WZ_Ga","tag_name":"v0.9.0rc2","target_commitish":"7d9b55da16e60f19f7d346b57cf6673b7b15dfb2","name":"v0.9.0rc2","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-24T17:32:03Z","updated_at":"2026-08-24T18:59:26Z","published_at":"2026-08-24T18:36:45Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/528021943","id":528021943,"node_id":"RA_kwDOCJ0aI84fePm3","name":"napari-0.9.0rc2-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46938,"digest":"sha256:77759d57fe331995a322164d18335cef7007fe48ca6553739264545003c6c806","download_count":1,"created_at":"2026-08-24T18:42:38Z","updated_at":"2026-08-24T18:42:38Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528021623","id":528021623,"node_id":"RA_kwDOCJ0aI84fePh3","name":"napari-0.9.0rc2-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":637223413,"digest":"sha256:ccb10d81a045817fe1ba0019a146c4a9d74b1429aa09a99d650004c38314ca78","download_count":2,"created_at":"2026-08-24T18:42:21Z","updated_at":"2026-08-24T18:42:38Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528042072","id":528042072,"node_id":"RA_kwDOCJ0aI84feUhY","name":"napari-0.9.0rc2-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40914,"digest":"sha256:3db85fa707acb391d348145f17b083e3cef2fbc5b14588752f9fb6a5f8590389","download_count":1,"created_at":"2026-08-24T18:59:25Z","updated_at":"2026-08-24T18:59:26Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528041699","id":528041699,"node_id":"RA_kwDOCJ0aI84feUbj","name":"napari-0.9.0rc2-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":505595064,"digest":"sha256:8a484e2f0c8b337e4c3f6c14e0e40d089eea8c9098e43b055280fc03cf4d56a0","download_count":1,"created_at":"2026-08-24T18:59:07Z","updated_at":"2026-08-24T18:59:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528038401","id":528038401,"node_id":"RA_kwDOCJ0aI84feToB","name":"napari-0.9.0rc2-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40311,"digest":"sha256:9a2b687caad5e313d81111990d0f649955dcbc27a719c7eae977427eb8aa2aa9","download_count":1,"created_at":"2026-08-24T18:56:27Z","updated_at":"2026-08-24T18:56:28Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528037873","id":528037873,"node_id":"RA_kwDOCJ0aI84feTfx","name":"napari-0.9.0rc2-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":547639187,"digest":"sha256:42ca922988c59fb2ea6adf3db2d253ed2cacb8b2fa63c6fc6c0abf8d9b01a1d8","download_count":1,"created_at":"2026-08-24T18:56:04Z","updated_at":"2026-08-24T18:56:26Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528015453","id":528015453,"node_id":"RA_kwDOCJ0aI84feOBd","name":"napari-0.9.0rc2-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3696125,"digest":"sha256:00ab1e244333c8f4c043e73d7ca8e02e9212aa3bc98620efe6b0ed8d8ef77057","download_count":3,"created_at":"2026-08-24T18:36:44Z","updated_at":"2026-08-24T18:36:44Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528026742","id":528026742,"node_id":"RA_kwDOCJ0aI84feQx2","name":"napari-0.9.0rc2-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":605259448,"digest":"sha256:35d023007f1a06a862a4b7970fd6ac0f0e4bbb3f0aa482adb19bf98f04991ad9","download_count":2,"created_at":"2026-08-24T18:46:02Z","updated_at":"2026-08-24T18:46:20Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528027017","id":528027017,"node_id":"RA_kwDOCJ0aI84feQ2J","name":"napari-0.9.0rc2-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37048,"digest":"sha256:4ad4274f87a88355d59b107f6d4915ae7762cc1bb13a40fb3cfc297aee475491","download_count":1,"created_at":"2026-08-24T18:46:20Z","updated_at":"2026-08-24T18:46:21Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/528015457","id":528015457,"node_id":"RA_kwDOCJ0aI84feOBh","name":"napari-0.9.0rc2.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3267206,"digest":"sha256:2392bed9966b7f3dad9df1baa89c28790f147350b991827105f5bc12527ab216","download_count":2,"created_at":"2026-08-24T18:36:44Z","updated_at":"2026-08-24T18:36:44Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc2/napari-0.9.0rc2.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0rc2","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0rc2","body":"# napari 0.9.0\r\n⚠️ *Note: these release notes are still in draft while 0.9.0rc2 is in prerelease testing.* ⚠️\r\n\r\n*Thu, Aug 20, 2026*\r\n\r\nWe're happy to announce the release of napari 0.9.0!\r\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\r\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\r\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\r\nrendering), and the scientific Python stack (numpy, scipy).\r\n\r\nFor more information, examples, and documentation, please visit our website,\r\nhttps://napari.org.\r\n\r\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\r\n\r\n## Highlights\r\n\r\n### Auto-labelling of viewer axes\r\n\r\nnapari 0.5.0 laid the ground work for more accurate metadata handling by\r\nallowing users and plugins to set the `axis_labels` on layers. napari 0.9.0\r\n*finally* capitalises on that work by automatically labelling viewer axes based\r\non the axis labels of layers present in the viewer.\r\n([#9282](https://github.com/napari/napari/pull/9282))\r\n\r\nNow, opening a dataset with labelled axes will result in correctly labelled\r\naxes in the viewer:\r\n\r\n![napari screenshot showing inherited labeled viewer axes](https://us1.discourse-cdn.com/flex015/uploads/imagej/original/3X/6/7/67f30f24a32465ffdee330b59a7e342ec89e1ce1.png)]\r\n\r\nAdditionally, when you create a new layer from an existing one using the\r\nbuttons in the GUI, the new layer now inherits the axis labels of the layer(s)\r\nit was derived from. ([#9293](https://github.com/napari/napari/pull/9293))\r\n\r\nThere is still work to be done here. For example, if layers have labels that\r\nare inconsistent with each other, napari will simply ignore layers with fewer\r\ndimensions, or layers added later. But, for most use cases, layer and viewer\r\nmetadata will now be much more informative!\r\n\r\n### Layer controls for multiple selected layers\r\n\r\nUntil now, layer controls only appeared when a single layer was selected. Now,\r\nnapari dynamically builds the layer controls from your selection, so\r\nwhen you select several layers at once you can see and use the controls that\r\nare shared between them. Pan-zoom is always available, while the layer-specific\r\nbuttons still appear only when a single layer is selected.\r\n([#9318](https://github.com/napari/napari/pull/9318))\r\n\r\nThere's also an experimental setting, *Generate GUI layer controls dynamically\r\ninstead of using premade panels*, that makes napari use the new dynamic\r\ncontrols even for single layers.\r\n\r\n### Xarray metadata is now inherited\r\n\r\nIf you work with [Xarray](https://docs.xarray.dev/) — common in climate,\r\ngeoscience, and many places where data ships with labelled coordinates — napari\r\nnow reads metadata straight from your `DataArray`s. When you add an xarray\r\nobject to the viewer, napari will use its dimension names as axis labels, infer\r\n`scale` and `translate` from the coordinate values, and pick up `units` from\r\nCF-convention `units` attributes on coordinates ([#9316](https://github.com/napari/napari/pull/9316)).\r\nThis closed an 8-year old issue: [#14](https://github.com/napari/napari/issues/14)!\r\n\r\n### Status bar coordinates as floats\r\n\r\nContinuing on the theme of improved metadata, when scale and/or unit metadata\r\nis set on the layer, the status bar coordinates now have increased precision,\r\nwhere before they were limited to just integers. This means you can have more\r\naccurate physical estimates of your data coordinates when exploring data.\r\n([#9287](https://github.com/napari/napari/pull/9287))\r\n\r\n### Take a guided tour of the viewer\r\n\r\nNew to napari, or just want a quick refresher on where everything lives? There's\r\nnow a guided tour, available from **Help → Take a tour**. The tour highlights\r\nthe main areas of the viewer — the canvas, the layer list, layer controls, the\r\nviewer buttons, the dimension sliders, and the status bar — so you can get your\r\nbearings in seconds. If the viewer is empty, napari opens the built-in *Balls*\r\n(3D) sample data so the walkthrough has something to show ([#9290](https://github.com/napari/napari/pull/9290)).\r\n\r\n### Contributable plugin preferences\r\n\r\nPlugins can now ship their own preferences ([#9308](https://github.com/napari/napari/pull/9308))!\r\nBy declaring `configurations` in\r\ntheir `napari.yaml` manifest, plugins get their own settings — stored\r\nseparately from napari's own settings, automatically added to and editable from\r\nthe napari **Preferences** dialog, and accessible programmatically from Python:\r\n\r\n```python\r\nfrom napari.settings import get_plugin_settings\r\n\r\nsettings = get_plugin_settings(\"my-plugin\")\r\nsettings.reader.lazy = True\r\n```\r\n\r\nRead more in the [Configurations Guide](https://napari.org/dev/plugins/building_a_plugin/guides.html#configurations)\r\nto learn more about how to add this new contribution to your own plugins.\r\n\r\n### Adjust grid rendering with hidden layers\r\n\r\nSpeaking of grid mode: grid mode with hidden layers is much improved: empty\r\ngrid spaces are never shown and stride operates on the *full* layer list, so\r\nlayer grouping doesn't change when you show or hide layers ([#9244](https://github.com/napari/napari/pull/9244)).\r\n\r\n### Fuzzy find in command palette\r\n\r\nHave you used our [command palette](command-palette) yet? It's a great way to\r\nquickly access and even discover napari functionality. Now, thanks to\r\n[#8661](https://github.com/napari/napari/pull/8661), it's easier to find\r\nfunctions when you don't know the exact name, or you mistyped something. You'll\r\nneed to have [rapidfuzz](https://rapidfuzz.github.io/RapidFuzz/) installed to\r\nmake use of it. It's automatically installed with `napari[all]` or\r\n`napari[optional]`. And if the search feels a bit off, you can set just how\r\nfuzzy you want it to be in Preferences > Experimental > Fuzzy Search Threshold.\r\n\r\n[screenshot or movie to be provided by Lorenzo]\r\n\r\n### 2D slicing of surfaces\r\n\r\nEver since we added surfaces, they have been invisible in 2D slices. Now,\r\nthanks to all the work done on [thick slicing](thick-slicing), surface\r\nslices appear in 2D view ([#8783](https://github.com/napari/napari/pull/8783)).\r\nThis enhancement is accompanied by support for async slicing, which should\r\nimprove viewer responsiveness when slicing large, time varying surfaces, for\r\nexample.\r\n\r\n[movie of ND-cows and slicing]\r\n\r\n... And you can try this out yourself with common .obj surface files thanks to\r\na new built-in reader plugin!\r\n([#9228](https://github.com/napari/napari/pull/9228))\r\n\r\nYou should now be able to drag and drop .obj files into napari and see them\r\ninstantly.\r\n\r\n### Public API for auto contrast limit\r\n\r\nFor a very long time, it's been possible to set automatic contrast limits\r\nupdating on a layer *only* through the graphical user interface. This means an\r\nextra click for many workflows and poorer reproducibility. Thanks to\r\n[#9271](https://github.com/napari/napari/pull/9271), you can now set the\r\n`auto_contrast` attribute on Image layers:\r\n\r\n```python\r\nimage_layer = viewer.add_image(..., auto_contrast=True)\r\n# or\r\nimage_layer.auto_contrast = True\r\n```\r\n\r\n### The life-changing magic of tidying up the Viewer model\r\n\r\nThe napari Viewer model, for historical reasons, is a grab-bag of *many*\r\nattributes, which makes usage, discoverability, and code modularity and\r\ncomposability a major issue. We've taken some *big* steps towards cleaning up\r\none of our most important namespaces by creating Canvas\r\n([#8633](https://github.com/napari/napari/pull/8633)) and Scene\r\n([#9323](https://github.com/napari/napari/pull/9323)) models, which cleans up\r\n([#9363](https://github.com/napari/napari/pull/9363)) and clarifies\r\n([napari/docs#1083](https://github.com/napari/docs/pull/1083)) many parts of\r\nthe API.\r\n\r\nThe old API is in extremely widespread use, so although it is silently\r\ndeprecated, it will continue to work for the foreseeable future. In the\r\nmeantime, the new API should be much friendlier to work with by carefully\r\ngrouping related concepts and APIs. Some examples:\r\n\r\n- `viewer.axes` and `viewer.floating_axes` become `viewer.scene.overlays.axes`\r\n  and `viewer.canvas.overlays.axes`.\r\n- From that API, you may also guess that the scale bar is on\r\n  `viewer.canvas.overlays.scale_bar`.\r\n- You can even get a list of the current overlays (both visible and invisible)\r\n  with `list(viewer.canvas.overlays)` and `list(viewer.scene.overlays)`. (But\r\n  do note that overlays with a `_` prefix are private and may change!)\r\n- `viewer.camera` is now `viewer.scene.camera`.\r\n- Grid mode is now accessed at `viewer.canvas.grid` (e.g.\r\n  `viewer.canvas.grid.enabled = True`).\r\n\r\nThis has also enabled a new public API: you can now query the canvas size (in\r\npixels) without accessing private napari APIs! Check `viewer.canvas.size`!\r\n\r\nThe TL;DR:\r\n\r\n```python\r\n# Canvas Model\r\nviewer.scale_bar -> viewer.canvas.overlays.scale_bar\r\nviewer.text_overlay -> viewer.canvas.overlays.text\r\nviewer.floating_axes -> viewer.canvas.overlays.axes\r\nviewer.grid -> viewer.canvas.grid\r\nNOW EXPOSED -> viewer.canvas.overlays.current_slice\r\nNEW -> viewer.canvas.overlay_tiling\r\nNEW -> viewer.canvas.background_color & viewer.canvas.background_color_override\r\nNEW -> viewer.canvas.size\r\n\r\n# Scene Model\r\nviewer.camera -> viewer.scene.camera\r\nviewer.axes -> viewer.scene.overlays.axes\r\n```\r\n\r\n### Removal of translation code\r\n\r\nSeveral years ago, we started working on implementing localization machinery\r\ninto napari. Unfortunately, this work has been sitting unfinished and unused,\r\nwhile making maintaining napari harder. Given the extra maintenance burden\r\nwithout benefit, we made the difficult decision to remove it from our codebase\r\n([#8935](https://github.com/napari/napari/pull/8935)), with the hope that in\r\nthe future we might restart this effort with a better plan.\r\n\r\nWe do aim to revisit when napari's foundations are more solid, but for now,\r\n`napari.utils.translations` is deprecated. If you have this code in your\r\ncodebase:\r\n\r\n```\r\nfrom napari.utils import translations as trans\r\n```\r\n\r\nplease remove it. (For now, `trans._()` is a no-op.)\r\n\r\n\r\n\r\n## New Features\r\n\r\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\r\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\r\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\r\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\r\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\r\n- Add plugin-defined settings through `ConfigurationContribution`s ([#9308](https://github.com/napari/napari/pull/9308))\r\n- Inherit axis label, scale, unit, and translate from Xarrays ([#9316](https://github.com/napari/napari/pull/9316))\r\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\r\n- Wrap zarr in dask while projecting multi-scale to keep lazy behavior. ([#9408](https://github.com/napari/napari/pull/9408))\r\n\r\n## Improvements\r\n\r\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\r\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\r\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\r\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\r\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\r\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\r\n- Move the layer lock to group with link/unlink in layer list context menu ([#9235](https://github.com/napari/napari/pull/9235))\r\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\r\n- Add multiscale projection `Image` ([#9252](https://github.com/napari/napari/pull/9252))\r\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\r\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\r\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\r\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\r\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\r\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\r\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\r\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\r\n- Scene model ([#9323](https://github.com/napari/napari/pull/9323))\r\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\r\n- Add middle position to canvas overlays (in addition to top and bottom) ([#9374](https://github.com/napari/napari/pull/9374))\r\n- Extend viewbox hiding behaviour on grid to non-1 stride values ([#9397](https://github.com/napari/napari/pull/9397))\r\n\r\n## Performance\r\n\r\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\r\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\r\n- [perf] Remove extra _update_theme call from Window init ([#9376](https://github.com/napari/napari/pull/9376))\r\n\r\n## Bug Fixes\r\n\r\n- [shapes] Preserve selection when changing ndisplay or slices and avoid stale highlights  ([#9059](https://github.com/napari/napari/pull/9059))\r\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\r\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\r\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\r\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\r\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\r\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\r\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\r\n- fix(key_bindings): make navigation keys auto-repeat however they are bound ([#9257](https://github.com/napari/napari/pull/9257))\r\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\r\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\r\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\r\n- OS default behavior consistency : keep popups open when Return is pressed ([#9327](https://github.com/napari/napari/pull/9327))\r\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\r\n- Give cycle color mode a usable default color cycle on Points and Vectors ([#9334](https://github.com/napari/napari/pull/9334))\r\n- Use magnitude of `Layer.scale` for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\r\n- fix(layer_utils): handle non-native byte order in convert_to_uint8 ([#9345](https://github.com/napari/napari/pull/9345))\r\n- Vectors: redraw after edge color mode remaps colors ([#9353](https://github.com/napari/napari/pull/9353))\r\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\r\n- fix(vectors): stop edge-color controls mutating the layer and hiding mode changes ([#9364](https://github.com/napari/napari/pull/9364))\r\n- Fix missing `f` for strings modified in #8935 ([#9371](https://github.com/napari/napari/pull/9371))\r\n- Fix the built-in `nan` colormap setting `bad_color` instead of `nan_color` ([#9373](https://github.com/napari/napari/pull/9373))\r\n- fix: reset `dims axis_labels` when layer labels return to default ([#9398](https://github.com/napari/napari/pull/9398))\r\n\r\n## Deprecations\r\n\r\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\r\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\r\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\r\n- Refactor floating_axes/axes into canvas_axes/scene_axes ([#9363](https://github.com/napari/napari/pull/9363))\r\n\r\n## Documentation\r\n\r\n- Add info about color and intensity to surface guide ([docs#993](https://github.com/napari/docs/pull/993))\r\n- Create a repository mapping with descriptions for the project ([docs#1007](https://github.com/napari/docs/pull/1007))\r\n- Update homepage video for 0.8.0/0.9.0 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\r\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\r\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\r\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\r\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\r\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\r\n-  NAP 10 migration events ([docs#1086](https://github.com/napari/docs/pull/1086))\r\n- Improve tox usage documentation ([docs#1088](https://github.com/napari/docs/pull/1088))\r\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\r\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\r\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\r\n- Update release notes for napari 0.9.0rc1 ([docs#1099](https://github.com/napari/docs/pull/1099))\r\n- Create stubs for npe2 `ConfigurationContribution` ([docs#1100](https://github.com/napari/docs/pull/1100))\r\n- Fix building docs with PyQt6 ([docs#1102](https://github.com/napari/docs/pull/1102))\r\n- Triage team and how-to docs ([docs#1106](https://github.com/napari/docs/pull/1106))\r\n- Mention guided viewer tour ([docs#1107](https://github.com/napari/docs/pull/1107))\r\n- docs: add list of built-in `sample images` ([docs#1111](https://github.com/napari/docs/pull/1111))\r\n- Info about Xarray metadata inheritance ([docs#1113](https://github.com/napari/docs/pull/1113))\r\n- Update overlay docstrings ([#9081](https://github.com/napari/napari/pull/9081))\r\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\r\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\r\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\r\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\r\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\r\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\r\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\r\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\r\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\r\n- Add projection mode to class Image attributes docstring ([#9378](https://github.com/napari/napari/pull/9378))\r\n\r\n## Other Pull Requests\r\n\r\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\r\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\r\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\r\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\r\n- Update info about Canvas and Scene models ([docs#1083](https://github.com/napari/docs/pull/1083))\r\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\r\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\r\n- Add auto labeling as maintenance PR that edit `.pre-commit-config.yml` ([docs#1098](https://github.com/napari/docs/pull/1098))\r\n- [pre-commit.ci] pre-commit autoupdate ([docs#1101](https://github.com/napari/docs/pull/1101))\r\n- Use PyQt6 when build docs on circleci ([docs#1104](https://github.com/napari/docs/pull/1104))\r\n- fix(typing): add type hints and fix mypy errors in `qt_viewer.py` ([#9076](https://github.com/napari/napari/pull/9076))\r\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\r\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\r\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\r\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\r\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\r\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\r\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\r\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\r\n- fix(typing): add typing and fix mypy error in `confirm_close_dialog.py` ([#9170](https://github.com/napari/napari/pull/9170))\r\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\r\n- Add hint for missing qt6-wayland when conda Qt cannot start napari on Wayland ([#9174](https://github.com/napari/napari/pull/9174))\r\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\r\n- fix(typing): add typing and fix mypy error in `qt_current_size_slider.py` ([#9180](https://github.com/napari/napari/pull/9180))\r\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\r\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\r\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\r\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\r\n- Update dev dependencies of napari ([#9211](https://github.com/napari/napari/pull/9211))\r\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\r\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\r\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\r\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\r\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\r\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\r\n- fix(typing): add typing and fix mypy error in `qt_color_mode_combobox.py` ([#9239](https://github.com/napari/napari/pull/9239))\r\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\r\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\r\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\r\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\r\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\r\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\r\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\r\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\r\n- Enable coverage annotation in PR changes view ([#9288](https://github.com/napari/napari/pull/9288))\r\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\r\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\r\n- Simplify tox configuration ([#9309](https://github.com/napari/napari/pull/9309))\r\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\r\n- Remove `make_napari_viewer` from `test_vispy_labels_polygon_overlay` ([#9314](https://github.com/napari/napari/pull/9314))\r\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\r\n- Drop colormap translation dictionaries ([#9358](https://github.com/napari/napari/pull/9358))\r\n- Use LF for all files in gitattributes ([#9359](https://github.com/napari/napari/pull/9359))\r\n- Stop window-owned worker threads when the interpreter shuts down ([#9367](https://github.com/napari/napari/pull/9367))\r\n- Change tox and codecov configuration to simplify local reports ([#9368](https://github.com/napari/napari/pull/9368))\r\n- Update `coverage`, `hypothesis`, `platformdirs`, `pydantic-settings`, `tensorstore`, `virtualenv` ([#9380](https://github.com/napari/napari/pull/9380))\r\n- chore: remove QRangeSliderPopup ([#9382](https://github.com/napari/napari/pull/9382))\r\n- chore: remove qt_size_preview module ([#9385](https://github.com/napari/napari/pull/9385))\r\n- [pre-commit.ci] pre-commit autoupdate ([#9386](https://github.com/napari/napari/pull/9386))\r\n- Fix handling exception when go to fallback source of data in map example ([#9388](https://github.com/napari/napari/pull/9388))\r\n- Update build docs on circleci to PyQt6 and update python ([#9390](https://github.com/napari/napari/pull/9390))\r\n- Fix broken shapes due to incomplete merge ([#9399](https://github.com/napari/napari/pull/9399))\r\n- Bump npe2 minimum for ConfigurationContribution ([#9400](https://github.com/napari/napari/pull/9400))\r\n- Update `hypothesis`, `numpy`, `platformdirs`, `pygments`, `pyside6`, `pytest-rerunfailures`, `tifffile`, `virtualenv` ([#9414](https://github.com/napari/napari/pull/9414))\r\n- [pre-commit.ci] pre-commit autoupdate ([#9420](https://github.com/napari/napari/pull/9420))\r\n- Bump npe2 dependency and constraints to 0.9.0 ([#9422](https://github.com/napari/napari/pull/9422))\r\n- Fix Points.symbol type annotation ([#9423](https://github.com/napari/napari/pull/9423))\r\n- Follow-up: Rename PluginPreferences to PluginSettings ([#9424](https://github.com/napari/napari/pull/9424))\r\n\r\n\r\n## 31 authors added to this release (alphabetical)\r\n\r\n(+) denotes first-time contributors 🥳\r\n\r\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\r\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\r\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\r\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\r\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\r\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\r\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\r\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\r\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\r\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\r\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\r\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\r\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\r\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\r\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\r\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\r\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\r\n- [Lucy Liu](https://github.com/napari/napari/commits?author=lucyleeow) - @lucyleeow\r\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\r\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\r\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\r\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\r\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\r\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\r\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\r\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\r\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\r\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\r\n- [Venkateswarlu Nagineni](https://github.com/napari/napari/commits?author=VenkateswarluNagineni) - @VenkateswarluNagineni +\r\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\r\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\r\n\r\n## 25 reviewers added to this release (alphabetical)\r\n\r\n(+) denotes first-time contributors 🥳\r\n\r\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\r\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\r\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss\r\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\r\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\r\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\r\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\r\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\r\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\r\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\r\n- [Ian Hunt-Isaak](https://github.com/napari/docs/commits?author=ianhi) - @ianhi\r\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\r\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\r\n- [Justus Magin](https://github.com/napari/docs/commits?author=keewis) - @keewis\r\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\r\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\r\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\r\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey\r\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\r\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\r\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\r\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\r\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\r\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\r\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\r\n","mentions_count":37},{"url":"https://api.github.com/repos/napari/napari/releases/373020752","assets_url":"https://api.github.com/repos/napari/napari/releases/373020752/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/373020752/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0rc1","id":373020752,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84WO9hQ","tag_name":"v0.9.0rc1","target_commitish":"f76b6d74b87b1332c813a0520dded15a8c7ad301","name":"v0.9.0rc1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-19T11:28:44Z","updated_at":"2026-08-19T13:19:37Z","published_at":"2026-08-19T12:11:11Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/520817263","id":520817263,"node_id":"RA_kwDOCJ0aI84fCwpv","name":"napari-0.9.0rc1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47167,"digest":"sha256:e3b26bda9c75f0ef4ae224b62b49b76707fff45105eefb89338175087e96f38e","download_count":1,"created_at":"2026-08-19T12:29:33Z","updated_at":"2026-08-19T12:29:34Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520816959","id":520816959,"node_id":"RA_kwDOCJ0aI84fCwk_","name":"napari-0.9.0rc1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":636291573,"digest":"sha256:92c1e32f6f484d7f4ab683b25941d64f0bad701763744c102d9f9700e96cd9a3","download_count":1,"created_at":"2026-08-19T12:29:16Z","updated_at":"2026-08-19T12:29:33Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520823585","id":520823585,"node_id":"RA_kwDOCJ0aI84fCyMh","name":"napari-0.9.0rc1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":41143,"digest":"sha256:82a5f9d5d4eedbc70cc7ee30e43a2070a0309062376bdd764a9d294d1e62ef7d","download_count":1,"created_at":"2026-08-19T12:36:11Z","updated_at":"2026-08-19T12:36:12Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520823227","id":520823227,"node_id":"RA_kwDOCJ0aI84fCyG7","name":"napari-0.9.0rc1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":505230960,"digest":"sha256:478209b24607aa31472b317823b5800493de959539fe664a1b8a3c0dbb9279b7","download_count":2,"created_at":"2026-08-19T12:35:50Z","updated_at":"2026-08-19T12:36:10Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520869530","id":520869530,"node_id":"RA_kwDOCJ0aI84fC9aa","name":"napari-0.9.0rc1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40540,"digest":"sha256:cfc7baea464746f0684fbe18a909a79c0cbbde32706b0e4713fad665f62a589b","download_count":1,"created_at":"2026-08-19T13:19:37Z","updated_at":"2026-08-19T13:19:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520868966","id":520868966,"node_id":"RA_kwDOCJ0aI84fC9Rm","name":"napari-0.9.0rc1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":547479380,"digest":"sha256:7b48c3efa04961f6d1e664feefd9cdfbf8eeb82f8ba3f7dd64725bf7d4c30f7c","download_count":1,"created_at":"2026-08-19T13:19:06Z","updated_at":"2026-08-19T13:19:36Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520799200","id":520799200,"node_id":"RA_kwDOCJ0aI84fCsPg","name":"napari-0.9.0rc1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3695989,"digest":"sha256:9fc1a59ea7763047ef5ed85f1a75dfd733f4d4d6355f2b9de071fa81384dfaaa","download_count":2,"created_at":"2026-08-19T12:11:10Z","updated_at":"2026-08-19T12:11:11Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520809061","id":520809061,"node_id":"RA_kwDOCJ0aI84fCupl","name":"napari-0.9.0rc1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":605396280,"digest":"sha256:4a77eb3b8525b55e2ef4340672a8cc3e9ff7711dcee13ba1e40eb2936e5e649c","download_count":12,"created_at":"2026-08-19T12:21:06Z","updated_at":"2026-08-19T12:21:19Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520809275","id":520809275,"node_id":"RA_kwDOCJ0aI84fCus7","name":"napari-0.9.0rc1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37279,"digest":"sha256:dbf6a5a423aa55209390cdb7cdcae77d1d095bdc4f91320282f1dcf8566238f2","download_count":1,"created_at":"2026-08-19T12:21:19Z","updated_at":"2026-08-19T12:21:20Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520799196","id":520799196,"node_id":"RA_kwDOCJ0aI84fCsPc","name":"napari-0.9.0rc1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3267564,"digest":"sha256:c3aae052172cd4aebda99e6a60b59e3b79cdd3809d1bc00a072baa9d69197d88","download_count":2,"created_at":"2026-08-19T12:11:10Z","updated_at":"2026-08-19T12:11:11Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0rc1/napari-0.9.0rc1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0rc1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0rc1","body":"# napari 0.9.0\n⚠️ *Note: these release notes are still in draft while 0.9.0rc1 is in prerelease testing.* ⚠️\n\n*Thu, Aug 20, 2026*\n\nWe're happy to announce the release of napari 0.9.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Auto-labelling of viewer axes\n\nnapari 0.5.0 laid the ground work for more accurate metadata handling by\nallowing users and plugins to set the `axis_labels` on layers. napari 0.9.0\n*finally* capitalises on that work by automatically labelling viewer axes based\non the axis labels of layers present in the viewer.\n([#9282](https://github.com/napari/napari/pull/9282))\n\nNow, opening a dataset with labelled axes will result in correctly labelled\naxes in the viewer:\n\n![napari screenshot showing inherited labeled viewer axes](https://us1.discourse-cdn.com/flex015/uploads/imagej/original/3X/6/7/67f30f24a32465ffdee330b59a7e342ec89e1ce1.png)]\n\nAdditionally, when you create a new layer from an existing one using the\nbuttons in the GUI, the new layer now inherits the axis labels of the layer(s)\nit was derived from. ([#9293](https://github.com/napari/napari/pull/9293))\n\nThere is still work to be done here. For example, if layers have labels that\nare inconsistent with each other, napari will simply ignore layers with fewer\ndimensions, or layers added later. But, for most use cases, layer and viewer\nmetadata will now be much more informative!\n\n### Layer controls for multiple selected layers\n\nUntil now, layer controls only appeared when a single layer was selected. Now,\nnapari dynamically builds the layer controls from your selection, so\nwhen you select several layers at once you can see and use the controls that\nare shared between them. Pan-zoom is always available, while the layer-specific\nbuttons still appear only when a single layer is selected.\n([#9318](https://github.com/napari/napari/pull/9318))\n\nThere's also an experimental setting, *Generate GUI layer controls dynamically\ninstead of using premade panels*, that makes napari use the new dynamic\ncontrols even for single layers.\n\n### Xarray metadata is now inherited\n\nIf you work with [Xarray](https://docs.xarray.dev/) — common in climate,\ngeoscience, and many places where data ships with labelled coordinates — napari\nnow reads metadata straight from your `DataArray`s. When you add an xarray\nobject to the viewer, napari will use its dimension names as axis labels, infer\n`scale` and `translate` from the coordinate values, and pick up `units` from\nCF-convention `units` attributes on coordinates ([#9316](https://github.com/napari/napari/pull/9316)).\nThis closed an 8-year old issue: [#14](https://github.com/napari/napari/issues/14)!\n\n### Status bar coordinates as floats\n\nContinuing on the theme of improved metadata, when scale and/or unit metadata\nis set on the layer, the status bar coordinates now have increased precision,\nwhere before they were limited to just integers. This means you can have more\naccurate physical estimates of your data coordinates when exploring data.\n([#9287](https://github.com/napari/napari/pull/9287))\n\n### Take a guided tour of the viewer\n\nNew to napari, or just want a quick refresher on where everything lives? There's\nnow a guided tour, available from **Help → Take a tour**. The tour highlights\nthe main areas of the viewer — the canvas, the layer list, layer controls, the\nviewer buttons, the dimension sliders, and the status bar — so you can get your\nbearings in seconds. If the viewer is empty, napari opens the built-in *Balls*\n(3D) sample data so the walkthrough has something to show ([#9290](https://github.com/napari/napari/pull/9290)).\n\n### Contributable plugin preferences\n\nPlugins can now ship their own preferences ([#9308](https://github.com/napari/napari/pull/9308))!\nBy declaring `configurations` in\ntheir `napari.yaml` manifest, plugins get their own settings — stored\nseparately from napari's own settings, automatically added to and editable from\nthe napari **Preferences** dialog, and accessible programmatically from Python:\n\n```python\nfrom napari.settings import get_plugin_settings\n\nsettings = get_plugin_settings(\"my-plugin\")\nsettings.reader.lazy = True\n```\n\nRead more in the [Configurations Guide](https://napari.org/dev/plugins/building_a_plugin/guides.html#configurations)\nto learn more about how to add this new contribution to your own plugins.\n\n### Adjust grid rendering with hidden layers\n\nSpeaking of grid mode: grid mode with hidden layers is much improved: empty\ngrid spaces are never shown and stride operates on the *full* layer list, so\nlayer grouping doesn't change when you show or hide layers ([#9244](https://github.com/napari/napari/pull/9244)).\n\n### Fuzzy find in command palette\n\nHave you used our [command palette](command-palette) yet? It's a great way to\nquickly access and even discover napari functionality. Now, thanks to\n[#8661](https://github.com/napari/napari/pull/8661), it's easier to find\nfunctions when you don't know the exact name, or you mistyped something. You'll\nneed to have [rapidfuzz](https://rapidfuzz.github.io/RapidFuzz/) installed to\nmake use of it. It's automatically installed with `napari[all]` or\n`napari[optional]`. And if the search feels a bit off, you can set just how\nfuzzy you want it to be in Preferences > Experimental > Fuzzy Search Threshold.\n\n[screenshot or movie to be provided by Lorenzo]\n\n### 2D slicing of surfaces\n\nEver since we added surfaces, they have been invisible in 2D slices. Now,\nthanks to all the work done on [thick slicing](thick-slicing), surface\nslices appear in 2D view ([#8783](https://github.com/napari/napari/pull/8783)).\nThis enhancement is accompanied by support for async slicing, which should\nimprove viewer responsiveness when slicing large, time varying surfaces, for\nexample.\n\n[movie of ND-cows and slicing]\n\n... And you can try this out yourself with common .obj surface files thanks to\na new built-in reader plugin!\n([#9228](https://github.com/napari/napari/pull/9228))\n\nYou should now be able to drag and drop .obj files into napari and see them\ninstantly.\n\n### Public API for auto contrast limit\n\nFor a very long time, it's been possible to set automatic contrast limits\nupdating on a layer *only* through the graphical user interface. This means an\nextra click for many workflows and poorer reproducibility. Thanks to\n[#9271](https://github.com/napari/napari/pull/9271), you can now set the\n`auto_contrast` attribute on Image layers:\n\n```python\nimage_layer = viewer.add_image(..., auto_contrast=True)\n# or\nimage_layer.auto_contrast = True\n```\n\n### The life-changing magic of tidying up the Viewer model\n\nThe napari Viewer model, for historical reasons, is a grab-bag of *many*\nattributes, which makes usage, discoverability, and code modularity and\ncomposability a major issue. We've taken some *big* steps towards cleaning up\none of our most important namespaces by creating Canvas\n([#8633](https://github.com/napari/napari/pull/8633)) and Scene\n([#9323](https://github.com/napari/napari/pull/9323)) models, which cleans up\n([#9363](https://github.com/napari/napari/pull/9363)) and clarifies\n([napari/docs#1083](https://github.com/napari/docs/pull/1083)) many parts of\nthe API.\n\nThe old API is in extremely widespread use, so although it is silently\ndeprecated, it will continue to work for the foreseeable future. In the\nmeantime, the new API should be much friendlier to work with by carefully\ngrouping related concepts and APIs. Some examples:\n\n- `viewer.axes` and `viewer.floating_axes` become `viewer.scene.overlays.axes`\n  and `viewer.canvas.overlays.axes`.\n- From that API, you may also guess that the scale bar is on\n  `viewer.canvas.overlays.scale_bar`.\n- You can even get a list of the current overlays (both visible and invisible)\n  with `list(viewer.canvas.overlays)` and `list(viewer.scene.overlays)`. (But\n  do note that overlays with a `_` prefix are private and may change!)\n- `viewer.camera` is now `viewer.scene.camera`.\n- Grid mode is now accessed at `viewer.canvas.grid` (e.g.\n  `viewer.canvas.grid.enabled = True`).\n\nThis has also enabled a new public API: you can now query the canvas size (in\npixels) without accessing private napari APIs! Check `viewer.canvas.size`!\n\nThe TL;DR:\n\n```python\n# Canvas Model\nviewer.scale_bar -> viewer.canvas.overlays.scale_bar\nviewer.text_overlay -> viewer.canvas.overlays.text\nviewer.floating_axes -> viewer.canvas.overlays.axes\nviewer.grid -> viewer.canvas.grid\nNOW EXPOSED -> viewer.canvas.overlays.current_slice\nNEW -> viewer.canvas.overlay_tiling\nNEW -> viewer.canvas.background_color & viewer.canvas.background_color_override\nNEW -> viewer.canvas.size\n\n# Scene Model\nviewer.camera -> viewer.scene.camera\nviewer.axes -> viewer.scene.overlays.axes\n```\n\n### Removal of translation code\n\nSeveral years ago, we started working on implementing localization machinery\ninto napari. Unfortunately, this work has been sitting unfinished and unused,\nwhile making maintaining napari harder. Given the extra maintenance burden\nwithout benefit, we made the difficult decision to remove it from our codebase\n([#8935](https://github.com/napari/napari/pull/8935)), with the hope that in\nthe future we might restart this effort with a better plan.\n\nWe do aim to revisit when napari's foundations are more solid, but for now,\n`napari.utils.translations` is deprecated. If you have this code in your\ncodebase:\n\n```\nfrom napari.utils import translations as trans\n```\n\nplease remove it. (For now, `trans._()` is a no-op.)\n\n\n\n## New Features\n\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\n- Add plugin-defined settings through `ConfigurationContribution`s ([#9308](https://github.com/napari/napari/pull/9308))\n- Inherit axis label, scale, unit, and translate from Xarrays ([#9316](https://github.com/napari/napari/pull/9316))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- Wrap zarr in dask while projecting multi-scale to keep lazy behavior. ([#9408](https://github.com/napari/napari/pull/9408))\n\n## Improvements\n\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\n- Move the layer lock to group with link/unlink in layer list context menu ([#9235](https://github.com/napari/napari/pull/9235))\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\n- Add multiscale projection `Image` ([#9252](https://github.com/napari/napari/pull/9252))\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- Scene model ([#9323](https://github.com/napari/napari/pull/9323))\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\n- Add middle position to canvas overlays (in addition to top and bottom) ([#9374](https://github.com/napari/napari/pull/9374))\n- Extend viewbox hiding behaviour on grid to non-1 stride values ([#9397](https://github.com/napari/napari/pull/9397))\n\n## Performance\n\n- [perf] Use chunk-aware loading for 2d multiscale ([#9145](https://github.com/napari/napari/pull/9145))\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\n- [perf] Remove extra _update_theme call from Window init ([#9376](https://github.com/napari/napari/pull/9376))\n\n## Bug Fixes\n\n- [shapes] Preserve selection when changing ndisplay or slices and avoid stale highlights  ([#9059](https://github.com/napari/napari/pull/9059))\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\n- fix(key_bindings): make navigation keys auto-repeat however they are bound ([#9257](https://github.com/napari/napari/pull/9257))\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\n- OS default behavior consistency : keep popups open when Return is pressed ([#9327](https://github.com/napari/napari/pull/9327))\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\n- Give cycle color mode a usable default color cycle on Points and Vectors ([#9334](https://github.com/napari/napari/pull/9334))\n- Use magnitude of `Layer.scale` for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\n- fix(layer_utils): handle non-native byte order in convert_to_uint8 ([#9345](https://github.com/napari/napari/pull/9345))\n- Vectors: redraw after edge color mode remaps colors ([#9353](https://github.com/napari/napari/pull/9353))\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\n- fix(vectors): stop edge-color controls mutating the layer and hiding mode changes ([#9364](https://github.com/napari/napari/pull/9364))\n- Fix missing `f` for strings modified in #8935 ([#9371](https://github.com/napari/napari/pull/9371))\n- Fix the built-in `nan` colormap setting `bad_color` instead of `nan_color` ([#9373](https://github.com/napari/napari/pull/9373))\n- fix: reset `dims axis_labels` when layer labels return to default ([#9398](https://github.com/napari/napari/pull/9398))\n\n## Deprecations\n\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- Refactor out-of-slice display for vectors into a projection mode ([#9032](https://github.com/napari/napari/pull/9032))\n- Refactor floating_axes/axes into canvas_axes/scene_axes ([#9363](https://github.com/napari/napari/pull/9363))\n\n## Documentation\n\n- Add info about color and intensity to surface guide ([docs#993](https://github.com/napari/docs/pull/993))\n- Create a repository mapping with descriptions for the project ([docs#1007](https://github.com/napari/docs/pull/1007))\n- Update homepage video for 0.8.0/0.9.0 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\n-  NAP 10 migration events ([docs#1086](https://github.com/napari/docs/pull/1086))\n- Improve tox usage documentation ([docs#1088](https://github.com/napari/docs/pull/1088))\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\n- Update release notes for napari 0.9.0rc1 ([docs#1099](https://github.com/napari/docs/pull/1099))\n- Create stubs for npe2 `ConfigurationContribution` ([docs#1100](https://github.com/napari/docs/pull/1100))\n- Fix building docs with PyQt6 ([docs#1102](https://github.com/napari/docs/pull/1102))\n- Triage team and how-to docs ([docs#1106](https://github.com/napari/docs/pull/1106))\n- Mention guided viewer tour ([docs#1107](https://github.com/napari/docs/pull/1107))\n- docs: add list of built-in `sample images` ([docs#1111](https://github.com/napari/docs/pull/1111))\n- Info about Xarray metadata inheritance ([docs#1113](https://github.com/napari/docs/pull/1113))\n- Update overlay docstrings ([#9081](https://github.com/napari/napari/pull/9081))\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\n- Add guided viewer tour ([#9290](https://github.com/napari/napari/pull/9290))\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\n- Add projection mode to class Image attributes docstring ([#9378](https://github.com/napari/napari/pull/9378))\n\n## Other Pull Requests\n\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\n- Update info about Canvas and Scene models ([docs#1083](https://github.com/napari/docs/pull/1083))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\n- Add auto labeling as maintenance PR that edit `.pre-commit-config.yml` ([docs#1098](https://github.com/napari/docs/pull/1098))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1101](https://github.com/napari/docs/pull/1101))\n- Use PyQt6 when build docs on circleci ([docs#1104](https://github.com/napari/docs/pull/1104))\n- fix(typing): add type hints and fix mypy errors in `qt_viewer.py` ([#9076](https://github.com/napari/napari/pull/9076))\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\n- fix(typing): add typing and fix mypy error in `confirm_close_dialog.py` ([#9170](https://github.com/napari/napari/pull/9170))\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\n- Add hint for missing qt6-wayland when conda Qt cannot start napari on Wayland ([#9174](https://github.com/napari/napari/pull/9174))\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\n- fix(typing): add typing and fix mypy error in `qt_current_size_slider.py` ([#9180](https://github.com/napari/napari/pull/9180))\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\n- Update dev dependencies of napari ([#9211](https://github.com/napari/napari/pull/9211))\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\n- fix(typing): add typing and fix mypy error in `qt_color_mode_combobox.py` ([#9239](https://github.com/napari/napari/pull/9239))\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\n- Enable coverage annotation in PR changes view ([#9288](https://github.com/napari/napari/pull/9288))\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\n- Simplify tox configuration ([#9309](https://github.com/napari/napari/pull/9309))\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\n- Remove `make_napari_viewer` from `test_vispy_labels_polygon_overlay` ([#9314](https://github.com/napari/napari/pull/9314))\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\n- Drop colormap translation dictionaries ([#9358](https://github.com/napari/napari/pull/9358))\n- Use LF for all files in gitattributes ([#9359](https://github.com/napari/napari/pull/9359))\n- Stop window-owned worker threads when the interpreter shuts down ([#9367](https://github.com/napari/napari/pull/9367))\n- Change tox and codecov configuration to simplify local reports ([#9368](https://github.com/napari/napari/pull/9368))\n- Update `coverage`, `hypothesis`, `platformdirs`, `pydantic-settings`, `tensorstore`, `virtualenv` ([#9380](https://github.com/napari/napari/pull/9380))\n- chore: remove QRangeSliderPopup ([#9382](https://github.com/napari/napari/pull/9382))\n- chore: remove qt_size_preview module ([#9385](https://github.com/napari/napari/pull/9385))\n- [pre-commit.ci] pre-commit autoupdate ([#9386](https://github.com/napari/napari/pull/9386))\n- Fix handling exception when go to fallback source of data in map example ([#9388](https://github.com/napari/napari/pull/9388))\n- Update build docs on circleci to PyQt6 and update python ([#9390](https://github.com/napari/napari/pull/9390))\n- Fix broken shapes due to incomplete merge ([#9399](https://github.com/napari/napari/pull/9399))\n- Bump npe2 minimum for ConfigurationContribution ([#9400](https://github.com/napari/napari/pull/9400))\n- Update `hypothesis`, `numpy`, `platformdirs`, `pygments`, `pyside6`, `pytest-rerunfailures`, `tifffile`, `virtualenv` ([#9414](https://github.com/napari/napari/pull/9414))\n- [pre-commit.ci] pre-commit autoupdate ([#9420](https://github.com/napari/napari/pull/9420))\n- Bump npe2 dependency and constraints to 0.9.0 ([#9422](https://github.com/napari/napari/pull/9422))\n- Fix Points.symbol type annotation ([#9423](https://github.com/napari/napari/pull/9423))\n- Follow-up: Rename PluginPreferences to PluginSettings ([#9424](https://github.com/napari/napari/pull/9424))\n\n\n## 31 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Lucy Liu](https://github.com/napari/napari/commits?author=lucyleeow) - @lucyleeow\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Venkateswarlu Nagineni](https://github.com/napari/napari/commits?author=VenkateswarluNagineni) - @VenkateswarluNagineni +\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) - @DragaDoncila\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Ian Hunt-Isaak](https://github.com/napari/docs/commits?author=ianhi) - @ianhi\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Justus Magin](https://github.com/napari/docs/commits?author=keewis) - @keewis\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) ([docs](https://github.com/napari/docs/commits?author=sdiebolt))  - @sdiebolt\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wouter-Michiel Vierdag](https://github.com/napari/docs/commits?author=melonora) - @melonora\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n","mentions_count":37},{"url":"https://api.github.com/repos/napari/napari/releases/372672687","assets_url":"https://api.github.com/repos/napari/napari/releases/372672687/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/372672687/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0b1","id":372672687,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84WNoiv","tag_name":"v0.9.0b1","target_commitish":"1796d6181366693d7786c81c51f20f40e8cd694b","name":"v0.9.0b1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-18T21:55:23Z","updated_at":"2026-08-18T22:17:46Z","published_at":"2026-08-18T22:04:40Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/520032595","id":520032595,"node_id":"RA_kwDOCJ0aI84e_xFT","name":"napari-0.9.0b1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47120,"digest":"sha256:f4378a13a16f860f15df8fc0b63b3bd9e9ba4bb68aeea52430c9d9680329f037","download_count":1,"created_at":"2026-08-18T22:11:06Z","updated_at":"2026-08-18T22:11:06Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520032282","id":520032282,"node_id":"RA_kwDOCJ0aI84e_xAa","name":"napari-0.9.0b1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":636250610,"digest":"sha256:03a42b8b70c13a9e64b3604d3d799d40bc88ee197d7e0a8ea87130b876ee7dce","download_count":1,"created_at":"2026-08-18T22:10:49Z","updated_at":"2026-08-18T22:11:05Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520038231","id":520038231,"node_id":"RA_kwDOCJ0aI84e_ydX","name":"napari-0.9.0b1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":41096,"digest":"sha256:caeb15805f497f481e89094ff6fce1227fe86626542ab03479a22b74949874c4","download_count":1,"created_at":"2026-08-18T22:17:04Z","updated_at":"2026-08-18T22:17:04Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520037650","id":520037650,"node_id":"RA_kwDOCJ0aI84e_yUS","name":"napari-0.9.0b1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":505197239,"digest":"sha256:60879c018b6ed5cd0e49cf05aec579c9c714914eef99a8911fadef0ca3e38083","download_count":1,"created_at":"2026-08-18T22:16:30Z","updated_at":"2026-08-18T22:17:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520038884","id":520038884,"node_id":"RA_kwDOCJ0aI84e_ynk","name":"napari-0.9.0b1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40493,"digest":"sha256:c0bc08bfe38f69a71cdf8a780df8b739feef5857d0b9321add5b65638bf8f58d","download_count":1,"created_at":"2026-08-18T22:17:46Z","updated_at":"2026-08-18T22:17:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520038546","id":520038546,"node_id":"RA_kwDOCJ0aI84e_yiS","name":"napari-0.9.0b1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":547446266,"digest":"sha256:f3954769c1aba0dbf81f06f7a01bf1875a01d66a6cc2bb4f3d03987f6500bc26","download_count":1,"created_at":"2026-08-18T22:17:20Z","updated_at":"2026-08-18T22:17:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520026077","id":520026077,"node_id":"RA_kwDOCJ0aI84e_vfd","name":"napari-0.9.0b1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3597456,"digest":"sha256:731edafe80262484b3c60a1513b9188e7830f99a6d577d3b41f76a7c58372b85","download_count":1,"created_at":"2026-08-18T22:04:39Z","updated_at":"2026-08-18T22:04:39Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520035585","id":520035585,"node_id":"RA_kwDOCJ0aI84e_x0B","name":"napari-0.9.0b1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":605358256,"digest":"sha256:d937f5debc0657f8397657ad74894c6e8704936028543037aa41d8d99ba76265","download_count":8,"created_at":"2026-08-18T22:14:25Z","updated_at":"2026-08-18T22:14:42Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520035885","id":520035885,"node_id":"RA_kwDOCJ0aI84e_x4t","name":"napari-0.9.0b1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37232,"digest":"sha256:fbf5a68c396a4f09858c7d85ea86ed5732111eccab515580b0f3d7f5cc371c77","download_count":1,"created_at":"2026-08-18T22:14:42Z","updated_at":"2026-08-18T22:14:42Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/520026078","id":520026078,"node_id":"RA_kwDOCJ0aI84e_vfe","name":"napari-0.9.0b1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3215791,"digest":"sha256:5389615203bcd0dc65b8d6c4d43895f9f08e408ed9c8267e505298f7e3d5ab4e","download_count":1,"created_at":"2026-08-18T22:04:39Z","updated_at":"2026-08-18T22:04:39Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0b1/napari-0.9.0b1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0b1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0b1","body":"# napari 0.9.0\n⚠️ *Note: these release notes are still in draft while 0.9.0a1 is in prerelease testing.* ⚠️\n\n*Mon, Aug 17, 2026*\n\nWe're happy to announce the release of napari 0.9.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Fuzzy find in command palette\n\nImplement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n\n### Adjust grid rendering with hidden layers\n\nIf using grid layout without using stride, there are no blanks fields for hidden layers\nthanks to [#9244](https://github.com/napari/napari/pull/9244)\n\n### Inherit axis labels from layers\n\nThanks to [#9282](https://github.com/napari/napari/pull/9282) the axis labels in interface, next to slide and `Dims.axis_labels`\nare calculated based on axis labels of layers\n\n### Status bar coordinates as floats\n\nThanks to [#9287](https://github.com/napari/napari/pull/9287) we no longer render coordinates on scale bar\nas integers, but as floats. It is important for all who use fractional\n`Layer.scale`\n\n### Public API for auto contrast limit\n\nIn [#9271](https://github.com/napari/napari/pull/9271) the public API for auto contrast limits is added\n\n\n\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- Remove translations code ([#8935](https://github.com/napari/napari/pull/8935))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n\n\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n\n## New Features\n\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n\n## Improvements\n\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\n- Move the layer lock to group with link/unlink, rather than with visib… ([#9235](https://github.com/napari/napari/pull/9235))\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\n\n## Performance\n\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\n\n## Bug Fixes\n\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\n- Use magnitude of Layer.scale for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\n\n## Documentation\n\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\n- Update homepage video for 0.8.0/.1 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\n\n## Other Pull Requests\n\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\n\n\n## 24 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n","mentions_count":28},{"url":"https://api.github.com/repos/napari/napari/releases/368215678","assets_url":"https://api.github.com/repos/napari/napari/releases/368215678/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/368215678/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0a2","id":368215678,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84V8oZ-","tag_name":"v0.9.0a2","target_commitish":"089ab2f8ed40e103c0467fb9e28a999d1e182ae3","name":"v0.9.0a2","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-10T20:18:50Z","updated_at":"2026-08-10T22:25:26Z","published_at":"2026-08-10T21:49:58Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/509305641","id":509305641,"node_id":"RA_kwDOCJ0aI84eW2Mp","name":"napari-0.9.0a2-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47122,"digest":"sha256:0e3733036564713605961edf77f37b2ca1013a1d778e39528ea18bee293c52ce","download_count":1,"created_at":"2026-08-10T21:56:18Z","updated_at":"2026-08-10T21:56:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509305483","id":509305483,"node_id":"RA_kwDOCJ0aI84eW2KL","name":"napari-0.9.0a2-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":672653810,"digest":"sha256:6d5630b498a1faa829ccb936b6c07ba0dcbe3593e90b9a64c624c120b6e5fa1d","download_count":5,"created_at":"2026-08-10T21:56:02Z","updated_at":"2026-08-10T21:56:17Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509333753","id":509333753,"node_id":"RA_kwDOCJ0aI84eW9D5","name":"napari-0.9.0a2-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":41091,"digest":"sha256:13af20847c1f68f0e4a095aa1413f66bba4a672dfd0b5fcee759b4717f4d9d6f","download_count":1,"created_at":"2026-08-10T22:25:26Z","updated_at":"2026-08-10T22:25:26Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509333386","id":509333386,"node_id":"RA_kwDOCJ0aI84eW8-K","name":"napari-0.9.0a2-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":521855033,"digest":"sha256:d603abb6dc2f3c15d522bd7d028d4c7bb116661852c74ccd225a13df92f34245","download_count":2,"created_at":"2026-08-10T22:25:04Z","updated_at":"2026-08-10T22:25:25Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509323792","id":509323792,"node_id":"RA_kwDOCJ0aI84eW6oQ","name":"napari-0.9.0a2-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40488,"digest":"sha256:4ef8d75b0926914b0af6e06f5457eaa8f18aaa7f02706dbd2b48cab60c81d795","download_count":1,"created_at":"2026-08-10T22:15:11Z","updated_at":"2026-08-10T22:15:11Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509323480","id":509323480,"node_id":"RA_kwDOCJ0aI84eW6jY","name":"napari-0.9.0a2-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":564669543,"digest":"sha256:da5ea5049efa8f3dc562f4f203ca1adb8f3151365584fa498d4000bb658dee13","download_count":2,"created_at":"2026-08-10T22:14:47Z","updated_at":"2026-08-10T22:15:10Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509299978","id":509299978,"node_id":"RA_kwDOCJ0aI84eW00K","name":"napari-0.9.0a2-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3576931,"digest":"sha256:474aa3ec40b6eb9b49f89352a1e566a7c80d10ed19ce83915e93b2982eedd38a","download_count":3,"created_at":"2026-08-10T21:49:57Z","updated_at":"2026-08-10T21:49:58Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509309055","id":509309055,"node_id":"RA_kwDOCJ0aI84eW3B_","name":"napari-0.9.0a2-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":621258432,"digest":"sha256:7aef7254fdd9b11799d673b79793e27aac8491577b9a90acf9fd57bf92f933c2","download_count":13,"created_at":"2026-08-10T21:59:55Z","updated_at":"2026-08-10T22:00:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509309294","id":509309294,"node_id":"RA_kwDOCJ0aI84eW3Fu","name":"napari-0.9.0a2-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37232,"digest":"sha256:8cf106c538912ce0994f60c5df8640037cf3e09b1439f59a19acd4330af5257f","download_count":1,"created_at":"2026-08-10T22:00:08Z","updated_at":"2026-08-10T22:00:08Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/509299979","id":509299979,"node_id":"RA_kwDOCJ0aI84eW00L","name":"napari-0.9.0a2.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3194726,"digest":"sha256:fe4cd8ae56bb1cff2dc85587427e511b6f00ac0efb84e3c3a0b84947fc25e008","download_count":4,"created_at":"2026-08-10T21:49:57Z","updated_at":"2026-08-10T21:49:58Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a2/napari-0.9.0a2.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0a2","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0a2","body":"# napari 0.9.0\n⚠️ *Note: these release notes are still in draft while 0.9.0a1 is in prerelease testing.* ⚠️\n\n*Mon, Aug 17, 2026*\n\nWe're happy to announce the release of napari 0.9.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Fuzzy find in command palette\n\nImplement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n\n### Adjust grid rendering with hidden layers\n\nIf using grid layout without using stride, there are no blanks fields for hidden layers\nthanks to [#9244](https://github.com/napari/napari/pull/9244)\n\n### Inherit axis labels from layers\n\nThanks to [#9282](https://github.com/napari/napari/pull/9282) the axis labels in interface, next to slide and `Dims.axis_labels`\nare calculated based on axis labels of layers\n\n### Status bar coordinates as floats\n\nThanks to [#9287](https://github.com/napari/napari/pull/9287) we no longer render coordinates on scale bar\nas integers, but as floats. It is important for all who use fractional\n`Layer.scale`\n\n### Public API for auto contrast limit\n\nIn [#9271](https://github.com/napari/napari/pull/9271) the public API for auto contrast limits is added\n\n\n\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- Remove translations code ([#8935](https://github.com/napari/napari/pull/8935))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n\n\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n\n## New Features\n\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n\n## Improvements\n\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\n- Move the layer lock to group with link/unlink, rather than with visib… ([#9235](https://github.com/napari/napari/pull/9235))\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\n\n## Performance\n\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\n\n## Bug Fixes\n\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\n- Use magnitude of Layer.scale for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\n\n## Documentation\n\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\n- Update homepage video for 0.8.0/.1 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\n\n## Other Pull Requests\n\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\n\n\n## 24 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/368215678/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"mentions_count":28},{"url":"https://api.github.com/repos/napari/napari/releases/365682446","assets_url":"https://api.github.com/repos/napari/napari/releases/365682446/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/365682446/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.9.0a1","id":365682446,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84Vy98O","tag_name":"v0.9.0a1","target_commitish":"7cc9041997efef8acedb05de7697b517ec548b59","name":"v0.9.0a1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-08-05T15:41:55Z","updated_at":"2026-08-05T18:47:53Z","published_at":"2026-08-05T16:58:27Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/502879609","id":502879609,"node_id":"RA_kwDOCJ0aI84d-VV5","name":"napari-0.9.0a1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47117,"digest":"sha256:9399f5e81c438f70cf9146d40890d4da88b2205db576860730141e1be86a9ffd","download_count":1,"created_at":"2026-08-05T17:07:16Z","updated_at":"2026-08-05T17:07:16Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502879167","id":502879167,"node_id":"RA_kwDOCJ0aI84d-VO_","name":"napari-0.9.0a1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":633895410,"digest":"sha256:3b2297ac7d51b5ab71415e168d44b1a2a64acd1e119d7e5462b487da04e3aa64","download_count":3,"created_at":"2026-08-05T17:06:57Z","updated_at":"2026-08-05T17:07:15Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502880893","id":502880893,"node_id":"RA_kwDOCJ0aI84d-Vp9","name":"napari-0.9.0a1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":41086,"digest":"sha256:d47c08c19e518c02d7540a3db084e2d1be9d8c332e25e4cad88dc8029124790e","download_count":1,"created_at":"2026-08-05T17:08:29Z","updated_at":"2026-08-05T17:08:29Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502880470","id":502880470,"node_id":"RA_kwDOCJ0aI84d-VjW","name":"napari-0.9.0a1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":502961649,"digest":"sha256:6658657b1b2ec2f5d099d03133a73a49329007d2a08a9e442dd9b0939e7a66fc","download_count":2,"created_at":"2026-08-05T17:08:08Z","updated_at":"2026-08-05T17:08:28Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502883857","id":502883857,"node_id":"RA_kwDOCJ0aI84d-WYR","name":"napari-0.9.0a1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40482,"digest":"sha256:7530753dfb589db023c50771c0c206539e2435d6129126b3f467da4aa0114c77","download_count":2,"created_at":"2026-08-05T17:11:17Z","updated_at":"2026-08-05T17:11:17Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502883496","id":502883496,"node_id":"RA_kwDOCJ0aI84d-WSo","name":"napari-0.9.0a1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":545651668,"digest":"sha256:0b58d4fbe4423618bbfc86abbd6613c50221750d01c126f642d268a0c2570611","download_count":3,"created_at":"2026-08-05T17:10:56Z","updated_at":"2026-08-05T17:11:16Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502871968","id":502871968,"node_id":"RA_kwDOCJ0aI84d-Teg","name":"napari-0.9.0a1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3571398,"digest":"sha256:c18bbc3e78500117c0b3bdd3eb0ebfc9b97c578776e24452940a7e958ed5fc0b","download_count":3,"created_at":"2026-08-05T16:58:26Z","updated_at":"2026-08-05T16:58:27Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502966027","id":502966027,"node_id":"RA_kwDOCJ0aI84d-qcL","name":"napari-0.9.0a1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":615855864,"digest":"sha256:75914ed7dfc677862175796ecba18fbc412af3dacaa7d0f91f4c5ea914dd20fe","download_count":11,"created_at":"2026-08-05T18:47:29Z","updated_at":"2026-08-05T18:47:52Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502966392","id":502966392,"node_id":"RA_kwDOCJ0aI84d-qh4","name":"napari-0.9.0a1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37689,"digest":"sha256:f2eabb823f7fc32cf800e5789dd3d0d210eff231871af0f514f4e0a0edf874f7","download_count":1,"created_at":"2026-08-05T18:47:53Z","updated_at":"2026-08-05T18:47:53Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/502871967","id":502871967,"node_id":"RA_kwDOCJ0aI84d-Tef","name":"napari-0.9.0a1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3190668,"digest":"sha256:bc40ff0fc35bc693ba71a1bedc372fd0aa9837bbf4e7012c4a93487510dbcc7d","download_count":3,"created_at":"2026-08-05T16:58:26Z","updated_at":"2026-08-05T16:58:27Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.9.0a1/napari-0.9.0a1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.9.0a1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.9.0a1","body":"# napari 0.9.0\n⚠️ *Note: these release notes are still in draft while 0.9.0a1 is in prerelease testing.* ⚠️\n\n*Mon, Aug 17, 2026*\n\nWe're happy to announce the release of napari 0.9.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Fuzzy find in command palette\n\nImplement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n\n### Adjust grid rendering with hidden layers\n\nIf using grid layout without using stride, there are no blanks fields for hidden layers\nthanks to [#9244](https://github.com/napari/napari/pull/9244)\n\n### Inherit axis labels from layers\n\nThanks to [#9282](https://github.com/napari/napari/pull/9282) the axis labels in interface, next to slide and `Dims.axis_labels`\nare calculated based on axis labels of layers\n\n### Status bar coordinates as floats\n\nThanks to [#9287](https://github.com/napari/napari/pull/9287) we no longer render coordinates on scale bar\nas integers, but as floats. It is important for all who use fractional\n`Layer.scale`\n\n### Public API for auto contrast limit\n\nIn [#9271](https://github.com/napari/napari/pull/9271) the public API for auto contrast limits is added\n\n\n\n- Canvas model ([#8633](https://github.com/napari/napari/pull/8633))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- Remove translations code ([#8935](https://github.com/napari/napari/pull/8935))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n\n\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n\n## New Features\n\n- Implement fuzzy find for the command palette ([#8661](https://github.com/napari/napari/pull/8661))\n- Implement Surface slicing with async request/response ([#8783](https://github.com/napari/napari/pull/8783))\n- Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display ([#8786](https://github.com/napari/napari/pull/8786))\n- feat: add `new` label button to the labels controls ([#9215](https://github.com/napari/napari/pull/9215))\n- Add builtin Wavefront OBJ to surfaces reader ([#9228](https://github.com/napari/napari/pull/9228))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n\n## Improvements\n\n- MAINT Always raise error when `widget_name` given in `get_widget_contribution` ([#6544](https://github.com/napari/napari/pull/6544))\n- move features table widget command to the Metadata menu ([#9231](https://github.com/napari/napari/pull/9231))\n- fix: change the order of edge/face color and border ([#9232](https://github.com/napari/napari/pull/9232))\n- Move the layer lock to group with link/unlink, rather than with visib… ([#9235](https://github.com/napari/napari/pull/9235))\n- fix: adjust the layout based on the hidden layers in grid ([#9244](https://github.com/napari/napari/pull/9244))\n- Improve slider handle conspicuity by using theme's `current` color for active dim  ([#9255](https://github.com/napari/napari/pull/9255))\n- publicly expose auto contrast limits ([#9271](https://github.com/napari/napari/pull/9271))\n- update dims axis labels from layers axis labels ([#9282](https://github.com/napari/napari/pull/9282))\n- Status bar coordinates as floats ([#9287](https://github.com/napari/napari/pull/9287))\n- UX: Indicate web links in Help menu with ↗ (unicode character) ([#9291](https://github.com/napari/napari/pull/9291))\n- New layer inherits axis labels when derived from another layer ([#9293](https://github.com/napari/napari/pull/9293))\n- Adding histogram to surfaces ([#9306](https://github.com/napari/napari/pull/9306))\n- Dynamically construct layer controls based on selection ([#9318](https://github.com/napari/napari/pull/9318))\n- UX/UI: Bump the splitter (separator) size by 1px ([#9344](https://github.com/napari/napari/pull/9344))\n\n## Performance\n\n- [perf] Defer PIL import in labels.py polygon mask ([#9205](https://github.com/napari/napari/pull/9205))\n\n## Bug Fixes\n\n- Fix multiscale level selection for anisotropic data ([#9201](https://github.com/napari/napari/pull/9201))\n- fix async colormap ([#9209](https://github.com/napari/napari/pull/9209))\n- Fix cross layer in multiple viewer example to use line vectors. ([#9213](https://github.com/napari/napari/pull/9213))\n- Do not update `current_properties` on Shapes selection changed  ([#9221](https://github.com/napari/napari/pull/9221))\n- fix: action binding the `new-label` tooltips  with shortcuts ([#9230](https://github.com/napari/napari/pull/9230))\n- fix: add minimum value to grid mode strides to allow negative strides ([#9236](https://github.com/napari/napari/pull/9236))\n- fix(qt): dimension sliders need a minimum width ([#9254](https://github.com/napari/napari/pull/9254))\n- Fix sync slicing when toggling to 3D with auto contrast ([#9263](https://github.com/napari/napari/pull/9263))\n- Fix enum breaks from translations removal ([#9274](https://github.com/napari/napari/pull/9274))\n- Fix auto_contrast button state initialization ([#9289](https://github.com/napari/napari/pull/9289))\n- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping ([#9333](https://github.com/napari/napari/pull/9333))\n- Use magnitude of Layer.scale for points/shape handles ([#9339](https://github.com/napari/napari/pull/9339))\n- Change `Dims` slider connection from `textChanged` to `textEdited` to stop wrong updates ([#9355](https://github.com/napari/napari/pull/9355))\n\n## Documentation\n\n- [pre-commit.ci] pre-commit autoupdate ([docs#1069](https://github.com/napari/docs/pull/1069))\n- Update homepage video for 0.8.0/.1 changes ([docs#1070](https://github.com/napari/docs/pull/1070))\n- Enhance contributing documentation with GitHub edit info ([docs#1075](https://github.com/napari/docs/pull/1075))\n- Adding uv to getting started - installation ([docs#1076](https://github.com/napari/docs/pull/1076))\n- make napari logo usage page ([docs#1077](https://github.com/napari/docs/pull/1077))\n- Delete useless line ([docs#1078](https://github.com/napari/docs/pull/1078))\n- Update auto-fill-labels loop video to extend end frame ([docs#1082](https://github.com/napari/docs/pull/1082))\n- Bring several NAPs up to date ([docs#1091](https://github.com/napari/docs/pull/1091))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1095](https://github.com/napari/docs/pull/1095))\n- Update dev instructions to use prek ([docs#1096](https://github.com/napari/docs/pull/1096))\n- Add initial release notes for 0.9.0 ([docs#1097](https://github.com/napari/docs/pull/1097))\n- Update recommended Python version in README from 3.11 to 3.13 ([#9223](https://github.com/napari/napari/pull/9223))\n- Load data from zarr in map example if contextily fails ([#9307](https://github.com/napari/napari/pull/9307))\n\n## Other Pull Requests\n\n- Update label name in condition of label trigger build ([docs#1067](https://github.com/napari/docs/pull/1067))\n- Update version switcher to point to 0.8.0 as stable ([docs#1071](https://github.com/napari/docs/pull/1071))\n- Remove contributing text about adding translations ([docs#1081](https://github.com/napari/docs/pull/1081))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#1094](https://github.com/napari/docs/pull/1094))\n- fix(typing): add typing and fix mypy error in `qt_mode_buttons.py` ([#9110](https://github.com/napari/napari/pull/9110))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- Remove `qt_dict_table.py` as its unused  ([#9119](https://github.com/napari/napari/pull/9119))\n- fix(typing): add typing and fix mypy error in `qt_face_color.py`  ([#9123](https://github.com/napari/napari/pull/9123))\n- fix(typing): add typing and fix mypy error in `_base_item_model.py` ([#9126](https://github.com/napari/napari/pull/9126))\n- fix(typing): add typing and fix mypy error in `_base_item_view.py` ([#9127](https://github.com/napari/napari/pull/9127))\n- fix(typing): add typing and fix mypy error in `qt_axis_model.py` ([#9167](https://github.com/napari/napari/pull/9167))\n- fix(typing): add typing and fix mypy error in `qt_list_model.py` ([#9169](https://github.com/napari/napari/pull/9169))\n- typing: remove `experimental.qt_poll.py` from mypy ignore ([#9171](https://github.com/napari/napari/pull/9171))\n- fix(typing): add typing and fix mypy error in `qt_border_color.py` ([#9179](https://github.com/napari/napari/pull/9179))\n- fix(typing): add typing and fix mypy error in `qt_edge_color.py` ([#9183](https://github.com/napari/napari/pull/9183))\n- fix(typing): resolve mypy errors for `qt_widget_controls_base` ([#9185](https://github.com/napari/napari/pull/9185))\n- Update `coverage`, `dask`, `hypothesis`, `imageio`, `matplotlib`, `platformdirs`, `tifffile`, `tqdm`, `virtualenv`, `xarray` ([#9194](https://github.com/napari/napari/pull/9194))\n- [pre-commit.ci] pre-commit autoupdate ([#9197](https://github.com/napari/napari/pull/9197))\n- Add ``example`` to ``allowed_labels`` in ``check_labels`` job of ``label_and_milestone_checker.yml`` workflow ([#9214](https://github.com/napari/napari/pull/9214))\n- TST: parameterizing with iterables is deprecated in pytest ([#9217](https://github.com/napari/napari/pull/9217))\n- Add stereo 3D viewer widget example ([#9219](https://github.com/napari/napari/pull/9219))\n- Make tensorstore optional dependency of `test_labels` again ([#9220](https://github.com/napari/napari/pull/9220))\n- Remove unnecessary ``FutureWarning`` ignore for ``test_layers_save_svg`` ([#9225](https://github.com/napari/napari/pull/9225))\n- Disable part of test matrix to increase runner availability during sprints/hackathon ([#9226](https://github.com/napari/napari/pull/9226))\n- Add (Euro)SciPy Sprint Authors to Citation ([#9234](https://github.com/napari/napari/pull/9234))\n- fix(typing): add typing and fix mypy error in `qt_brush_size_slider.py` ([#9238](https://github.com/napari/napari/pull/9238))\n- fix(typing): add typing and fix mypy error in `_evented_dict.py` ([#9240](https://github.com/napari/napari/pull/9240))\n- Gallery example of using a background map ([#9245](https://github.com/napari/napari/pull/9245))\n- Adding 4D sample data as a heat diffusion ([#9246](https://github.com/napari/napari/pull/9246))\n- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay ([#9264](https://github.com/napari/napari/pull/9264))\n- ci(dependabot): bump the actions group across 1 directory with 11 updates ([#9265](https://github.com/napari/napari/pull/9265))\n- Remove missing translations GH action ([#9266](https://github.com/napari/napari/pull/9266))\n- Asynchronous loading text fix ([#9267](https://github.com/napari/napari/pull/9267))\n- Pin octokit to tag, not use main branch ([#9268](https://github.com/napari/napari/pull/9268))\n- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem ([#9272](https://github.com/napari/napari/pull/9272))\n- Fix test failures when running napari in tiling window managers by forcing the screenshot size. ([#9284](https://github.com/napari/napari/pull/9284))\n- Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` ([#9295](https://github.com/napari/napari/pull/9295))\n- deprecate setting dims axis labels in examples ([#9297](https://github.com/napari/napari/pull/9297))\n- [pre-commit.ci] pre-commit autoupdate ([#9303](https://github.com/napari/napari/pull/9303))\n- Update latlon with map example to follow PEP8 ([#9312](https://github.com/napari/napari/pull/9312))\n- Example: combine points and vectors to build a 3D structured object ([#9340](https://github.com/napari/napari/pull/9340))\n- Revert \"Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)\" ([#9348](https://github.com/napari/napari/pull/9348))\n\n\n## 24 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Aroj Hada](https://github.com/napari/napari/commits?author=ArozHada) - @ArozHada +\n- [BadPrograms](https://github.com/napari/napari/commits?author=BadPrograms) - @BadPrograms +\n- [Bas Bloemsaat](https://github.com/napari/napari/commits?author=basbloemsaat) - @basbloemsaat +\n- [Christophe Creeten](https://github.com/napari/napari/commits?author=ccreeten) - @ccreeten +\n- [Edouard Coussoux](https://github.com/napari/napari/commits?author=ecoussoux-ansys) - @ecoussoux-ansys +\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kamil Kania](https://github.com/napari/napari/commits?author=Grzyb33k) - @Grzyb33k +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Matthias Schabel](https://github.com/napari/napari/commits?author=matthiasschabel) - @matthiasschabel +\n- [michalslabs](https://github.com/napari/napari/commits?author=michalslabs) ([docs](https://github.com/napari/docs/commits?author=michalslabs))  - @michalslabs +\n- [Mridul Seth](https://github.com/napari/napari/commits?author=MridulS) - @MridulS +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Revathy Venugopal](https://github.com/napari/napari/commits?author=Revathyvenugopal162) - @Revathyvenugopal162 +\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Sébastien Morais](https://github.com/napari/napari/commits?author=SMoraisAnsys) - @SMoraisAnsys +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [arbor](https://github.com/napari/docs/commits?author=arbormoss) - @arbormoss\n- [Arne Defauw](https://github.com/napari/napari/commits?author=ArneDefauw) - @ArneDefauw +\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Filippo  Maria Castelli, PhD](https://github.com/napari/napari/commits?author=filippocastelli) - @filippocastelli +\n- [girochat](https://github.com/napari/napari/commits?author=girochat) - @girochat +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Maxime Rey](https://github.com/napari/docs/commits?author=MaxJPRey) - @MaxJPRey\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Sara Czasak](https://github.com/napari/docs/commits?author=sara-czasak) - @sara-czasak +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz\n","mentions_count":28},{"url":"https://api.github.com/repos/napari/napari/releases/353920700","assets_url":"https://api.github.com/repos/napari/napari/releases/353920700/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/353920700/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0","id":353920700,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84VGGa8","tag_name":"v0.8.0","target_commitish":"2d4c9fadbaf86e819a1b565c4dce983a22baab94","name":"v0.8.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-12T19:17:30Z","updated_at":"2026-07-14T16:29:51Z","published_at":"2026-07-14T16:15:31Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/476900844","id":476900844,"node_id":"RA_kwDOCJ0aI84cbO3s","name":"napari-0.8.0-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47109,"digest":"sha256:3eef1c6c1c947c0a7f827e8c2a503f14f781299297c9d375af3d19bbffb85842","download_count":2,"created_at":"2026-07-14T16:22:07Z","updated_at":"2026-07-14T16:22:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476900491","id":476900491,"node_id":"RA_kwDOCJ0aI84cbOyL","name":"napari-0.8.0-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":625805804,"digest":"sha256:68a6e45b8dfb5e08cb027ea6516993a6308cf7e70ce0e93ac7e8ead678b154dd","download_count":211,"created_at":"2026-07-14T16:21:48Z","updated_at":"2026-07-14T16:22:06Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476904232","id":476904232,"node_id":"RA_kwDOCJ0aI84cbPso","name":"napari-0.8.0-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40965,"digest":"sha256:f09c51e6ed6ca3c3755e9cc76253078b466df125b23853b43f06f11f1f7707b8","download_count":3,"created_at":"2026-07-14T16:25:35Z","updated_at":"2026-07-14T16:25:35Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476904004","id":476904004,"node_id":"RA_kwDOCJ0aI84cbPpE","name":"napari-0.8.0-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":498069529,"digest":"sha256:d777ecc6695d8d95f8be8a10847a82af755d6a0ed4303055d0de80ced5ba9061","download_count":434,"created_at":"2026-07-14T16:25:17Z","updated_at":"2026-07-14T16:25:34Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476907979","id":476907979,"node_id":"RA_kwDOCJ0aI84cbQnL","name":"napari-0.8.0-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40367,"digest":"sha256:cfe6195416a98c3377b19b5b28728d7735eaf0182a3fc1ab14ad9ec4aa2dca22","download_count":2,"created_at":"2026-07-14T16:29:51Z","updated_at":"2026-07-14T16:29:51Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476907599","id":476907599,"node_id":"RA_kwDOCJ0aI84cbQhP","name":"napari-0.8.0-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":538814843,"digest":"sha256:c13a303cc2becea1c20493a94d442ee39d59d871983806352dc15cf896958df8","download_count":187,"created_at":"2026-07-14T16:29:28Z","updated_at":"2026-07-14T16:29:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476895047","id":476895047,"node_id":"RA_kwDOCJ0aI84cbNdH","name":"napari-0.8.0-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3581358,"digest":"sha256:94d2d2acdac03fe4036e96fa72f0fb96623d7199e81bf3a3f5367f13ed8e8bc6","download_count":4,"created_at":"2026-07-14T16:15:29Z","updated_at":"2026-07-14T16:15:29Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476904567","id":476904567,"node_id":"RA_kwDOCJ0aI84cbPx3","name":"napari-0.8.0-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":622501408,"digest":"sha256:4a968ece276bed27b76a5c45f1e1f7672c7db0a4a785a36e4b01aa152684b738","download_count":924,"created_at":"2026-07-14T16:25:53Z","updated_at":"2026-07-14T16:26:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476904966","id":476904966,"node_id":"RA_kwDOCJ0aI84cbP4G","name":"napari-0.8.0-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37572,"digest":"sha256:b276da53758839e95de44a11134959430bbd7c2d2347885efc5671f5b432d119","download_count":3,"created_at":"2026-07-14T16:26:19Z","updated_at":"2026-07-14T16:26:19Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/476895046","id":476895046,"node_id":"RA_kwDOCJ0aI84cbNdG","name":"napari-0.8.0.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3189410,"digest":"sha256:607bd31e7894080b8f271ee69936d58eea73b26db55d0f0bac1cf4b48dbd9de5","download_count":9,"created_at":"2026-07-14T16:15:29Z","updated_at":"2026-07-14T16:15:29Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0/napari-0.8.0.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0","body":"# napari 0.8.0\n\n*Tue, Jul 14, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Dropping Python 3.10 and PyQt5\n\nnapari 0.8.0 drops support for Python 3.10\n([#9104](https://github.com/napari/napari/pull/9104)) and deprecates PyQt5\nsupport ([#9079](https://github.com/napari/napari/pull/9079)).\n\nThese changes are being made to help maintenance of napari. Python 3.10 will\nreach end-of-life support in October 2026, while PyQt5 has already reached\nend-of-life, and is becoming increasingly difficult to maintain as a\ndependency. PyQt6, in contrast, has been the daily driver for the napari core\nteam for many months. As we recognise that PyQt5 has extensive usage in the\ncommunity, we have decided to deprecate it in this release and drop support\nin Q4 2026. If your project still depends on Qt5, consider migrating to PySide6\nor PyQt6. As always, feel free to get in touch\n[on our Zulip](https://napari.zulipchat.com) if you encounter any issues!\n\n### Histogram for Image layer\n\nIt's been a heckuva long time coming, but napari Image layers *finally* gain a\n[built-in histogram (#8391)](https://github.com/napari/napari/pull/8391)!\nWonder no more about why your image looks black or totally washed out — you can\nnow see the distribution of your pixels' brightness right there in the layer\ncontrols, or within the larger contrast limits widget (which, as a reminder,\nyou can access by right clicking on the contrast limits slider).\n\nYou can access the brightness of the current slice (default), or the full\nlayer, *and* it will sample progressively from remote chunks if you are looking\nat large remote data. Try it out!\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/histogram.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/histogram.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/histogram.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing a napari viewer with a 2D canvas showing a slice of a large 3D image. The layer controls include a histogram of image intensities that updates as you pan around the canvas, and also, when selecting the full image, as pixels are drawn from remote data.\"\n    >\n  </video>\n</figure>\n```\n\n### Synced cameras between 2D and 3D views\n\nEver switched between 2D and 3D views to check out your data, only to be\nfrustrated that the zoom and center has been reset? Now, by default, the\ncameras are\n[synced between views (#9151)](https://github.com/napari/napari/pull/9151)!\nThe synced camera's zoom and center persists when switching between 2D and 3D,\nwith the depth (Z) component synced through the dimension slider to complete\nthe round-trip.\n\nTo unlock the cameras from each other for completely separate views, you can\ntoggle `viewer.camera.synced = False` from the Camera popup (right-click 2D/3D\nbutton) or **Toggle Synced Camera** (Ctrl/Cmd+U) in the **View** menu. Set your\npreferred default in **Preferences** -> **Application** -> **Synced Camera**.\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/synced-cameras.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/synced-cameras.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/synced-cameras.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing zoom and position staying in sync between 2D and 3D views of the same data.\"\n    >\n  </video>\n</figure>\n```\n\n### Auto-fill label contours when painting\n\nAnnotating blobs in 2D just got a lot faster! In paint mode, right-click to\nstart a *self-filling* area annotation. Then draw your shape, and when you come\nback around to the start point, the shape will automatically fill with your\nselected label! ([#9075](https://github.com/napari/napari/pull/9075))\nSee it in action below:\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/auto-fill-labels.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/auto-fill-labels.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/auto-fill-labels.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing an annotation around a coin, with the coin filling with the annotated label at the end.\"\n    >\n  </video>\n</figure>\n```\n\nWe intend to keep refining this functionality, so if you like it but it doesn't\n*quite* fit in your workflow, please {ref}`get in touch <community>`!\n\n### Paint into more arrays faster!\n\nLabels painting is now much faster for zarr arrays, and you can now paint into\nother array types such as dask and tensorstore! Painting with very large brush\nsizes (e.g. 1,000) is now possible where it used to be extremely choppy. Give\nit a whirl! ([#8636](https://github.com/napari/napari/pull/8636))\n\n### Floating axes overlay\n\nEver feel disoriented looking at your data? You're not alone. Until\n[#8262](https://github.com/napari/napari/pull/8262), the axes overlay would\nlive in the same space as your data, and would be out of view if you didn't\nhave the top left corner of your data on the canvas. Now you can have a little\n2- or 3-axis compass always on in a corner of the canvas. Find it in the View\nmenu!\n\n### Improving the napari theme\n\nLike many things in community-run open source, napari's theme grew organically\nas we added features and UI elements.\n[#8927](https://github.com/napari/napari/pull/8927) unified the look of many of\nthose elements, while [#9078](https://github.com/napari/napari/pull/9078)\nimproved the default light and dark themes by increasing contrast to meet\n[Web Content Accessibility Guidelines][WCAG]. Want to build your own\nWCAG-compliant theme? Try out the new WCAG table in\n[`examples/theme_sample.py`][theme-sample]\n([#9175](https://github.com/napari/napari/pull/9175))!\n\n![sample showing the theme sample widget along with a WCAG compliance table](https://github.com/user-attachments/assets/44510228-1163-4532-9945-aea5f7657ff0)\n\n[WCAG]: https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines\n[theme-sample]: https://github.com/napari/napari/blob/700a36f148dc073d281b5a9e42bb28cd18ed6a32/examples/theme_sample.py\n\n\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Feat: add cellpose-inspired right-click to encircle mask creation interaction mode ([#9075](https://github.com/napari/napari/pull/9075))\n- Toggleable `synced` (default) and separated camera views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add example driving computation from gui ([#8658](https://github.com/napari/napari/pull/8658))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n- Add WCAG contrast table to Theme Sample example ([#9175](https://github.com/napari/napari/pull/9175))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Fix: napari script runner with multiprocessing ([#8936](https://github.com/napari/napari/pull/8936))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n- Fix: update cached unit scale when layer data dimensionality changes (#9164) ([#9181](https://github.com/napari/napari/pull/9181))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Update Theme contribution guidance ([docs#1002](https://github.com/napari/docs/pull/1002))\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- Update organization ownership policy ([docs#1061](https://github.com/napari/docs/pull/1061))\n- Update 0.8.0 release notes, add highlight ([docs#1062](https://github.com/napari/docs/pull/1062))\n- Add video and fallback image for histogram highlight ([docs#1063](https://github.com/napari/docs/pull/1063))\n- Fix video relative paths which had extra '..' ([docs#1064](https://github.com/napari/docs/pull/1064))\n- Add Camera Guide to explain synced/separate camera modes ([docs#1065](https://github.com/napari/docs/pull/1065))\n- Final update of release notes for 0.8.0 ([docs#1066](https://github.com/napari/docs/pull/1066))\n- Final release notes for 0.8.0 ([docs#1068](https://github.com/napari/docs/pull/1068))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- ci(dependabot): bump the github-actions group across 1 directory with 5 updates ([docs#1057](https://github.com/napari/docs/pull/1057))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n- Clean rest of elements  marked as \"to remove in 0.8.0\"  ([#9191](https://github.com/napari/napari/pull/9191))\n\n\n## 19 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Davin Potts](https://github.com/napari/napari/commits?author=applio) - @applio +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Talley Lambert](https://github.com/napari/napari/commits?author=tlambert03) - @tlambert03\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 18 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [carsen-stringer](https://github.com/napari/docs/commits?author=carsen-stringer) - @carsen-stringer\n- [Davin Potts](https://github.com/napari/napari/commits?author=applio) - @applio +\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":24},{"url":"https://api.github.com/repos/napari/napari/releases/352839372","assets_url":"https://api.github.com/repos/napari/napari/releases/352839372/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/352839372/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0rc1","id":352839372,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84VB-bM","tag_name":"v0.8.0rc1","target_commitish":"2d4c9fadbaf86e819a1b565c4dce983a22baab94","name":"v0.8.0rc1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-12T19:17:30Z","updated_at":"2026-07-12T20:50:15Z","published_at":"2026-07-12T20:35:25Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/474711665","id":474711665,"node_id":"RA_kwDOCJ0aI84cS4Zx","name":"napari-0.8.0rc1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47166,"digest":"sha256:fa3041a9077aa1c0e7f0e20a92f58c0087872faa32eab503c3a2fec85fb502f9","download_count":1,"created_at":"2026-07-12T20:41:45Z","updated_at":"2026-07-12T20:41:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474711535","id":474711535,"node_id":"RA_kwDOCJ0aI84cS4Xv","name":"napari-0.8.0rc1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":625795573,"digest":"sha256:86c0cf81cdf8fe54fae2401dd90fee2e0f9998a79afbead2190d7e429c956a36","download_count":3,"created_at":"2026-07-12T20:41:31Z","updated_at":"2026-07-12T20:41:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474714000","id":474714000,"node_id":"RA_kwDOCJ0aI84cS4-Q","name":"napari-0.8.0rc1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":41022,"digest":"sha256:e1b0f5ce5b584c2d225968ad4269f0eb3b5abc4f39a76e545708f829a1083db9","download_count":1,"created_at":"2026-07-12T20:45:49Z","updated_at":"2026-07-12T20:45:49Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474713796","id":474713796,"node_id":"RA_kwDOCJ0aI84cS47E","name":"napari-0.8.0rc1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":498070599,"digest":"sha256:c3fb66cb7c648c64ee76ffa1c8477b4e4571c3449fc7c428f7a6d5df96d67fad","download_count":3,"created_at":"2026-07-12T20:45:30Z","updated_at":"2026-07-12T20:45:48Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474716499","id":474716499,"node_id":"RA_kwDOCJ0aI84cS5lT","name":"napari-0.8.0rc1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40424,"digest":"sha256:83f5b1978eb4eeda015373ce80f072eecc60b47b3c9d31b70e6be559ae5af138","download_count":1,"created_at":"2026-07-12T20:50:15Z","updated_at":"2026-07-12T20:50:15Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474716214","id":474716214,"node_id":"RA_kwDOCJ0aI84cS5g2","name":"napari-0.8.0rc1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":538814322,"digest":"sha256:7e341182c583ca2033557dfaed4d2dc2c7f5cb37fa62996d7a9cf85055aa8afd","download_count":3,"created_at":"2026-07-12T20:49:50Z","updated_at":"2026-07-12T20:50:14Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474707215","id":474707215,"node_id":"RA_kwDOCJ0aI84cS3UP","name":"napari-0.8.0rc1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3581417,"digest":"sha256:98619c7aed663e761d71d0d3a0e9692ea38ead402f3fba4799d0722ed3fa1d22","download_count":6,"created_at":"2026-07-12T20:35:24Z","updated_at":"2026-07-12T20:35:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474713306","id":474713306,"node_id":"RA_kwDOCJ0aI84cS4za","name":"napari-0.8.0rc1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":622502512,"digest":"sha256:cf4e67958512734db90296be1c7077e84cbd99335077b7c85551dcba625e58f3","download_count":12,"created_at":"2026-07-12T20:44:34Z","updated_at":"2026-07-12T20:44:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474713446","id":474713446,"node_id":"RA_kwDOCJ0aI84cS41m","name":"napari-0.8.0rc1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37629,"digest":"sha256:179fbbfbfaadb03ead67c4908d8b79c4eb749251bbec8e2a3ee3831120d02396","download_count":1,"created_at":"2026-07-12T20:44:47Z","updated_at":"2026-07-12T20:44:47Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474707214","id":474707214,"node_id":"RA_kwDOCJ0aI84cS3UO","name":"napari-0.8.0rc1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3189323,"digest":"sha256:8217037f811ef8a105e5a13a2892242290b450f5e5bf93e39a7a8681ce5a909e","download_count":6,"created_at":"2026-07-12T20:35:24Z","updated_at":"2026-07-12T20:35:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc1/napari-0.8.0rc1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0rc1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0rc1","body":"# napari 0.8.0\n⚠️ *Note: these release notes are still in draft while 0.8.0rc1 is in prerelease testing.* ⚠️\n\n*Mon, Jul 13, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Dropping Python 3.10 and PyQt5\n\nnapari 0.8.0 drops support for Python 3.10\n([#9104](https://github.com/napari/napari/pull/9104)) and deprecates PyQt5\nsupport ([#9079](https://github.com/napari/napari/pull/9079)).\n\nThese changes are being made to help maintenance of napari. Python 3.10 will\nreach end-of-life support in October 2026, while PyQt5 has already reached\nend-of-life, and is becoming increasingly difficult to maintain as a\ndependency. PyQt6, in contrast, has been the daily driver for the napari core\nteam for many months. As we recognise that PyQt5 has extensive usage in the\ncommunity, we have decided to deprecate it in this release and drop support\nin Q4 2026. If your project still depends on Qt5, consider migrating to PySide6\nor PyQt6. As always, feel free to get in touch\n[on our Zulip](https://napari.zulipchat.com) if you encounter any issues!\n\n### Histogram for Image layer\n\nIt's been a heckuva long time coming, but napari Image layers *finally* gain a\n[built-in histogram (#8391)](https://github.com/napari/napari/pull/8391)!\nWonder no more about why your image looks black or totally washed out — you can\nnow see the distribution of your pixels' brightness right there in the layer\ncontrols, or within the larger contrast limits widget (which, as a reminder,\nyou can access by right clicking on the contrast limits slider).\n\nYou can access the brightness of the current slice (default), or the full\nlayer, *and* it will sample progressively from remote chunks if you are looking\nat large remote data. Try it out!\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/histogram.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/histogram.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/histogram.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing a napari viewer with a 2D canvas showing a slice of a large 3D image. The layer controls include a histogram of image intensities that updates as you pan around the canvas, and also, when selecting the full image, as pixels are drawn from remote data.\"\n    >\n  </video>\n</figure>\n```\n\n### Synced cameras between 2D and 3D views\n\nEver switched between 2D and 3D views to check out your data, only to be\nfrustrated that the zoom and center has been reset? Now, by default, the\ncameras are\n[synced between views (#9151)](https://github.com/napari/napari/pull/9151)!\nThe synced camera's zoom and center persists when switching between 2D and 3D,\nwith the depth (Z) component synced through the dimension slider to complete\nthe round-trip.\n\nTo unlock the cameras from each other for completely separate views, you can\ntoggle `viewer.camera.synced = False` from the Camera popup (right-click 2D/3D\nbutton) or **Toggle Synced Camera** (Ctrl/Cmd+U) in the **View** menu. Set your\npreferred default in **Preferences** -> **Application** -> **Synced Camera**.\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/synced-cameras.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/synced-cameras.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/synced-cameras.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing zoom and position staying in sync between 2D and 3D views of the same data.\"\n    >\n  </video>\n</figure>\n```\n\n### Auto-fill label contours when painting\n\nAnnotating blobs in 2D just got a lot faster! In paint mode, right-click to\nstart a *self-filling* area annotation. Then draw your shape, and when you come\nback around to the start point, the shape will automatically fill with your\nselected label! ([#9075](https://github.com/napari/napari/pull/9075))\nSee it in action below:\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/auto-fill-labels.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/auto-fill-labels.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/auto-fill-labels.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing an annotation around a coin, with the coin filling with the annotated label at the end.\"\n    >\n  </video>\n</figure>\n```\n\nWe intend to keep refining this functionality, so if you like it but it doesn't\n*quite* fit in your workflow, please {ref}`get in touch <community>`!\n\n### Paint into more arrays faster!\n\nLabels painting is now much faster for zarr arrays, and you can now paint into\nother array types such as dask and tensorstore! Painting with very large brush\nsizes (e.g. 1,000) is now possible where it used to be extremely choppy. Give\nit a whirl! ([#8636](https://github.com/napari/napari/pull/8636))\n\n### Floating axes overlay\n\nEver feel disoriented looking at your data? You're not alone. Until\n[#8262](https://github.com/napari/napari/pull/8262), the axes overlay would\nlive in the same space as your data, and would be out of view if you didn't\nhave the top left corner of your data on the canvas. Now you can have a little\n2- or 3-axis compass always on in a corner of the canvas. Find it in the View\nmenu!\n\n### Improving the napari theme\n\nLike many things in community-run open source, napari's theme grew organically\nas we added features and UI elements.\n[#8927](https://github.com/napari/napari/pull/8927) unified the look of many of\nthose elements, while [#9078](https://github.com/napari/napari/pull/9078)\nimproved the default light and dark themes by increasing contrast to meet\n[Web Content Accessibility Guidelines][WCAG]. Want to build your own\nWCAG-compliant theme? Try out the new WCAG table in\n[`examples/theme_sample.py`][theme-sample]\n([#9175](https://github.com/napari/napari/pull/9175))!\n\n![sample showing the theme sample widget along with a WCAG compliance table](https://github.com/user-attachments/assets/44510228-1163-4532-9945-aea5f7657ff0)\n\n[WCAG]: https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines\n[theme-sample]: https://github.com/napari/napari/blob/700a36f148dc073d281b5a9e42bb28cd18ed6a32/examples/theme_sample.py\n\n\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Feat: add cellpose-inspired right-click to encircle mask creation interaction mode ([#9075](https://github.com/napari/napari/pull/9075))\n- Toggleable `synced` (default) and separated camera views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add example driving computation from gui ([#8658](https://github.com/napari/napari/pull/8658))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n- Add WCAG contrast table to Theme Sample example ([#9175](https://github.com/napari/napari/pull/9175))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Fix: napari script runner with multiprocessing ([#8936](https://github.com/napari/napari/pull/8936))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n- Fix: update cached unit scale when layer data dimensionality changes (#9164) ([#9181](https://github.com/napari/napari/pull/9181))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Update Theme contribution guidance ([docs#1002](https://github.com/napari/docs/pull/1002))\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- Update organization ownership policy ([docs#1061](https://github.com/napari/docs/pull/1061))\n- Update 0.8.0 release notes, add highlight ([docs#1062](https://github.com/napari/docs/pull/1062))\n- Add video and fallback image for histogram highlight ([docs#1063](https://github.com/napari/docs/pull/1063))\n- Fix video relative paths which had extra '..' ([docs#1064](https://github.com/napari/docs/pull/1064))\n- Add Camera Guide to explain synced/separate camera modes ([docs#1065](https://github.com/napari/docs/pull/1065))\n- Final update of release notes for 0.8.0 ([docs#1066](https://github.com/napari/docs/pull/1066))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- ci(dependabot): bump the github-actions group across 1 directory with 5 updates ([docs#1057](https://github.com/napari/docs/pull/1057))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n- Clean rest of elements  marked as \"to remove in 0.8.0\"  ([#9191](https://github.com/napari/napari/pull/9191))\n\n\n## 19 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Davin Potts](https://github.com/napari/napari/commits?author=applio) - @applio +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Talley Lambert](https://github.com/napari/napari/commits?author=tlambert03) - @tlambert03\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 18 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [carsen-stringer](https://github.com/napari/docs/commits?author=carsen-stringer) - @carsen-stringer\n- [Davin Potts](https://github.com/napari/napari/commits?author=applio) - @applio +\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":24},{"url":"https://api.github.com/repos/napari/napari/releases/352756592","assets_url":"https://api.github.com/repos/napari/napari/releases/352756592/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/352756592/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0rc0","id":352756592,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84VBqNw","tag_name":"v0.8.0rc0","target_commitish":"d95d429751eac618c25b54237edbb095148c2b5a","name":"v0.8.0rc0","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-12T04:56:12Z","updated_at":"2026-07-12T13:34:45Z","published_at":"2026-07-12T13:17:50Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/474413405","id":474413405,"node_id":"RA_kwDOCJ0aI84cRvld","name":"napari-0.8.0rc0-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47166,"digest":"sha256:0add91da95f978e436244407cb44db0fae28b6202b63a8cac3db116134db322b","download_count":1,"created_at":"2026-07-12T13:23:42Z","updated_at":"2026-07-12T13:23:43Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474413232","id":474413232,"node_id":"RA_kwDOCJ0aI84cRviw","name":"napari-0.8.0rc0-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":625795573,"digest":"sha256:d567cd222da33e0c27ce0f0e613fec188a0b05e8eb6489a79d833620f7c93bfe","download_count":2,"created_at":"2026-07-12T13:23:25Z","updated_at":"2026-07-12T13:23:42Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474414463","id":474414463,"node_id":"RA_kwDOCJ0aI84cRv1_","name":"napari-0.8.0rc0-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":41022,"digest":"sha256:033001546337df32a91751d8f119b8eb2408189bf9f98f106fb171efcbfa007a","download_count":1,"created_at":"2026-07-12T13:25:46Z","updated_at":"2026-07-12T13:25:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474414321","id":474414321,"node_id":"RA_kwDOCJ0aI84cRvzx","name":"napari-0.8.0rc0-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":498068827,"digest":"sha256:09714a4dd31329f401e28c002219aafedb6b4ad3735c88d98edc110ae3bcb833","download_count":2,"created_at":"2026-07-12T13:25:26Z","updated_at":"2026-07-12T13:25:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474419975","id":474419975,"node_id":"RA_kwDOCJ0aI84cRxMH","name":"napari-0.8.0rc0-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40424,"digest":"sha256:28d9765c20fe4ab1079832c12ddba4fc24e70fadc71c08b3aaf238d7e408a3c6","download_count":1,"created_at":"2026-07-12T13:34:44Z","updated_at":"2026-07-12T13:34:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474419831","id":474419831,"node_id":"RA_kwDOCJ0aI84cRxJ3","name":"napari-0.8.0rc0-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":538814144,"digest":"sha256:228f348434122a03e4cc6dcf88d6996716a7627b9e2fddf34490d54c3c50de31","download_count":2,"created_at":"2026-07-12T13:34:26Z","updated_at":"2026-07-12T13:34:44Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474408798","id":474408798,"node_id":"RA_kwDOCJ0aI84cRude","name":"napari-0.8.0rc0-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3576556,"digest":"sha256:8a247f5cf9c41ae47f6706831d55b9bed5ec40268569b1ac783a14a243e7c3c7","download_count":3,"created_at":"2026-07-12T13:17:50Z","updated_at":"2026-07-12T13:17:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474414846","id":474414846,"node_id":"RA_kwDOCJ0aI84cRv7-","name":"napari-0.8.0rc0-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":622503016,"digest":"sha256:493b33ae6c9027d4fafb950e3de94a398e09c7e72c746fdcfc1c11700d95ae28","download_count":3,"created_at":"2026-07-12T13:26:49Z","updated_at":"2026-07-12T13:27:01Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474414920","id":474414920,"node_id":"RA_kwDOCJ0aI84cRv9I","name":"napari-0.8.0rc0-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37629,"digest":"sha256:7a419e33a26f882b56a27249aaef9c1f6a1173d7b174b32e654a3bcc6c4f16c8","download_count":1,"created_at":"2026-07-12T13:27:02Z","updated_at":"2026-07-12T13:27:02Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/474408797","id":474408797,"node_id":"RA_kwDOCJ0aI84cRudd","name":"napari-0.8.0rc0.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3187028,"digest":"sha256:3deeedfc9640787326a399915f4f2a5f652ca205ed87692bc7853f078d21bf9e","download_count":3,"created_at":"2026-07-12T13:17:49Z","updated_at":"2026-07-12T13:17:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0rc0/napari-0.8.0rc0.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0rc0","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0rc0","body":"# napari 0.8.0\n⚠️ *Note: these release notes are still in draft while 0.8.0rc0 is in prerelease testing.* ⚠️\n\n*Sun, Jul 12, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Dropping Python 3.10 and PyQt5\n\nnapari 0.8.0 drops support for Python 3.10\n([#9104](https://github.com/napari/napari/pull/9104)) and deprecates PyQt5\nsupport ([#9079](https://github.com/napari/napari/pull/9079)).\n\nThese changes are being made to help maintenance of napari. Python 3.10 will\nreach end-of-life support in October 2026, while PyQt5 has already reached\nend-of-life, and is becoming increasingly difficult to maintain as a\ndependency. PyQt6, in contrast, has been the daily driver for the napari core\nteam for many months. As we recognise that PyQt5 has extensive usage in the\ncommunity, we have decided to deprecate it in this release and drop support\nin Q4 2026. If your project still depends on Qt5, consider migrating to PySide6\nor PyQt6. As always, feel free to get in touch\n[on our Zulip](https://napari.zulipchat.com) if you encounter any issues!\n\n### Histogram for Image layer\n\nIt's been a heckuva long time coming, but napari Image layers *finally* gain a\n[built-in histogram (#8391)](https://github.com/napari/napari/pull/8391)!\nWonder no more about why your image looks black or totally washed out — you can\nnow see the distribution of your pixels' brightness right there in the layer\ncontrols, or within the larger contrast limits widget (which, as a reminder,\nyou can access by right clicking on the contrast limits slider).\n\nYou can access the brightness of the current slice (default), or the full\nlayer, *and* it will sample progressively from remote chunks if you are looking\nat large remote data. Try it out!\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline>\n    <source src=\"../_static/images/histogram.webm\" type=\"video/webm\" />\n    <source src=\"../_static/images/histogram.mp4\" type=\"video/mp4\" />\n    <img src=\"../_static/images/histogram.jpg\"\n      title=\"Your browser does not support the video tag\"\n      alt=\"Video showing a napari viewer with a 2D canvas showing a slice of a large 3D image. The layer controls include a histogram of image intensities that updates as you pan around the canvas, and also, when selecting the full image, as pixels are drawn from remote data.\"\n    >\n  </video>\n</figure>\n```\n\n### Synced cameras between 2D and 3D views\n\nEver switched between 2D and 3D views to check out your data, only to be frustrated that the zoom and center has been reset? Now, by default, the cameras are [`synced` between views (#9151)](https://github.com/napari/napari/pull/9151)! The synced camera's zoom and center persists when switching between 2D and 3D, with the depth (Z) component synced through the dimension slider to complete the round-trip. \n\nTo unlock the cameras from each other for completely separate views, you can toggle `viewer.camera.synced = False` from the Camera popup (right-click 2D/3D button) or **Toggle Synced Camera** (Ctrl/Cmd+U) in the **View** menu. Set your preferred default in **Preferences** -> **Application** -> **Synced Camera**.\n\n### Paint into more arrays faster!\n\nLabels painting is now much faster for zarr arrays, and you can now paint into\nother array types such as dask and tensorstore! Painting with very large brush\nsizes (e.g. 1,000) is now possible where it used to be extremely choppy. Give\nit a whirl! ([#8636](https://github.com/napari/napari/pull/8636))\n\n### Floating axes overlay\n\nEver feel disoriented looking at your data? You're not alone. Until\n[#8262](https://github.com/napari/napari/pull/8262), the axes overlay would\nlive in the same space as your data, and would be out of view if you didn't\nhave the top left corner of your data on the canvas. Now you can have a little\n2- or 3-axis compass always on in a corner of the canvas. Find it in the View\nmenu!\n\n### Improving the napari theme\n\nLike many things in community-run open source, napari's theme grew organically\nas we added features and UI elements.\n[#8927](https://github.com/napari/napari/pull/8927) unified the look of many of\nthose elements, while [#9078](https://github.com/napari/napari/pull/9078)\nimproved the default light and dark themes by increasing contrast to meet\n[Web Content Accessibility Guidelines][WCAG]. Want to build your own\nWCAG-compliant theme? Try out the new WCAG table in\n[`examples/theme_sample.py`][theme-sample]\n([#9175](https://github.com/napari/napari/pull/9175))!\n\n![sample showing the theme sample widget along with a WCAG compliance table](https://github.com/user-attachments/assets/44510228-1163-4532-9945-aea5f7657ff0)\n\n[WCAG]: https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines\n[theme-sample]: https://github.com/napari/napari/blob/700a36f148dc073d281b5a9e42bb28cd18ed6a32/examples/theme_sample.py\n\n\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Toggleable `synced` (default) and separated camera views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add example driving computation from gui ([#8658](https://github.com/napari/napari/pull/8658))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n- Add WCAG contrast table to Theme Sample example ([#9175](https://github.com/napari/napari/pull/9175))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Fix: napari script runner with multiprocessing ([#8936](https://github.com/napari/napari/pull/8936))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n- Fix: update cached unit scale when layer data dimensionality changes (#9164) ([#9181](https://github.com/napari/napari/pull/9181))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Update Theme contribution guidance ([docs#1002](https://github.com/napari/docs/pull/1002))\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- Update organization ownership policy ([docs#1061](https://github.com/napari/docs/pull/1061))\n- Update 0.8.0 release notes, add highlight ([docs#1062](https://github.com/napari/docs/pull/1062))\n- Add video and fallback image for histogram highlight ([docs#1063](https://github.com/napari/docs/pull/1063))\n- Fix video relative paths which had extra '..' ([docs#1064](https://github.com/napari/docs/pull/1064))\n- Add Camera Guide to explain synced/separate camera modes ([docs#1065](https://github.com/napari/docs/pull/1065))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- ci(dependabot): bump the github-actions group across 1 directory with 5 updates ([docs#1057](https://github.com/napari/docs/pull/1057))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n\n\n## 18 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Davin Potts](https://github.com/napari/napari/commits?author=applio) - @applio +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 17 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Davin Potts](https://github.com/napari/napari/commits?author=applio) - @applio +\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":22},{"url":"https://api.github.com/repos/napari/napari/releases/351733341","assets_url":"https://api.github.com/repos/napari/napari/releases/351733341/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/351733341/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0a4","id":351733341,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84U9wZd","tag_name":"v0.8.0a4","target_commitish":"934c6dd1517389f3fa50cd346dcdb5d5d14b7623","name":"v0.8.0a4","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-09T16:23:38Z","updated_at":"2026-07-10T14:09:37Z","published_at":"2026-07-09T19:12:51Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/471663287","id":471663287,"node_id":"RA_kwDOCJ0aI84cHQK3","name":"napari-0.8.0a4-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47121,"digest":"sha256:e4a0364ca7ddf09655c2e5aa4febe434d6cc67bf2ce1ab7d57647575947491a5","download_count":1,"created_at":"2026-07-09T19:19:27Z","updated_at":"2026-07-09T19:19:27Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/471662970","id":471662970,"node_id":"RA_kwDOCJ0aI84cHQF6","name":"napari-0.8.0a4-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":625734130,"digest":"sha256:1644e49473bc21512e3667481aa24be3252305c7b1a34cb208aa5eb15f6626bb","download_count":1,"created_at":"2026-07-09T19:19:07Z","updated_at":"2026-07-09T19:19:27Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/472545400","id":472545400,"node_id":"RA_kwDOCJ0aI84cKnh4","name":"napari-0.8.0a4-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40977,"digest":"sha256:78cba112cacababf04774c2ae150a7c8c4e68c803ab877092c5d646aa8205f05","download_count":1,"created_at":"2026-07-10T14:06:21Z","updated_at":"2026-07-10T14:06:22Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/472545096","id":472545096,"node_id":"RA_kwDOCJ0aI84cKndI","name":"napari-0.8.0a4-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":498027103,"digest":"sha256:df01f76186f84e01f56518a5d45bb7ec42071723ce72ff829b2b57790704be69","download_count":2,"created_at":"2026-07-10T14:06:00Z","updated_at":"2026-07-10T14:06:20Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/472548228","id":472548228,"node_id":"RA_kwDOCJ0aI84cKoOE","name":"napari-0.8.0a4-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40379,"digest":"sha256:0e2570312d50d7837ac995bbcefdba597e2a3771462ed0b93d6e4ea5412a93b3","download_count":1,"created_at":"2026-07-10T14:09:37Z","updated_at":"2026-07-10T14:09:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/472547958","id":472547958,"node_id":"RA_kwDOCJ0aI84cKoJ2","name":"napari-0.8.0a4-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":538748890,"digest":"sha256:376a92a7199d9b207792de6fc8303ab5cb2536e280268437920aadd3b59e7b19","download_count":2,"created_at":"2026-07-10T14:09:15Z","updated_at":"2026-07-10T14:09:36Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/471658012","id":471658012,"node_id":"RA_kwDOCJ0aI84cHO4c","name":"napari-0.8.0a4-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3531453,"digest":"sha256:714515a1f356904600cf5d9179a2dc00c06a132749b33fdc5eaa15612d8a9ee9","download_count":2,"created_at":"2026-07-09T19:12:50Z","updated_at":"2026-07-09T19:12:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/471666395","id":471666395,"node_id":"RA_kwDOCJ0aI84cHQ7b","name":"napari-0.8.0a4-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":622063272,"digest":"sha256:e7da835710d887be0f5fa8309659d8a8fa8b9b0adccc05c1ef0704d8336772fc","download_count":5,"created_at":"2026-07-09T19:22:49Z","updated_at":"2026-07-09T19:23:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/471666678","id":471666678,"node_id":"RA_kwDOCJ0aI84cHQ_2","name":"napari-0.8.0a4-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37584,"digest":"sha256:5efb1fb2e1ced44d166520cbc418715520da7afb971857ab50f9decb1046fdfa","download_count":1,"created_at":"2026-07-09T19:23:07Z","updated_at":"2026-07-09T19:23:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/471658011","id":471658011,"node_id":"RA_kwDOCJ0aI84cHO4b","name":"napari-0.8.0a4.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3146088,"digest":"sha256:8a62b64f56daed6c95b54d803fbfb91d4fb2d5e6171ca223a4ae90a4a9fe6bd2","download_count":2,"created_at":"2026-07-09T19:12:49Z","updated_at":"2026-07-09T19:12:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a4/napari-0.8.0a4.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0a4","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0a4","body":"# napari 0.8.0\n\n*Sun, Jul 12, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- Add information about PyQt5 deprecation ([#9079](https://github.com/napari/napari/pull/9079))\n- Drop Python 3.10 and implement 3.11+ changes ([#9104](https://github.com/napari/napari/pull/9104))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- Prevent selection from overwriting feature_defaults ([#8769](https://github.com/napari/napari/pull/8769))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n\n\n## 16 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":21},{"url":"https://api.github.com/repos/napari/napari/releases/351075097","assets_url":"https://api.github.com/repos/napari/napari/releases/351075097/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/351075097/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0a3","id":351075097,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84U7PsZ","tag_name":"v0.8.0a3","target_commitish":"d77d905476ba78f747b3f03b18040575fea0c460","name":"v0.8.0a3","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-08T16:56:16Z","updated_at":"2026-07-08T17:08:26Z","published_at":"2026-07-08T17:08:26Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/470482422","id":470482422,"node_id":"RA_kwDOCJ0aI84cCv32","name":"napari-0.8.0a3-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3519893,"digest":"sha256:5585132fb5931259aa78a6e125cbe0e341e5087426b7fedc00353e9df72beea1","download_count":2,"created_at":"2026-07-08T17:08:24Z","updated_at":"2026-07-08T17:08:25Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a3/napari-0.8.0a3-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/470482421","id":470482421,"node_id":"RA_kwDOCJ0aI84cCv31","name":"napari-0.8.0a3.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3135173,"digest":"sha256:6f0bd309a03e17150ce69381729c844f9d981f0234ab45df1e37771df203ee9b","download_count":3,"created_at":"2026-07-08T17:08:24Z","updated_at":"2026-07-08T17:08:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a3/napari-0.8.0a3.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0a3","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0a3","body":"# napari 0.8.0\n\n*Sun, Jul 12, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- Add information about PyQt5 deprecation ([#9079](https://github.com/napari/napari/pull/9079))\n- Drop Python 3.10 and implement 3.11+ changes ([#9104](https://github.com/napari/napari/pull/9104))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- Prevent selection from overwriting feature_defaults ([#8769](https://github.com/napari/napari/pull/8769))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n\n\n## 16 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":21},{"url":"https://api.github.com/repos/napari/napari/releases/351066212","assets_url":"https://api.github.com/repos/napari/napari/releases/351066212/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/351066212/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0a2","id":351066212,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84U7Nhk","tag_name":"v0.8.0a2","target_commitish":"086b8187bb31494bfbbf53d771df7685882d0eab","name":"v0.8.0a2","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-08T16:29:57Z","updated_at":"2026-07-08T16:52:05Z","published_at":"2026-07-08T16:52:05Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/470468900","id":470468900,"node_id":"RA_kwDOCJ0aI84cCskk","name":"napari-0.8.0a2-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3519824,"digest":"sha256:f57af68b59b496120b601f4dee7786a7c0674f6cecc3d010571cede56b5827ad","download_count":2,"created_at":"2026-07-08T16:52:04Z","updated_at":"2026-07-08T16:52:05Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a2/napari-0.8.0a2-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/470468901","id":470468901,"node_id":"RA_kwDOCJ0aI84cCskl","name":"napari-0.8.0a2.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3135068,"digest":"sha256:f66c47efeb54b32fff7c739e2946859056ef7bf2de86fce3a5d0431dc1e8bea3","download_count":2,"created_at":"2026-07-08T16:52:04Z","updated_at":"2026-07-08T16:52:05Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a2/napari-0.8.0a2.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0a2","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0a2","body":"# napari 0.8.0\n\n*Sun, Jul 12, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- Add information about PyQt5 deprecation ([#9079](https://github.com/napari/napari/pull/9079))\n- Drop Python 3.10 and implement 3.11+ changes ([#9104](https://github.com/napari/napari/pull/9104))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- Prevent selection from overwriting feature_defaults ([#8769](https://github.com/napari/napari/pull/8769))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n\n\n## 16 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":21},{"url":"https://api.github.com/repos/napari/napari/releases/351000081","assets_url":"https://api.github.com/repos/napari/napari/releases/351000081/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/351000081/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.8.0a1","id":351000081,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84U69YR","tag_name":"v0.8.0a1","target_commitish":"8519f3f2b2d748a030c463e510e0e992d759d747","name":"v0.8.0a1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-08T14:27:41Z","updated_at":"2026-07-08T14:53:19Z","published_at":"2026-07-08T14:53:19Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/470365811","id":470365811,"node_id":"RA_kwDOCJ0aI84cCTZz","name":"napari-0.8.0a1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3520561,"digest":"sha256:4abef5e9dfb1ffde85aa64378628d9f62e60ec1db981869866dc85f9f3b438bd","download_count":3,"created_at":"2026-07-08T14:53:18Z","updated_at":"2026-07-08T14:53:19Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a1/napari-0.8.0a1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/470365810","id":470365810,"node_id":"RA_kwDOCJ0aI84cCTZy","name":"napari-0.8.0a1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3135591,"digest":"sha256:c8ec948bb120202a9e087cf290df7a548da125f973ec2377f6a044a070b20a3b","download_count":3,"created_at":"2026-07-08T14:53:18Z","updated_at":"2026-07-08T14:53:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.8.0a1/napari-0.8.0a1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.8.0a1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.8.0a1","body":"# napari 0.8.0\n\n*Sun, Jul 12, 2026*\n\nWe're happy to announce the release of napari 0.8.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- Add information about PyQt5 deprecation ([#9079](https://github.com/napari/napari/pull/9079))\n- Drop Python 3.10 and implement 3.11+ changes ([#9104](https://github.com/napari/napari/pull/9104))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## New Features\n\n- Add floating axes canvas overlay ([#8262](https://github.com/napari/napari/pull/8262))\n- Histogram for the Image layer controls and contrast limits popup ([#8391](https://github.com/napari/napari/pull/8391))\n- Selectable camera modes with `Separate` (default) and `Shared` views across ndisplay ([#9151](https://github.com/napari/napari/pull/9151))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- UX: Add viewer mouse binding (alt) to the scroll wheel to scroll layers ([#8731](https://github.com/napari/napari/pull/8731))\n- Make tips more generally usable ([#8762](https://github.com/napari/napari/pull/8762))\n- Add handler to show message when napari fails to import ([#8803](https://github.com/napari/napari/pull/8803))\n- Unify use of theme colors ([#8927](https://github.com/napari/napari/pull/8927))\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Accept `pathlib.Path` in reader and writer plugin utilities ([#9042](https://github.com/napari/napari/pull/9042))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Theme colors adjustments ([#9078](https://github.com/napari/napari/pull/9078))\n- feat: add metadata submenu to the layers menu ([#9107](https://github.com/napari/napari/pull/9107))\n- Enable clickable links for tips that have URLs ([#9114](https://github.com/napari/napari/pull/9114))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Show active level in Auto entry of multiscale combobox ([#9143](https://github.com/napari/napari/pull/9143))\n\n## Performance\n\n- [Labels, Perf] Refactor painting to use masks and bounding boxes ([#8636](https://github.com/napari/napari/pull/8636))\n\n## Bug Fixes\n\n- Make multiscale level labels static to avoid delayed updates ([#9006](https://github.com/napari/napari/pull/9006))\n- Gate drag_to_zoom to pan/zoom mode or no layers selected ([#9016](https://github.com/napari/napari/pull/9016))\n- [Shapes] When using Shift to draw circle/square, allow shape to grow in direction of mouse drag ([#9018](https://github.com/napari/napari/pull/9018))\n- Fix: adapt frame box upper bound to data size (allow >6-digit indices) ([#9064](https://github.com/napari/napari/pull/9064))\n- Fix half-voxel offset ([#9065](https://github.com/napari/napari/pull/9065))\n- make LabelColorMapBase deep-copyable ([#9069](https://github.com/napari/napari/pull/9069))\n- Make Wayland XCB/GLX workaround modular for non-NVIDIA GPUs ([#9070](https://github.com/napari/napari/pull/9070))\n- Fix colorbar box ([#9071](https://github.com/napari/napari/pull/9071))\n- Remove stretch from features table widget layout ([#9099](https://github.com/napari/napari/pull/9099))\n- Limit dims scroll to 1 step at a time ([#9117](https://github.com/napari/napari/pull/9117))\n- Fix get_status for RGB images in 3D display mode ([#9135](https://github.com/napari/napari/pull/9135))\n- Fix problem with ignoring annotation when drag and drop ([#9136](https://github.com/napari/napari/pull/9136))\n- Fix multiscale _set_view_slice when switching to 3D ([#9141](https://github.com/napari/napari/pull/9141))\n- Use level-0 extent for multiscale bounding box overlay ([#9142](https://github.com/napari/napari/pull/9142))\n- Guard against stale index for layer paint methods ([#9149](https://github.com/napari/napari/pull/9149))\n- Fix: Restore tooltip symbol QSS after #9003 ([#9161](https://github.com/napari/napari/pull/9161))\n\n## API Changes\n\n- Remove `compat.py` (and `StrEnum` export), update imports, and remove case-insens lookup ([#9133](https://github.com/napari/napari/pull/9133))\n\n## Deprecations\n\n- Next round of deprecation for scale_bar.unit ([#9029](https://github.com/napari/napari/pull/9029))\n\n## Documentation\n\n- Up-to-date compile constraints instructions ([docs#1043](https://github.com/napari/docs/pull/1043))\n- Update version_switcher for 0.7.1 ([docs#1044](https://github.com/napari/docs/pull/1044))\n- Fix formatting in version_switcher.json (remove spurious comma) ([docs#1045](https://github.com/napari/docs/pull/1045))\n- Update pre-commit config, apply rules ([docs#1046](https://github.com/napari/docs/pull/1046))\n- python >=3.11 for all docs references ([docs#1052](https://github.com/napari/docs/pull/1052))\n- Add tip to use `-h` or `--help` flags with the `compile_constraints.sh` script ([docs#1053](https://github.com/napari/docs/pull/1053))\n- Remove `github-advanced-security[bot]` from list of reviewers of 0.7.1 ([docs#1055](https://github.com/napari/docs/pull/1055))\n- Add initial release notes for 0.8.0 ([docs#1056](https://github.com/napari/docs/pull/1056))\n- Update README with links for the dev and published docs ([docs#1058](https://github.com/napari/docs/pull/1058))\n- Feature documentation for image layer histogram ([docs#1059](https://github.com/napari/docs/pull/1059))\n- examples: remove deprecated `scale_bar.unit`  and enable `viewer.scale_bar.visible = True`  ([#9012](https://github.com/napari/napari/pull/9012))\n\n## Other Pull Requests\n\n- Fix linkchecker action constraints to file for py312 ([docs#1048](https://github.com/napari/docs/pull/1048))\n- [pre-commit.ci] pre-commit autoupdate ([docs#1050](https://github.com/napari/docs/pull/1050))\n- Use shared workflow for remove ready to merge label ([docs#1054](https://github.com/napari/docs/pull/1054))\n- Prevent selection from overwriting feature_defaults ([#8769](https://github.com/napari/napari/pull/8769))\n- Use Qt6 colorScheme to detect system theme ([#8904](https://github.com/napari/napari/pull/8904))\n- Remove check of Qt version that disable gradient in themes ([#8961](https://github.com/napari/napari/pull/8961))\n- QSS cleanup: remove plugin manager qss and some even older plugin sorter qss ([#9003](https://github.com/napari/napari/pull/9003))\n- typing: add type annotations to _tracebacks.py ([#9011](https://github.com/napari/napari/pull/9011))\n- Update `dask`, `hypothesis`, `ipython`, `matplotlib`, `pytest`, `tqdm`, `virtualenv` ([#9036](https://github.com/napari/napari/pull/9036))\n- [pre-commit.ci] pre-commit autoupdate ([#9040](https://github.com/napari/napari/pull/9040))\n- [Maint] Remove unneeded _set_highlight calls in Shapes key and mouse binds ([#9060](https://github.com/napari/napari/pull/9060))\n- Fix flaky fullscreen test: skip on all Qt >= 6.9.0 ([#9074](https://github.com/napari/napari/pull/9074))\n- [pre-commit.ci] pre-commit autoupdate ([#9080](https://github.com/napari/napari/pull/9080))\n- ci: trigger dependency check on PR edits ([#9084](https://github.com/napari/napari/pull/9084))\n- Add `-h | --help` arguments to `compile_constraints.sh` ([#9090](https://github.com/napari/napari/pull/9090))\n- Actually use pride logo ([#9091](https://github.com/napari/napari/pull/9091))\n- fix(typing): fix mypy error in `qt_list_view.py` ([#9093](https://github.com/napari/napari/pull/9093))\n- fix(typing):  add typing and fix mypy error in `qt_tree_view.py` ([#9094](https://github.com/napari/napari/pull/9094))\n- fix(typing): add typing and fix mypy error in `screenshot_dialog.py` ([#9095](https://github.com/napari/napari/pull/9095))\n- fix(typing): add typing and fix mypy errors in `tree/group.py` ([#9096](https://github.com/napari/napari/pull/9096))\n- fix(typing): add typing and fix mypy errors in `debugging.py` ([#9097](https://github.com/napari/napari/pull/9097))\n- fix(typing): add typing and fix mypy errors in `custom_types.py` ([#9098](https://github.com/napari/napari/pull/9098))\n- fix(typing): add typing and fix mypy error in `qt_tooltip.py` ([#9101](https://github.com/napari/napari/pull/9101))\n- fix(typing): add typing and fix mypy error in `qt_spinbox.py` ([#9102](https://github.com/napari/napari/pull/9102))\n- fix(typing): add typing and fix mypy error in `qt_scrollbar.py` ([#9103](https://github.com/napari/napari/pull/9103))\n- bump numpy to 2.5.0 in mypy constraints to fix `[unused-ignore]` errors ([#9106](https://github.com/napari/napari/pull/9106))\n- fix(typing): add typing and fix mypy errors in `qt_range_slider_popup.py` ([#9108](https://github.com/napari/napari/pull/9108))\n- fix(typing) : add typing and fix mypy error in `qt_progress_bar.py` ([#9109](https://github.com/napari/napari/pull/9109))\n- fix(typing): add typing and fix mypy error in `qt_message_popup.py` ([#9111](https://github.com/napari/napari/pull/9111))\n- fix(typing): add typing and fix mypy error in `qt_font_size.py` ([#9112](https://github.com/napari/napari/pull/9112))\n- fix(typing): add typing and fix error in `qt_dims_sorter.py` ([#9113](https://github.com/napari/napari/pull/9113))\n- Use shared version of label clean workflow ([#9116](https://github.com/napari/napari/pull/9116))\n- [pre-commit.ci] pre-commit autoupdate ([#9122](https://github.com/napari/napari/pull/9122))\n- fix(typing): add typing and fix mypy error in `qt_about.py` ([#9125](https://github.com/napari/napari/pull/9125))\n- Minimum support for zarr>=3 for builtins ([#9134](https://github.com/napari/napari/pull/9134))\n- Stop using pickle when copying/pasting spatial features of layer ([#9146](https://github.com/napari/napari/pull/9146))\n- Remove `image_reader_to_layerdata_reader` ([#9147](https://github.com/napari/napari/pull/9147))\n- Remove `color_dict_to_colormap` ([#9148](https://github.com/napari/napari/pull/9148))\n- `QApplication` mouse event to trigger event filter of `test_toggle_menubar` ([#9152](https://github.com/napari/napari/pull/9152))\n- Remove `pyautogui` and update failing tests on Windows-Qt6 ([#9153](https://github.com/napari/napari/pull/9153))\n- gitignore various agent related file names ([#9154](https://github.com/napari/napari/pull/9154))\n- Update `certifi`, `coverage`, `fsspec`, `hypothesis`, `ipython`, `npe2`, `pillow`, `pydantic-settings`, `pytest`, `pytest-rerunfailures`, `scipy`, `tqdm`, `virtualenv`, `wrapt` ([#9158](https://github.com/napari/napari/pull/9158))\n- `macos-15` runner instead of `macos-latest` (now `macos-26`) to prevent segfaults ([#9162](https://github.com/napari/napari/pull/9162))\n- Remove method and functions marked for removal in 0.8.0 ([#9177](https://github.com/napari/napari/pull/9177))\n\n\n## 16 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Anwai Archit](https://github.com/napari/napari/commits?author=anwai98) - @anwai98 +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Omkar Kabde](https://github.com/napari/napari/commits?author=omkar-334) - @omkar-334 +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rupesh](https://github.com/napari/napari/commits?author=Rupeshhsharma) - @Rupeshhsharma +\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Tony Reksoatmodjo](https://github.com/napari/napari/commits?author=Modjular) - @Modjular +\n\n## 16 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) - @Aniketsy\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) ([docs](https://github.com/napari/docs/commits?author=carlosmariorr))  - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Gabriel Selzer](https://github.com/napari/docs/commits?author=gselzer) - @gselzer\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Imaduddin Sheikh](https://github.com/napari/napari/commits?author=isheikh8492) - @isheikh8492 +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/napari/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Mikkel Roald-Arbøl](https://github.com/napari/napari/commits?author=roaldarbol) - @roaldarbol +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Teun Huijben](https://github.com/napari/napari/commits?author=TeunHuijben) - @TeunHuijben +\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n","mentions_count":21},{"url":"https://api.github.com/repos/napari/napari/releases/339841040","assets_url":"https://api.github.com/repos/napari/napari/releases/339841040/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/339841040/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1","id":339841040,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84UQZAQ","tag_name":"v0.7.1","target_commitish":"2d0a5c91fbd155efad2fcfdf2c74feebf49fe88d","name":"v0.7.1","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-06-12T20:45:35Z","updated_at":"2026-06-15T23:52:41Z","published_at":"2026-06-15T23:33:58Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/448644277","id":448644277,"node_id":"RA_kwDOCJ0aI84avcS1","name":"napari-0.7.1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46874,"digest":"sha256:76fb28f99e17cc96f41b7a766bc8cc1afe850d00a89fe4420aa966966ade3dda","download_count":1,"created_at":"2026-06-15T23:45:11Z","updated_at":"2026-06-15T23:45:11Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448644018","id":448644018,"node_id":"RA_kwDOCJ0aI84avcOy","name":"napari-0.7.1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":616542070,"digest":"sha256:56c607740d82f2549bd4762aea32d47221c8ff2e594fe340e4d7c4b67e6d4221","download_count":162,"created_at":"2026-06-15T23:44:47Z","updated_at":"2026-06-15T23:45:10Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448646466","id":448646466,"node_id":"RA_kwDOCJ0aI84avc1C","name":"napari-0.7.1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40596,"digest":"sha256:1736c499e5d9df49ef70885504b2dfb74add8c08829b1d8b810541e98dd7e44c","download_count":1,"created_at":"2026-06-15T23:48:50Z","updated_at":"2026-06-15T23:48:50Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448646300","id":448646300,"node_id":"RA_kwDOCJ0aI84avcyc","name":"napari-0.7.1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":478556926,"digest":"sha256:dc4377142d296e013e9b7e0533055fb73a36f6666d56ad34299044a6ecffcb6c","download_count":326,"created_at":"2026-06-15T23:48:34Z","updated_at":"2026-06-15T23:48:49Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448648996","id":448648996,"node_id":"RA_kwDOCJ0aI84avdck","name":"napari-0.7.1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40010,"digest":"sha256:b9f311479cb465253f3de458f89a35fced8271224483b8ecf6871fd6ad13f140","download_count":1,"created_at":"2026-06-15T23:52:41Z","updated_at":"2026-06-15T23:52:41Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448648637","id":448648637,"node_id":"RA_kwDOCJ0aI84avdW9","name":"napari-0.7.1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":500847764,"digest":"sha256:fcbcdaa7a010cfc12063e97ecc7eaacb9cdefed6c5252ab4ca6c2da04d1ccedb","download_count":142,"created_at":"2026-06-15T23:52:17Z","updated_at":"2026-06-15T23:52:40Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448637548","id":448637548,"node_id":"RA_kwDOCJ0aI84avaps","name":"napari-0.7.1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3506711,"digest":"sha256:c03090fa45f2b62f9d7d7acd1696c020d8b72abba6b036dbb0b6a80d9fc4bee0","download_count":5,"created_at":"2026-06-15T23:33:57Z","updated_at":"2026-06-15T23:33:58Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448645740","id":448645740,"node_id":"RA_kwDOCJ0aI84avcps","name":"napari-0.7.1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":598810816,"digest":"sha256:ef3dd297a97d3fbd11a6791f57797af8d7f036f15d7afe64aa6026cc7c2741ca","download_count":745,"created_at":"2026-06-15T23:47:38Z","updated_at":"2026-06-15T23:47:54Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448645878","id":448645878,"node_id":"RA_kwDOCJ0aI84avcr2","name":"napari-0.7.1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36999,"digest":"sha256:6582697453c23d779e2d9552148a5d04db59fb8e5cc657eb32696d576b67c6fe","download_count":2,"created_at":"2026-06-15T23:47:55Z","updated_at":"2026-06-15T23:47:56Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/448637549","id":448637549,"node_id":"RA_kwDOCJ0aI84avapt","name":"napari-0.7.1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3122569,"digest":"sha256:275a74dfa4a1a55a350f7ba9c40d7bf4216d3ce463ebb204e9bdaa561e3da874","download_count":6,"created_at":"2026-06-15T23:33:57Z","updated_at":"2026-06-15T23:33:58Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1/napari-0.7.1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1","body":"# napari 0.7.1\n\n*Tue, Jun 16, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\nThe napari 0.7.1 release includes many new features and improvements. Here are some of the highlights:\n\n### Signed Windows bundle\n\nStarting with the napari 0.7.1 release, our bundle on Windows is now [signed](https://github.com/napari/packaging/pull/387) with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.\n\nThe certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.\n \nIf you encounter any issues related to this change, please let us know!\n\n\n### Selection of the rendered level for multiscale layers\n\nPrior to napari 0.7.1, when rendering a multiscale layer: \n\n- in 3D display, napari would always render the lowest resolution level of the pyramid\n- in 2D display, the pyramid level would be automatically selected based on the viewport\n\nThanks to [#8917](https://github.com/napari/napari/pull/8917), users can now [select a multiscale level to render](https://napari.org/dev/howtos/layers/image.html#locking-the-multiscale-level) ([check out the awesome new example!](https://napari.org/stable/gallery/add_multiscale_volume.html)). Importantly, this allows choosing a higher resolution rendering than before in 3D, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step. You can set this resolution using the resolution widget in the layer controls:\n\n![The resolution dropdown in the layer controls allows the user to select different levels of a multiscale image.](https://github.com/user-attachments/assets/862e7512-0309-429c-b155-a9c03acf2db6)\n\n\n### Colorbars for points layer\n\nThe points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars ([#8624](https://github.com/napari/napari/pull/8624)), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.\n\n![Example of colorbar for points layer](https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee)\n\n### Scalebar with units\n\nIn previous versions of napari, if you added a scale bar using **View > Scale Bar > Scale Bar visible**, it was shown with no units. In napari 0.7.1 we now\nset default unit to `pixel` in [#8900](https://github.com/napari/napari/pull/8900) and also add calculation of units for scale bar based on currently added layers in [#8907](https://github.com/napari/napari/pull/8907) and [#9007](https://github.com/napari/napari/pull/9007), if they have units set and are logically consistent across layers.\nWe've also [added a guide about unit and scale aware rendering](https://napari.org/stable/guides/units.html)  ([#1032](https://github.com/napari/docs/pull/1032)).\n\n\n![Scale bar with units](https://github.com/user-attachments/assets/b25a1a53-b9a0-46f1-b88c-c2625e4287a8)\n\n### Lock layer to prevent accidental deletions\n\nIn [#8736](https://github.com/napari/napari/pull/8736) we added the initial implementation for a [lock mechanism for layers](https://napari.org/stable/getting_started/layers.html#layer-locking). Now, when a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time.\nIn the future we plan to expand this feature to prevent not only deletion but also other modifications.\n\n![Lock layer on layer list](https://github.com/user-attachments/assets/1df17b1e-cb52-4b2f-88b3-495f1e5301a0)\n\n\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n- UX: Add Layer.locked property to protect layers from accidental deletion ([#8736](https://github.com/napari/napari/pull/8736))\n\n## Improvements\n\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Canvas based font size ([#8770](https://github.com/napari/napari/pull/8770))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Revert the switch from Welcome widget to Welcome overlay from #8117 ([#8793](https://github.com/napari/napari/pull/8793))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Fix floating widgets and use custom title bar in all cases ([#8898](https://github.com/napari/napari/pull/8898))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- ScaleBar units from layers ([#8907](https://github.com/napari/napari/pull/8907))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Add multiscale level lock for scalar field layers ([#8917](https://github.com/napari/napari/pull/8917))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Adjust pt argument of font size increase/decrease based on platform ([#8950](https://github.com/napari/napari/pull/8950))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n- Add float precision setting ([#8975](https://github.com/napari/napari/pull/8975))\n- typing: add type hints to `napari/utils/shortcuts.py` ([#8983](https://github.com/napari/napari/pull/8983))\n- Use QSS instead of hard-coding style (including font) for the notification action button ([#9001](https://github.com/napari/napari/pull/9001))\n- Use actual font-size in the keybind-clash popup ([#9002](https://github.com/napari/napari/pull/9002))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Revert the switch from Welcome widget to Welcome overlay from #8117 ([#8793](https://github.com/napari/napari/pull/8793))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- Add max depth_value to avoid clipping volumes in 3d (#8809) ([#8810](https://github.com/napari/napari/pull/8810))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Fix floating widgets and use custom title bar in all cases ([#8898](https://github.com/napari/napari/pull/8898))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n- Fix Volume visual crash when adding invisible scalar field in 3D ([#8968](https://github.com/napari/napari/pull/8968))\n- Auto-apply XCB/GLX workaround on Linux+Wayland at startup ([#9009](https://github.com/napari/napari/pull/9009))\n- Fix update of Shapes._value when remove shape ([#9041](https://github.com/napari/napari/pull/9041))\n- Set `Shapes._value`to `None, None` on delete of shape ([#9044](https://github.com/napari/napari/pull/9044))\n\n## Build Tools\n\n- ci(deps): bump aiohttp from 3.13.5 to 3.14.0 in /resources ([#9028](https://github.com/napari/napari/pull/9028))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Update multiscale documentation to describe new level selection ([docs#1004](https://github.com/napari/docs/pull/1004))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Add sample databases ([docs#1010](https://github.com/napari/docs/pull/1010))\n- Minimal all-contributors setup ([docs#1011](https://github.com/napari/docs/pull/1011))\n- Add Carlos to Core Team page ([docs#1012](https://github.com/napari/docs/pull/1012))\n- Update release notes for 0.7.1 ([docs#1019](https://github.com/napari/docs/pull/1019))\n- Add Curtis and Brian to SC members ([docs#1020](https://github.com/napari/docs/pull/1020))\n- Move download links to top of examples ([docs#1021](https://github.com/napari/docs/pull/1021))\n- Add Windows bundle signing and reputation info ([docs#1022](https://github.com/napari/docs/pull/1022))\n- Fix: `pyqt6` for conda install instructions ([docs#1023](https://github.com/napari/docs/pull/1023))\n- Add admonition to gallery examples that require additional packages ([docs#1024](https://github.com/napari/docs/pull/1024))\n- Document layer locking in napari GUI and API ([docs#1025](https://github.com/napari/docs/pull/1025))\n- Clean up button css for homepage and gallery ([docs#1026](https://github.com/napari/docs/pull/1026))\n- Add baseurl to favor stable versions in search engines ([docs#1029](https://github.com/napari/docs/pull/1029))\n- Guide about unit and scale aware rendering ([docs#1032](https://github.com/napari/docs/pull/1032))\n- Document automatic Wayland/Nvidia workaround in troubleshooting ([docs#1033](https://github.com/napari/docs/pull/1033))\n- Fix: Opaque, instead of translucent, sticky version banner ([docs#1035](https://github.com/napari/docs/pull/1035))\n- Update homepage video with reproducible napari-animation script ([docs#1036](https://github.com/napari/docs/pull/1036))\n- Update release notes to 0.7.1 ([docs#1041](https://github.com/napari/docs/pull/1041))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n- Add Carlos Rodríguez-Reza to core team section of citation file ([#8971](https://github.com/napari/napari/pull/8971))\n- Unpin sphinx for docs ([#8993](https://github.com/napari/napari/pull/8993))\n- add Yann-P to Citation.cff ([#8994](https://github.com/napari/napari/pull/8994))\n- Add units to Dims docstring and clarify Layer.units ([#8996](https://github.com/napari/napari/pull/8996))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Remove \"auto author assign\" workflow ([docs#1008](https://github.com/napari/docs/pull/1008))\n- Fix skip condition for build docs based on label ([docs#1031](https://github.com/napari/docs/pull/1031))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 ([#8943](https://github.com/napari/napari/pull/8943))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- Remove decreases of font_size from primary UI elements. ([#8948](https://github.com/napari/napari/pull/8948))\n- Update `coverage`, `fsspec`, `hypothesis`, `pydantic`, `pydantic-settings`, `tensorstore`, `tifffile`, `virtualenv` ([#8949](https://github.com/napari/napari/pull/8949))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n- Update python version used to generate title and body of update constraints PR ([#8957](https://github.com/napari/napari/pull/8957))\n- Use `gh release create` instead of `softprops/action-gh-release` ([#8958](https://github.com/napari/napari/pull/8958))\n- Remove CODEOWNERS ([#8959](https://github.com/napari/napari/pull/8959))\n- Restore testing on windows-latest (Revert  5d6ab46) ([#8960](https://github.com/napari/napari/pull/8960))\n- ci(dependabot): bump the actions group across 1 directory with 8 updates ([#8963](https://github.com/napari/napari/pull/8963))\n- Pass token to make `gh` working in create release workflow ([#8964](https://github.com/napari/napari/pull/8964))\n- Next fix of release workflow by pass directly `dist/*` ([#8966](https://github.com/napari/napari/pull/8966))\n- Try to fix passing prerelease to `gh release create` ([#8969](https://github.com/napari/napari/pull/8969))\n- Explicitly set repository in make release workflow ([#8970](https://github.com/napari/napari/pull/8970))\n- Update `hypothesis`, `pandas`, `pyside6`, `pytest-rerunfailures`, `virtualenv` ([#8981](https://github.com/napari/napari/pull/8981))\n- In vispy overalys use **kwargs instead of synchronizing signature ([#8982](https://github.com/napari/napari/pull/8982))\n- Update `numpy`, `tensorstore`, `tifffile` ([#8986](https://github.com/napari/napari/pull/8986))\n- [pre-commit.ci] pre-commit autoupdate ([#8988](https://github.com/napari/napari/pull/8988))\n- Bump vispy to 0.16.2 ([#8992](https://github.com/napari/napari/pull/8992))\n- Docs: Bump napari-sphinx-theme to use sticky banners ([#8997](https://github.com/napari/napari/pull/8997))\n- Update `coverage`, `hypothesis`, `ipython`, `platformdirs`, `tifffile`, `virtualenv` ([#9021](https://github.com/napari/napari/pull/9021))\n- [pre-commit.ci] pre-commit autoupdate ([#9022](https://github.com/napari/napari/pull/9022))\n- Block pydantic==2.14.0a1 in `--pre` tests ([#9023](https://github.com/napari/napari/pull/9023))\n- ci(dependabot): bump the actions group with 6 updates ([#9024](https://github.com/napari/napari/pull/9024))\n- Mnt: Block qt6 6.11.0, 6.11.1 due to dock widget and resizing bugs ([#9052](https://github.com/napari/napari/pull/9052))\n\n\n## 25 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Austin Epiphane Yann Tung-Shan Lefebvre](https://github.com/napari/napari/commits?author=aelefebv) - @aelefebv +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Martin Weigert](https://github.com/napari/napari/commits?author=maweigert) - @maweigert\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Mélodie Ambroset](https://github.com/napari/napari/commits?author=mambroset) - @mambroset +\n- [Niko Sirmpilatze](https://github.com/napari/napari/commits?author=niksirbi) ([docs](https://github.com/napari/docs/commits?author=niksirbi))  - @niksirbi +\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P +\n\n## 23 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Anniek Stokkermans](https://github.com/napari/docs/commits?author=AnniekStok) - @AnniekStok\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Niko Sirmpilatze](https://github.com/napari/napari/commits?author=niksirbi) ([docs](https://github.com/napari/docs/commits?author=niksirbi))  - @niksirbi +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P +\n","mentions_count":27},{"url":"https://api.github.com/repos/napari/napari/releases/338801899","assets_url":"https://api.github.com/repos/napari/napari/releases/338801899/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/338801899/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1rc5","id":338801899,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84UMbTr","tag_name":"v0.7.1rc5","target_commitish":"2d0a5c91fbd155efad2fcfdf2c74feebf49fe88d","name":"v0.7.1rc5","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-06-12T20:45:35Z","updated_at":"2026-06-12T21:02:12Z","published_at":"2026-06-12T20:48:47Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/446040371","id":446040371,"node_id":"RA_kwDOCJ0aI84algkz","name":"napari-0.7.1rc5-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":46929,"digest":"sha256:48c9b202a8757f3ba80bbbf0785629e4043276964bbb563b6a72a5efd7fbb223","download_count":2,"created_at":"2026-06-12T20:55:17Z","updated_at":"2026-06-12T20:55:17Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446040049","id":446040049,"node_id":"RA_kwDOCJ0aI84algfx","name":"napari-0.7.1rc5-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":616449919,"digest":"sha256:1045c62e9bd1f3fa4144c4c7bc2189c93a03151a050c1f06921effce778b364b","download_count":5,"created_at":"2026-06-12T20:54:43Z","updated_at":"2026-06-12T20:55:16Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446042513","id":446042513,"node_id":"RA_kwDOCJ0aI84alhGR","name":"napari-0.7.1rc5-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40653,"digest":"sha256:d0c89e57584d4c7f016e111f0c03a964b5fc76f64515d83675cb6f526d567820","download_count":1,"created_at":"2026-06-12T20:58:07Z","updated_at":"2026-06-12T20:58:08Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446042051","id":446042051,"node_id":"RA_kwDOCJ0aI84alg_D","name":"napari-0.7.1rc5-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":478508078,"digest":"sha256:c6e1466a1325c83135b62fbfc67957cda495f40036668da9711065a59bbf819b","download_count":5,"created_at":"2026-06-12T20:57:42Z","updated_at":"2026-06-12T20:58:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446045375","id":446045375,"node_id":"RA_kwDOCJ0aI84alhy_","name":"napari-0.7.1rc5-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40067,"digest":"sha256:2af099079963822f2abb01777c8840863260d82087d64043460e963a0392e671","download_count":2,"created_at":"2026-06-12T21:02:12Z","updated_at":"2026-06-12T21:02:12Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446045077","id":446045077,"node_id":"RA_kwDOCJ0aI84alhuV","name":"napari-0.7.1rc5-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":500800801,"digest":"sha256:8830fe9aff40ac6b72a72296b2dd7ca0dea1caaadad36c0a74b9d72ead9bf60e","download_count":3,"created_at":"2026-06-12T21:01:48Z","updated_at":"2026-06-12T21:02:11Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446036213","id":446036213,"node_id":"RA_kwDOCJ0aI84alfj1","name":"napari-0.7.1rc5-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3506756,"digest":"sha256:958f2e33d59e218a7ba1e6a54d0e706a93bb2fab052a5bb36216177086f07dfa","download_count":4,"created_at":"2026-06-12T20:48:46Z","updated_at":"2026-06-12T20:48:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446043073","id":446043073,"node_id":"RA_kwDOCJ0aI84alhPB","name":"napari-0.7.1rc5-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":600999728,"digest":"sha256:8992ce0912ed0b20bf0ebf77b051e41c26ee9ab9ee0212bf87a399a24ef33250","download_count":11,"created_at":"2026-06-12T20:58:54Z","updated_at":"2026-06-12T20:59:30Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446043463","id":446043463,"node_id":"RA_kwDOCJ0aI84alhVH","name":"napari-0.7.1rc5-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37056,"digest":"sha256:76d937f2efe2edd9207a0ec3bb9ae7e550cdf6175db72aa48a28ed4888ea2597","download_count":1,"created_at":"2026-06-12T20:59:31Z","updated_at":"2026-06-12T20:59:31Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/446036212","id":446036212,"node_id":"RA_kwDOCJ0aI84alfj0","name":"napari-0.7.1rc5.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3122751,"digest":"sha256:b7b4f395176e401a72f8d8e47022300cca42290e46275dea2eee43e37b25e13a","download_count":4,"created_at":"2026-06-12T20:48:46Z","updated_at":"2026-06-12T20:48:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc5/napari-0.7.1rc5.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1rc5","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1rc5","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1rc1 is in prerelease testing.* ⚠️\n\n*Wed, May 27, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\nThe napari 0.7.1 release is mainly a bug fix release, but it also includes some new features and improvements. Here are some of the highlights:\n\n## Signed Windows bundle\n\nStarting with the napari 0.7.1 release, our bundle on Windows is now [signed](https://github.com/napari/packaging/pull/387) with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.\n\nThe certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.\n \nIf you encounter any issues related to this change, please let us know!\n\n\n## Selection of the rendered level for multiscale layers\n\nPrior to napari 0.7.1, when rendering a multiscale layer: \n\n- in 3D display, napari would always render the lowest resolution level of the pyramid\n- in 2D display, the pyramid level would be automatically selected based on the viewport\n\nThanks to [#8917](https://github.com/napari/napari/pull/8917), users can now select a multiscale level to render. For the case of 3D display, for example, this allows for choosing a higher resolution rendering than before, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step.\n\n![The resolution dropdown in the layer controls allows the user to select different levels of a multiscale image.](https://github.com/user-attachments/assets/862e7512-0309-429c-b155-a9c03acf2db6)\n\n\n## Colorbars for points layer\n\nThe points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars ([#8624](https://github.com/napari/napari/pull/8624)), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.\n\n<img width=\"1019\" height=\"783\" alt=\"napari_colorbar\" src=\"https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee\" />\n\n## Scalebar with units \n\nIn previous versions of napari, if you added A scale bar using **View > Scale Bar > Scale Bar visible**, it was shown with no units. In napari 0.7.1 we now\nset default unit to `pixel` in [#8900](https://github.com/napari/napari/pull/8900) and also add calculation of units for scale bar based on currently added layers in [#8907](https://github.com/napari/napari/pull/8907), if they have units set.\n\n![Scale bar with units](https://github.com/user-attachments/assets/b25a1a53-b9a0-46f1-b88c-c2625e4287a8)\n\n## Lock layer to prevent accidental deletions\n\nIn [#8736](https://github.com/napari/napari/pull/8736) we added initial lock mechanism for layers. When a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time.\nIn the future we plan to expand this feature to prevent not only deletion but also other modifications.\n\n![Lock layer on layer list](https://github.com/user-attachments/assets/1df17b1e-cb52-4b2f-88b3-495f1e5301a0)\n\n\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- UX: Add Layer.locked property to protect layers from accidental deletion ([#8736](https://github.com/napari/napari/pull/8736))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- ScaleBar units from layers ([#8907](https://github.com/napari/napari/pull/8907))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Add multiscale level lock for scalar field layers ([#8917](https://github.com/napari/napari/pull/8917))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n- typing: add type hints to `napari/utils/shortcuts.py` ([#8983](https://github.com/napari/napari/pull/8983))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- Add max depth_value to avoid clipping volumes in 3d (#8809) ([#8810](https://github.com/napari/napari/pull/8810))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n- Fix Volume visual crash when adding invisible scalar field in 3D ([#8968](https://github.com/napari/napari/pull/8968))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Update multiscale documentation to describe new level selection ([docs#1004](https://github.com/napari/docs/pull/1004))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Add sample databases ([docs#1010](https://github.com/napari/docs/pull/1010))\n- Minimal all-contributors setup ([docs#1011](https://github.com/napari/docs/pull/1011))\n- Add Carlos to Core Team page ([docs#1012](https://github.com/napari/docs/pull/1012))\n- Update release notes for 0.7.1 ([docs#1019](https://github.com/napari/docs/pull/1019))\n- Add Curtis and Brian to SC members ([docs#1020](https://github.com/napari/docs/pull/1020))\n- Add Windows bundle signing and reputation info ([docs#1022](https://github.com/napari/docs/pull/1022))\n- Fix: `pyqt6` for conda install instructions ([docs#1023](https://github.com/napari/docs/pull/1023))\n- Document layer locking in napari GUI and API ([docs#1025](https://github.com/napari/docs/pull/1025))\n- Clean up button css for homepage and gallery ([docs#1026](https://github.com/napari/docs/pull/1026))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n- Add Carlos Rodríguez-Reza to core team section of citation file ([#8971](https://github.com/napari/napari/pull/8971))\n- Unpin sphinx for docs ([#8993](https://github.com/napari/napari/pull/8993))\n- add Yann-P to Citation.cff ([#8994](https://github.com/napari/napari/pull/8994))\n- Add units to Dims docstring and clarify Layer.units ([#8996](https://github.com/napari/napari/pull/8996))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Remove \"auto author assign\" workflow ([docs#1008](https://github.com/napari/docs/pull/1008))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 ([#8943](https://github.com/napari/napari/pull/8943))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- Update `coverage`, `fsspec`, `hypothesis`, `pydantic`, `pydantic-settings`, `tensorstore`, `tifffile`, `virtualenv` ([#8949](https://github.com/napari/napari/pull/8949))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n- Update python version used to generate title and body of update constraints PR ([#8957](https://github.com/napari/napari/pull/8957))\n- Use `gh release create` instead of `softprops/action-gh-release` ([#8958](https://github.com/napari/napari/pull/8958))\n- Remove CODEOWNERS ([#8959](https://github.com/napari/napari/pull/8959))\n- Restore testing on windows-latest (Revert  5d6ab46) ([#8960](https://github.com/napari/napari/pull/8960))\n- ci(dependabot): bump the actions group across 1 directory with 8 updates ([#8963](https://github.com/napari/napari/pull/8963))\n- Pass token to make `gh` working in create release workflow ([#8964](https://github.com/napari/napari/pull/8964))\n- Next fix of release workflow by pass directly `dist/*` ([#8966](https://github.com/napari/napari/pull/8966))\n- Try to fix passing prerelease to `gh release create` ([#8969](https://github.com/napari/napari/pull/8969))\n- Explicitly set repository in make release workflow ([#8970](https://github.com/napari/napari/pull/8970))\n- Update `hypothesis`, `pandas`, `pyside6`, `pytest-rerunfailures`, `virtualenv` ([#8981](https://github.com/napari/napari/pull/8981))\n- In vispy overalys use **kwargs instead of synchronizing signature ([#8982](https://github.com/napari/napari/pull/8982))\n- Update `numpy`, `tensorstore`, `tifffile` ([#8986](https://github.com/napari/napari/pull/8986))\n- [pre-commit.ci] pre-commit autoupdate ([#8988](https://github.com/napari/napari/pull/8988))\n- Bump vispy to 0.16.2 ([#8992](https://github.com/napari/napari/pull/8992))\n- Docs: Bump napari-sphinx-theme to use sticky banners ([#8997](https://github.com/napari/napari/pull/8997))\n- Deprecate scale_bar.unit ([#9007](https://github.com/napari/napari/pull/9007))\n\n\n## 22 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Austin Epiphane Yann Tung-Shan Lefebvre](https://github.com/napari/napari/commits?author=aelefebv) - @aelefebv +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Martin Weigert](https://github.com/napari/napari/commits?author=maweigert) - @maweigert\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 22 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Anniek Stokkermans](https://github.com/napari/docs/commits?author=AnniekStok) - @AnniekStok\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P\n","mentions_count":25},{"url":"https://api.github.com/repos/napari/napari/releases/336920324","assets_url":"https://api.github.com/repos/napari/napari/releases/336920324/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/336920324/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1rc4","id":336920324,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84UFP8E","tag_name":"v0.7.1rc4","target_commitish":"abe68275c99d6aa6eef0d9610c3ed73147101dd0","name":"v0.7.1rc4","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-06-09T20:52:23Z","updated_at":"2026-06-09T22:59:33Z","published_at":"2026-06-09T22:47:48Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/443127419","id":443127419,"node_id":"RA_kwDOCJ0aI84aaZZ7","name":"napari-0.7.1rc4-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47269,"digest":"sha256:5d77c63090b7f80e25039582150e4f2344f623c639e74b9ef8b2801fe182b659","download_count":1,"created_at":"2026-06-09T22:54:02Z","updated_at":"2026-06-09T22:54:02Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443127279","id":443127279,"node_id":"RA_kwDOCJ0aI84aaZXv","name":"napari-0.7.1rc4-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":579012783,"digest":"sha256:9089191af5a5a88216c961a40b662ed4f3d2b0fcf90db9df6e3a7ac4b7d57e32","download_count":2,"created_at":"2026-06-09T22:53:47Z","updated_at":"2026-06-09T22:54:01Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443129160","id":443129160,"node_id":"RA_kwDOCJ0aI84aaZ1I","name":"napari-0.7.1rc4-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40406,"digest":"sha256:b83de705a62f26d205238a577f06df60ed085880a50bb3a612220a037b1964ed","download_count":1,"created_at":"2026-06-09T22:57:00Z","updated_at":"2026-06-09T22:57:01Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443129045","id":443129045,"node_id":"RA_kwDOCJ0aI84aaZzV","name":"napari-0.7.1rc4-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":404812386,"digest":"sha256:484b525b9e60765d4bb8cc2684ca51e64e5fdaf91bf62408ebdb39d3a1ed1ee4","download_count":2,"created_at":"2026-06-09T22:56:45Z","updated_at":"2026-06-09T22:57:00Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443130974","id":443130974,"node_id":"RA_kwDOCJ0aI84aaaRe","name":"napari-0.7.1rc4-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":39826,"digest":"sha256:dd31ead73d9949d6ca407d412917a1d3b29aae10421a834f93da81097127bd50","download_count":1,"created_at":"2026-06-09T22:59:33Z","updated_at":"2026-06-09T22:59:33Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443130690","id":443130690,"node_id":"RA_kwDOCJ0aI84aaaNC","name":"napari-0.7.1rc4-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":439803588,"digest":"sha256:0eee3dbb5fda9af07621a55380c91e106e94197c1e6f4754231b2854b3a21abd","download_count":3,"created_at":"2026-06-09T22:59:11Z","updated_at":"2026-06-09T22:59:32Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443124136","id":443124136,"node_id":"RA_kwDOCJ0aI84aaYmo","name":"napari-0.7.1rc4-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3506667,"digest":"sha256:d7cda9dfcb04725a61e76a21469441b2ac7104608cf6b1d018b50d34b8b425ff","download_count":2,"created_at":"2026-06-09T22:47:47Z","updated_at":"2026-06-09T22:47:47Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443129396","id":443129396,"node_id":"RA_kwDOCJ0aI84aaZ40","name":"napari-0.7.1rc4-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":583515384,"digest":"sha256:591f970a7c3b2a56a9e5ed59f21c845bdfc411bbb430aad2096c74768374be1e","download_count":11,"created_at":"2026-06-09T22:57:21Z","updated_at":"2026-06-09T22:57:39Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443129594","id":443129594,"node_id":"RA_kwDOCJ0aI84aaZ76","name":"napari-0.7.1rc4-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37056,"digest":"sha256:6f51c3bd9eb32495820f1d5d87b19de18c74d7764025a0c9ec75e1944c72551b","download_count":1,"created_at":"2026-06-09T22:57:40Z","updated_at":"2026-06-09T22:57:40Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/443124137","id":443124137,"node_id":"RA_kwDOCJ0aI84aaYmp","name":"napari-0.7.1rc4.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3122477,"digest":"sha256:c12b4cdbf4dcea942a8ae9a0e858c050e37bcda8a2a3c3c4149c94d1e34881bb","download_count":2,"created_at":"2026-06-09T22:47:47Z","updated_at":"2026-06-09T22:47:47Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc4/napari-0.7.1rc4.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1rc4","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1rc4","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1rc1 is in prerelease testing.* ⚠️\n\n*Wed, May 27, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\nThe napari 0.7.1 release is mainly a bug fix release, but it also includes some new features and improvements. Here are some of the highlights:\n\n## Signed Windows bundle\n\nStarting with the napari 0.7.1 release, our bundle on Windows is now [signed](https://github.com/napari/packaging/pull/387) with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.\n\nThe certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.\n \nIf you encounter any issues related to this change, please let us know!\n\n\n## Selection of the rendered level for multiscale layers\n\nPrior to napari 0.7.1, when rendering a multiscale layer: \n\n- in 3D display, napari would always render the lowest resolution level of the pyramid\n- in 2D display, the pyramid level would be automatically selected based on the viewport\n\nThanks to [#8917](https://github.com/napari/napari/pull/8917), users can now select a multiscale level to render. For the case of 3D display, for example, this allows for choosing a higher resolution rendering than before, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step.\n\n![The resolution dropdown in the layer controls allows the user to select different levels of a multiscale image.](https://github.com/user-attachments/assets/862e7512-0309-429c-b155-a9c03acf2db6)\n\n\n## Colorbars for points layer\n\nThe points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars ([#8624](https://github.com/napari/napari/pull/8624)), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.\n\n<img width=\"1019\" height=\"783\" alt=\"napari_colorbar\" src=\"https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee\" />\n\n## Scalebar with units \n\nIn previous versions of napari, if you added A scale bar using **View > Scale Bar > Scale Bar visible**, it was shown with no units. In napari 0.7.1 we now\nset default unit to `pixel` in [#8900](https://github.com/napari/napari/pull/8900) and also add calculation of units for scale bar based on currently added layers in [#8907](https://github.com/napari/napari/pull/8907), if they have units set.\n\n![Scale bar with units](https://github.com/user-attachments/assets/b25a1a53-b9a0-46f1-b88c-c2625e4287a8)\n\n## Lock layer to prevent accidental deletions\n\nIn [#8736](https://github.com/napari/napari/pull/8736) we added initial lock mechanism for layers. When a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time.\nIn the future we plan to expand this feature to prevent not only deletion but also other modifications.\n\n![Lock layer on layer list](https://github.com/user-attachments/assets/1df17b1e-cb52-4b2f-88b3-495f1e5301a0)\n\n\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- UX: Add Layer.locked property to protect layers from accidental deletion ([#8736](https://github.com/napari/napari/pull/8736))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- ScaleBar units from layers ([#8907](https://github.com/napari/napari/pull/8907))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Add multiscale level lock for scalar field layers ([#8917](https://github.com/napari/napari/pull/8917))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n- typing: add type hints to `napari/utils/shortcuts.py` ([#8983](https://github.com/napari/napari/pull/8983))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- Add max depth_value to avoid clipping volumes in 3d (#8809) ([#8810](https://github.com/napari/napari/pull/8810))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n- Fix Volume visual crash when adding invisible scalar field in 3D ([#8968](https://github.com/napari/napari/pull/8968))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Update multiscale documentation to describe new level selection ([docs#1004](https://github.com/napari/docs/pull/1004))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Add sample databases ([docs#1010](https://github.com/napari/docs/pull/1010))\n- Minimal all-contributors setup ([docs#1011](https://github.com/napari/docs/pull/1011))\n- Add Carlos to Core Team page ([docs#1012](https://github.com/napari/docs/pull/1012))\n- Update release notes for 0.7.1 ([docs#1019](https://github.com/napari/docs/pull/1019))\n- Add Curtis and Brian to SC members ([docs#1020](https://github.com/napari/docs/pull/1020))\n- Add Windows bundle signing and reputation info ([docs#1022](https://github.com/napari/docs/pull/1022))\n- Fix: `pyqt6` for conda install instructions ([docs#1023](https://github.com/napari/docs/pull/1023))\n- Document layer locking in napari GUI and API ([docs#1025](https://github.com/napari/docs/pull/1025))\n- Clean up button css for homepage and gallery ([docs#1026](https://github.com/napari/docs/pull/1026))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n- Add Carlos Rodríguez-Reza to core team section of citation file ([#8971](https://github.com/napari/napari/pull/8971))\n- Unpin sphinx for docs ([#8993](https://github.com/napari/napari/pull/8993))\n- add Yann-P to Citation.cff ([#8994](https://github.com/napari/napari/pull/8994))\n- Add units to Dims docstring and clarify Layer.units ([#8996](https://github.com/napari/napari/pull/8996))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Remove \"auto author assign\" workflow ([docs#1008](https://github.com/napari/docs/pull/1008))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 ([#8943](https://github.com/napari/napari/pull/8943))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- Update `coverage`, `fsspec`, `hypothesis`, `pydantic`, `pydantic-settings`, `tensorstore`, `tifffile`, `virtualenv` ([#8949](https://github.com/napari/napari/pull/8949))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n- Update python version used to generate title and body of update constraints PR ([#8957](https://github.com/napari/napari/pull/8957))\n- Use `gh release create` instead of `softprops/action-gh-release` ([#8958](https://github.com/napari/napari/pull/8958))\n- Remove CODEOWNERS ([#8959](https://github.com/napari/napari/pull/8959))\n- Restore testing on windows-latest (Revert  5d6ab46) ([#8960](https://github.com/napari/napari/pull/8960))\n- ci(dependabot): bump the actions group across 1 directory with 8 updates ([#8963](https://github.com/napari/napari/pull/8963))\n- Pass token to make `gh` working in create release workflow ([#8964](https://github.com/napari/napari/pull/8964))\n- Next fix of release workflow by pass directly `dist/*` ([#8966](https://github.com/napari/napari/pull/8966))\n- Try to fix passing prerelease to `gh release create` ([#8969](https://github.com/napari/napari/pull/8969))\n- Explicitly set repository in make release workflow ([#8970](https://github.com/napari/napari/pull/8970))\n- Update `hypothesis`, `pandas`, `pyside6`, `pytest-rerunfailures`, `virtualenv` ([#8981](https://github.com/napari/napari/pull/8981))\n- In vispy overalys use **kwargs instead of synchronizing signature ([#8982](https://github.com/napari/napari/pull/8982))\n- Update `numpy`, `tensorstore`, `tifffile` ([#8986](https://github.com/napari/napari/pull/8986))\n- [pre-commit.ci] pre-commit autoupdate ([#8988](https://github.com/napari/napari/pull/8988))\n- Bump vispy to 0.16.2 ([#8992](https://github.com/napari/napari/pull/8992))\n- Docs: Bump napari-sphinx-theme to use sticky banners ([#8997](https://github.com/napari/napari/pull/8997))\n- Deprecate scale_bar.unit ([#9007](https://github.com/napari/napari/pull/9007))\n\n\n## 22 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Austin Epiphane Yann Tung-Shan Lefebvre](https://github.com/napari/napari/commits?author=aelefebv) - @aelefebv +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Martin Weigert](https://github.com/napari/napari/commits?author=maweigert) - @maweigert\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 22 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Anniek Stokkermans](https://github.com/napari/docs/commits?author=AnniekStok) - @AnniekStok\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/336920324/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":0,"rocket":0,"eyes":0},"mentions_count":25},{"url":"https://api.github.com/repos/napari/napari/releases/336436860","assets_url":"https://api.github.com/repos/napari/napari/releases/336436860/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/336436860/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1rc3","id":336436860,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84UDZ58","tag_name":"v0.7.1rc3","target_commitish":"06e654e89f19556a5f2a9a504604753da32cac0a","name":"v0.7.1rc3","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-06-09T07:59:45Z","updated_at":"2026-06-09T08:13:33Z","published_at":"2026-06-09T08:01:04Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/442520091","id":442520091,"node_id":"RA_kwDOCJ0aI84aYFIb","name":"napari-0.7.1rc3-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47268,"digest":"sha256:df89f4b8cf08674f8b6aac907a08c95479a3ceabe42922432b793d58cc095356","download_count":1,"created_at":"2026-06-09T08:07:47Z","updated_at":"2026-06-09T08:07:47Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442519842","id":442519842,"node_id":"RA_kwDOCJ0aI84aYFEi","name":"napari-0.7.1rc3-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":579002543,"digest":"sha256:296ef90cf155c81354f80430eecf220279386c5d6a5a24e1b80bfc694a08218d","download_count":4,"created_at":"2026-06-09T08:07:19Z","updated_at":"2026-06-09T08:07:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442521200","id":442521200,"node_id":"RA_kwDOCJ0aI84aYFZw","name":"napari-0.7.1rc3-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40405,"digest":"sha256:9db1cf5c4a45a714363506af86cdf0aafda4dc426131d528e5bc3c5b103941b9","download_count":1,"created_at":"2026-06-09T08:09:24Z","updated_at":"2026-06-09T08:09:25Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442520967","id":442520967,"node_id":"RA_kwDOCJ0aI84aYFWH","name":"napari-0.7.1rc3-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":404797905,"digest":"sha256:367d69a8beabdb73453163893b46b5aa152277060c67a30a325786e487248dd9","download_count":2,"created_at":"2026-06-09T08:09:05Z","updated_at":"2026-06-09T08:09:23Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442524095","id":442524095,"node_id":"RA_kwDOCJ0aI84aYGG_","name":"napari-0.7.1rc3-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":39825,"digest":"sha256:450b546895a9ed4680659ecea42282f90e42dc73a93a319ad5d74a12c46ef34c","download_count":1,"created_at":"2026-06-09T08:13:33Z","updated_at":"2026-06-09T08:13:33Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442523891","id":442523891,"node_id":"RA_kwDOCJ0aI84aYGDz","name":"napari-0.7.1rc3-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":439794343,"digest":"sha256:45489afc1302d87f200df9aefcccce240979f1be41bdd147ea1ba7cda93999de","download_count":4,"created_at":"2026-06-09T08:13:10Z","updated_at":"2026-06-09T08:13:32Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442516412","id":442516412,"node_id":"RA_kwDOCJ0aI84aYEO8","name":"napari-0.7.1rc3-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3506609,"digest":"sha256:62abdb2ec621a838bc12025640f2707b3c3e4a7c6298eb31734f568193435874","download_count":3,"created_at":"2026-06-09T08:01:03Z","updated_at":"2026-06-09T08:01:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442522675","id":442522675,"node_id":"RA_kwDOCJ0aI84aYFwz","name":"napari-0.7.1rc3-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":583502728,"digest":"sha256:9192ae9072ab7fbf40fb7e6edc56cc02c627169bc0ad1af758967eed7e90fef8","download_count":19,"created_at":"2026-06-09T08:11:25Z","updated_at":"2026-06-09T08:11:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442522894","id":442522894,"node_id":"RA_kwDOCJ0aI84aYF0O","name":"napari-0.7.1rc3-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37055,"digest":"sha256:c6713a51d1cb8868872dd8fcbb410b03e7d7b1d91b57cafc4f5c1608184a3ec7","download_count":1,"created_at":"2026-06-09T08:11:46Z","updated_at":"2026-06-09T08:11:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/442516413","id":442516413,"node_id":"RA_kwDOCJ0aI84aYEO9","name":"napari-0.7.1rc3.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3122442,"digest":"sha256:694465c064759e9f4adf37d19b39831b9d2fa0556541359b3c0be598575300f2","download_count":4,"created_at":"2026-06-09T08:01:03Z","updated_at":"2026-06-09T08:01:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc3/napari-0.7.1rc3.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1rc3","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1rc3","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1rc1 is in prerelease testing.* ⚠️\n\n*Wed, May 27, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\nThe napari 0.7.1 release is mainly a bug fix release, but it also includes some new features and improvements. Here are some of the highlights:\n\n## Signed Windows bundle\n\nStarting with the napari 0.7.1 release, our bundle on Windows is now [signed](https://github.com/napari/packaging/pull/387) with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.\n\nThe certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.\n \nIf you encounter any issues related to this change, please let us know!\n\n\n## Selection of the rendered level for multiscale layers\n\nPrior to napari 0.7.1, when rendering a multiscale layer: \n\n- in 3D display, napari would always render the lowest resolution level of the pyramid\n- in 2D display, the pyramid level would be automatically selected based on the viewport\n\nThanks to [#8917](https://github.com/napari/napari/pull/8917), users can now select a multiscale level to render. For the case of 3D display, for example, this allows for choosing a higher resolution rendering than before, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step.\n\n![The resolution dropdown in the layer controls allows the user to select different levels of a multiscale image.](https://github.com/user-attachments/assets/862e7512-0309-429c-b155-a9c03acf2db6)\n\n\n## Colorbars for points layer\n\nThe points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars ([#8624](https://github.com/napari/napari/pull/8624)), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.\n\n<img width=\"1019\" height=\"783\" alt=\"napari_colorbar\" src=\"https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee\" />\n\n## Scalebar with units \n\nIn previous versions of napari, if you added A scale bar using **View > Scale Bar > Scale Bar visible**, it was shown with no units. In napari 0.7.1 we now\nset default unit to `pixel` in [#8900](https://github.com/napari/napari/pull/8900) and also add calculation of units for scale bar based on currently added layers in [#8907](https://github.com/napari/napari/pull/8907), if they have units set.\n\n![Scale bar with units](https://github.com/user-attachments/assets/b25a1a53-b9a0-46f1-b88c-c2625e4287a8)\n\n## Lock layer to prevent accidental deletions\n\nIn [#8736](https://github.com/napari/napari/pull/8736) we added initial lock mechanism for layers. When a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time.\nIn the future we plan to expand this feature to prevent not only deletion but also other modifications.\n\n![Lock layer on layer list](https://github.com/user-attachments/assets/1df17b1e-cb52-4b2f-88b3-495f1e5301a0)\n\n\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- UX: Add Layer.locked property to protect layers from accidental deletion ([#8736](https://github.com/napari/napari/pull/8736))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- ScaleBar units from layers ([#8907](https://github.com/napari/napari/pull/8907))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Add multiscale level lock for scalar field layers ([#8917](https://github.com/napari/napari/pull/8917))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n- typing: add type hints to `napari/utils/shortcuts.py` ([#8983](https://github.com/napari/napari/pull/8983))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- Add max depth_value to avoid clipping volumes in 3d (#8809) ([#8810](https://github.com/napari/napari/pull/8810))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n- Fix Volume visual crash when adding invisible scalar field in 3D ([#8968](https://github.com/napari/napari/pull/8968))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Update multiscale documentation to describe new level selection ([docs#1004](https://github.com/napari/docs/pull/1004))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Add sample databases ([docs#1010](https://github.com/napari/docs/pull/1010))\n- Minimal all-contributors setup ([docs#1011](https://github.com/napari/docs/pull/1011))\n- Add Carlos to Core Team page ([docs#1012](https://github.com/napari/docs/pull/1012))\n- Update release notes for 0.7.1 ([docs#1019](https://github.com/napari/docs/pull/1019))\n- Add Curtis and Brian to SC members ([docs#1020](https://github.com/napari/docs/pull/1020))\n- Add Windows bundle signing and reputation info ([docs#1022](https://github.com/napari/docs/pull/1022))\n- Fix: `pyqt6` for conda install instructions ([docs#1023](https://github.com/napari/docs/pull/1023))\n- Document layer locking in napari GUI and API ([docs#1025](https://github.com/napari/docs/pull/1025))\n- Clean up button css for homepage and gallery ([docs#1026](https://github.com/napari/docs/pull/1026))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n- Add Carlos Rodríguez-Reza to core team section of citation file ([#8971](https://github.com/napari/napari/pull/8971))\n- Unpin sphinx for docs ([#8993](https://github.com/napari/napari/pull/8993))\n- add Yann-P to Citation.cff ([#8994](https://github.com/napari/napari/pull/8994))\n- Add units to Dims docstring and clarify Layer.units ([#8996](https://github.com/napari/napari/pull/8996))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Remove \"auto author assign\" workflow ([docs#1008](https://github.com/napari/docs/pull/1008))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 ([#8943](https://github.com/napari/napari/pull/8943))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- Update `coverage`, `fsspec`, `hypothesis`, `pydantic`, `pydantic-settings`, `tensorstore`, `tifffile`, `virtualenv` ([#8949](https://github.com/napari/napari/pull/8949))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n- Update python version used to generate title and body of update constraints PR ([#8957](https://github.com/napari/napari/pull/8957))\n- Use `gh release create` instead of `softprops/action-gh-release` ([#8958](https://github.com/napari/napari/pull/8958))\n- Remove CODEOWNERS ([#8959](https://github.com/napari/napari/pull/8959))\n- Restore testing on windows-latest (Revert  5d6ab46) ([#8960](https://github.com/napari/napari/pull/8960))\n- ci(dependabot): bump the actions group across 1 directory with 8 updates ([#8963](https://github.com/napari/napari/pull/8963))\n- Pass token to make `gh` working in create release workflow ([#8964](https://github.com/napari/napari/pull/8964))\n- Next fix of release workflow by pass directly `dist/*` ([#8966](https://github.com/napari/napari/pull/8966))\n- Try to fix passing prerelease to `gh release create` ([#8969](https://github.com/napari/napari/pull/8969))\n- Explicitly set repository in make release workflow ([#8970](https://github.com/napari/napari/pull/8970))\n- Update `hypothesis`, `pandas`, `pyside6`, `pytest-rerunfailures`, `virtualenv` ([#8981](https://github.com/napari/napari/pull/8981))\n- In vispy overalys use **kwargs instead of synchronizing signature ([#8982](https://github.com/napari/napari/pull/8982))\n- Update `numpy`, `tensorstore`, `tifffile` ([#8986](https://github.com/napari/napari/pull/8986))\n- [pre-commit.ci] pre-commit autoupdate ([#8988](https://github.com/napari/napari/pull/8988))\n- Bump vispy to 0.16.2 ([#8992](https://github.com/napari/napari/pull/8992))\n- Docs: Bump napari-sphinx-theme to use sticky banners ([#8997](https://github.com/napari/napari/pull/8997))\n- Deprecate scale_bar.unit ([#9007](https://github.com/napari/napari/pull/9007))\n\n\n## 22 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Austin Epiphane Yann Tung-Shan Lefebvre](https://github.com/napari/napari/commits?author=aelefebv) - @aelefebv +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Martin Weigert](https://github.com/napari/napari/commits?author=maweigert) - @maweigert\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 22 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Anniek Stokkermans](https://github.com/napari/docs/commits?author=AnniekStok) - @AnniekStok\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/336436860/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":1,"rocket":0,"eyes":0},"mentions_count":25},{"url":"https://api.github.com/repos/napari/napari/releases/331438096","assets_url":"https://api.github.com/repos/napari/napari/releases/331438096/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/331438096/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1rc2","id":331438096,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84TwVgQ","tag_name":"v0.7.1rc2","target_commitish":"517debc0e6294c85f71b6ae9928af12212af9e16","name":"v0.7.1rc2","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-05-29T10:02:13Z","updated_at":"2026-05-29T10:42:04Z","published_at":"2026-05-29T10:29:08Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/432941152","id":432941152,"node_id":"RA_kwDOCJ0aI84Zzihg","name":"napari-0.7.1rc2-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47269,"digest":"sha256:ce108b42b825edcc3e0903337565fea9cb1b0a154c1872e8b66093eca868d30c","download_count":1,"created_at":"2026-05-29T10:35:53Z","updated_at":"2026-05-29T10:35:53Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432940910","id":432940910,"node_id":"RA_kwDOCJ0aI84Zzidu","name":"napari-0.7.1rc2-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":575910063,"digest":"sha256:10e3981910a35ccbd92d1d545d2b374f4ef4bb6b0518ccc4de4309e4d66f1c67","download_count":2,"created_at":"2026-05-29T10:35:28Z","updated_at":"2026-05-29T10:35:52Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432942794","id":432942794,"node_id":"RA_kwDOCJ0aI84Zzi7K","name":"napari-0.7.1rc2-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40405,"digest":"sha256:764677fa7cdd56b57529d0e76571396b0104569cb4d9783e98b73dd827e85d88","download_count":1,"created_at":"2026-05-29T10:38:15Z","updated_at":"2026-05-29T10:38:15Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432942678","id":432942678,"node_id":"RA_kwDOCJ0aI84Zzi5W","name":"napari-0.7.1rc2-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":403498592,"digest":"sha256:5a7485d09238cd1631ebd9fdaf553a8dcca4cb8e3359ff8b6a71004be6744f8e","download_count":5,"created_at":"2026-05-29T10:37:58Z","updated_at":"2026-05-29T10:38:15Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432946064","id":432946064,"node_id":"RA_kwDOCJ0aI84ZzjuQ","name":"napari-0.7.1rc2-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":39822,"digest":"sha256:2051f3c1635c2b4c4639a52aa3f4461c311ea9a842ae0bb6d6b1d65377cbcef8","download_count":1,"created_at":"2026-05-29T10:42:04Z","updated_at":"2026-05-29T10:42:04Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432945679","id":432945679,"node_id":"RA_kwDOCJ0aI84ZzjoP","name":"napari-0.7.1rc2-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":438626635,"digest":"sha256:1ba59f894924954cdb0fc5eb58ac9eb43af31ad782ca4fd0b824206adf733519","download_count":3,"created_at":"2026-05-29T10:41:44Z","updated_at":"2026-05-29T10:42:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432936844","id":432936844,"node_id":"RA_kwDOCJ0aI84ZzheM","name":"napari-0.7.1rc2-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3498243,"digest":"sha256:9ec250846b7aaae24e7a4d72fba002623535e0a447d528eaceadd71522f35e1e","download_count":3,"created_at":"2026-05-29T10:29:07Z","updated_at":"2026-05-29T10:29:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432943518","id":432943518,"node_id":"RA_kwDOCJ0aI84ZzjGe","name":"napari-0.7.1rc2-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":581835376,"digest":"sha256:42992fce654ee9f4233c35352bc66d0de81797ecee70172d4a100a514d6548c8","download_count":26,"created_at":"2026-05-29T10:39:28Z","updated_at":"2026-05-29T10:39:44Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432943733","id":432943733,"node_id":"RA_kwDOCJ0aI84ZzjJ1","name":"napari-0.7.1rc2-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36944,"digest":"sha256:543a76fbc364325d1a89b1510e06444ffb4c45b1e6ea88b3eac7acece8354f2c","download_count":1,"created_at":"2026-05-29T10:39:45Z","updated_at":"2026-05-29T10:39:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/432936841","id":432936841,"node_id":"RA_kwDOCJ0aI84ZzheJ","name":"napari-0.7.1rc2.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3115577,"digest":"sha256:925a63b4b0e399e028f3aa0bc54807266af02d30da640ba82654de4b8b723ae9","download_count":3,"created_at":"2026-05-29T10:29:07Z","updated_at":"2026-05-29T10:29:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc2/napari-0.7.1rc2.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1rc2","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1rc2","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1rc1 is in prerelease testing.* ⚠️\n\n*Wed, May 27, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\nThe napari 0.7.1 release is mainly a bug fix release, but it also includes some new features and improvements. Here are some of the highlights:\n\n## Signed Windows bundle\n\nStarting with the napari 0.7.1 release, our bundle on Windows is now [signed](https://github.com/napari/packaging/pull/387) with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.\n\nThe certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.\n \nIf you encounter any issues related to this change, please let us know!\n\n\n## Selection of the rendered level for multiscale layers\n\nPrior to napari 0.7.1, when rendering a multiscale layer: \n\n- in 3D display, napari would always render the lowest resolution level of the pyramid\n- in 2D display, the pyramid level would be automatically selected based on the viewport\n\nThanks to [#8917](https://github.com/napari/napari/pull/8917), users can now select a multiscale level to render. For the case of 3D display, for example, this allows for choosing a higher resolution rendering than before, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step.\n\n![The resolution dropdown in the layer controls allows the user to select different levels of a multiscale image.](https://github.com/user-attachments/assets/862e7512-0309-429c-b155-a9c03acf2db6)\n\n\n## Colorbars for points layer\n\nThe points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars ([#8624](https://github.com/napari/napari/pull/8624)), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.\n\n<img width=\"1019\" height=\"783\" alt=\"napari_colorbar\" src=\"https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee\" />\n\n## Scalebar with units \n\nIn previous versions of napari, if you added A scale bar using **View > Scale Bar > Scale Bar visible**, it was shown with no units. In napari 0.7.1 we now\nset default unit to `pixel` in [#8900](https://github.com/napari/napari/pull/8900) and also add calculation of units for scale bar based on currently added layers in [#8907](https://github.com/napari/napari/pull/8907), if they have units set.\n\n![Scale bar with units](https://github.com/user-attachments/assets/b25a1a53-b9a0-46f1-b88c-c2625e4287a8)\n\n## Lock layer to prevent accidental deletions\n\nIn [#8736](https://github.com/napari/napari/pull/8736) we added initial lock mechanism for layers. When a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time.\nIn the future we plan to expand this feature to prevent not only deletion but also other modifications.\n\n![Lock layer on layer list](https://github.com/user-attachments/assets/1df17b1e-cb52-4b2f-88b3-495f1e5301a0)\n\n\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- UX: Add Layer.locked property to protect layers from accidental deletion ([#8736](https://github.com/napari/napari/pull/8736))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- ScaleBar units from layers ([#8907](https://github.com/napari/napari/pull/8907))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Add multiscale level lock for scalar field layers ([#8917](https://github.com/napari/napari/pull/8917))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n- typing: add type hints to `napari/utils/shortcuts.py` ([#8983](https://github.com/napari/napari/pull/8983))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- Add max depth_value to avoid clipping volumes in 3d (#8809) ([#8810](https://github.com/napari/napari/pull/8810))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n- Fix Volume visual crash when adding invisible scalar field in 3D ([#8968](https://github.com/napari/napari/pull/8968))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Update multiscale documentation to describe new level selection ([docs#1004](https://github.com/napari/docs/pull/1004))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Add sample databases ([docs#1010](https://github.com/napari/docs/pull/1010))\n- Minimal all-contributors setup ([docs#1011](https://github.com/napari/docs/pull/1011))\n- Add Carlos to Core Team page ([docs#1012](https://github.com/napari/docs/pull/1012))\n- Update release notes for 0.7.1 ([docs#1019](https://github.com/napari/docs/pull/1019))\n- Add Curtis and Brian to SC members ([docs#1020](https://github.com/napari/docs/pull/1020))\n- Add Windows bundle signing and reputation info ([docs#1022](https://github.com/napari/docs/pull/1022))\n- Fix: `pyqt6` for conda install instructions ([docs#1023](https://github.com/napari/docs/pull/1023))\n- Document layer locking in napari GUI and API ([docs#1025](https://github.com/napari/docs/pull/1025))\n- Clean up button css for homepage and gallery ([docs#1026](https://github.com/napari/docs/pull/1026))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n- Add Carlos Rodríguez-Reza to core team section of citation file ([#8971](https://github.com/napari/napari/pull/8971))\n- Unpin sphinx for docs ([#8993](https://github.com/napari/napari/pull/8993))\n- add Yann-P to Citation.cff ([#8994](https://github.com/napari/napari/pull/8994))\n- Add units to Dims docstring and clarify Layer.units ([#8996](https://github.com/napari/napari/pull/8996))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Remove \"auto author assign\" workflow ([docs#1008](https://github.com/napari/docs/pull/1008))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 ([#8943](https://github.com/napari/napari/pull/8943))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- Update `coverage`, `fsspec`, `hypothesis`, `pydantic`, `pydantic-settings`, `tensorstore`, `tifffile`, `virtualenv` ([#8949](https://github.com/napari/napari/pull/8949))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n- Update python version used to generate title and body of update constraints PR ([#8957](https://github.com/napari/napari/pull/8957))\n- Use `gh release create` instead of `softprops/action-gh-release` ([#8958](https://github.com/napari/napari/pull/8958))\n- Remove CODEOWNERS ([#8959](https://github.com/napari/napari/pull/8959))\n- Restore testing on windows-latest (Revert  5d6ab46) ([#8960](https://github.com/napari/napari/pull/8960))\n- ci(dependabot): bump the actions group across 1 directory with 8 updates ([#8963](https://github.com/napari/napari/pull/8963))\n- Pass token to make `gh` working in create release workflow ([#8964](https://github.com/napari/napari/pull/8964))\n- Next fix of release workflow by pass directly `dist/*` ([#8966](https://github.com/napari/napari/pull/8966))\n- Try to fix passing prerelease to `gh release create` ([#8969](https://github.com/napari/napari/pull/8969))\n- Explicitly set repository in make release workflow ([#8970](https://github.com/napari/napari/pull/8970))\n- Update `hypothesis`, `pandas`, `pyside6`, `pytest-rerunfailures`, `virtualenv` ([#8981](https://github.com/napari/napari/pull/8981))\n- In vispy overalys use **kwargs instead of synchronizing signature ([#8982](https://github.com/napari/napari/pull/8982))\n- Update `numpy`, `tensorstore`, `tifffile` ([#8986](https://github.com/napari/napari/pull/8986))\n- [pre-commit.ci] pre-commit autoupdate ([#8988](https://github.com/napari/napari/pull/8988))\n- Bump vispy to 0.16.2 ([#8992](https://github.com/napari/napari/pull/8992))\n- Docs: Bump napari-sphinx-theme to use sticky banners ([#8997](https://github.com/napari/napari/pull/8997))\n- Deprecate scale_bar.unit ([#9007](https://github.com/napari/napari/pull/9007))\n\n\n## 22 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Austin Epiphane Yann Tung-Shan Lefebvre](https://github.com/napari/napari/commits?author=aelefebv) - @aelefebv +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Martin Weigert](https://github.com/napari/napari/commits?author=maweigert) - @maweigert\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 22 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Anniek Stokkermans](https://github.com/napari/docs/commits?author=AnniekStok) - @AnniekStok\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/331438096/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"mentions_count":25},{"url":"https://api.github.com/repos/napari/napari/releases/329738747","assets_url":"https://api.github.com/repos/napari/napari/releases/329738747/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/329738747/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1rc1","id":329738747,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84Tp2n7","tag_name":"v0.7.1rc1","target_commitish":"bcb09d9c76c226c11981a77fd64695d5c7191662","name":"v0.7.1rc1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-05-26T15:33:43Z","updated_at":"2026-05-26T22:20:17Z","published_at":"2026-05-26T22:07:18Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/430541769","id":430541769,"node_id":"RA_kwDOCJ0aI84ZqYvJ","name":"napari-0.7.1rc1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":47369,"digest":"sha256:8ec11ce3599b3107c08d3301bcf726c2380283740f0918b7876a424e9e09120d","download_count":1,"created_at":"2026-05-26T22:13:02Z","updated_at":"2026-05-26T22:13:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430541660","id":430541660,"node_id":"RA_kwDOCJ0aI84ZqYtc","name":"napari-0.7.1rc1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":569950383,"digest":"sha256:84a1f9734e1c550f279165314c710be3a6b03c6e270b46aa44b5510393ed7112","download_count":3,"created_at":"2026-05-26T22:12:47Z","updated_at":"2026-05-26T22:13:02Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430542639","id":430542639,"node_id":"RA_kwDOCJ0aI84ZqY8v","name":"napari-0.7.1rc1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":40393,"digest":"sha256:9203c7989f32da46937b2cead5e4156117e78c901606a3286ab3053ff652f21c","download_count":1,"created_at":"2026-05-26T22:14:53Z","updated_at":"2026-05-26T22:14:53Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430542506","id":430542506,"node_id":"RA_kwDOCJ0aI84ZqY6q","name":"napari-0.7.1rc1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":406085735,"digest":"sha256:6cd14000c3cee66394bc5875d6c4ba95d1f56f791e95bdabe3718e5b5a17cf6a","download_count":3,"created_at":"2026-05-26T22:14:38Z","updated_at":"2026-05-26T22:14:52Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430545741","id":430545741,"node_id":"RA_kwDOCJ0aI84ZqZtN","name":"napari-0.7.1rc1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":39813,"digest":"sha256:16b12dcc4946d656fae160c22b2bd99ca4fbabc3f9c71c5d6a5f3a3e1366b1a9","download_count":1,"created_at":"2026-05-26T22:20:17Z","updated_at":"2026-05-26T22:20:17Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430545554","id":430545554,"node_id":"RA_kwDOCJ0aI84ZqZqS","name":"napari-0.7.1rc1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":437296806,"digest":"sha256:8dc707b6bd81c54d1b89657b5c6cd80d44ebbe500d701ec72ed2bd78b461d106","download_count":3,"created_at":"2026-05-26T22:19:57Z","updated_at":"2026-05-26T22:20:16Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430538979","id":430538979,"node_id":"RA_kwDOCJ0aI84ZqYDj","name":"napari-0.7.1rc1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3498239,"digest":"sha256:ec62c6f93e0a2bf7ad2ae7e56d5434b6b71f8eb05e6c1b534669191f6d73d0aa","download_count":6,"created_at":"2026-05-26T22:07:17Z","updated_at":"2026-05-26T22:07:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430543965","id":430543965,"node_id":"RA_kwDOCJ0aI84ZqZRd","name":"napari-0.7.1rc1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":584706176,"digest":"sha256:305372c94fb314ffdd7da8fcf43578619fb9133eea78a072df0a659e651a7afc","download_count":5,"created_at":"2026-05-26T22:17:12Z","updated_at":"2026-05-26T22:17:31Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430544117","id":430544117,"node_id":"RA_kwDOCJ0aI84ZqZT1","name":"napari-0.7.1rc1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":36935,"digest":"sha256:4e0a07245e193b769f26b500a18ee558a7a885cf662a680d6e193609e9ac7e1d","download_count":1,"created_at":"2026-05-26T22:17:32Z","updated_at":"2026-05-26T22:17:32Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/430538978","id":430538978,"node_id":"RA_kwDOCJ0aI84ZqYDi","name":"napari-0.7.1rc1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3115776,"digest":"sha256:257133d324c5adfef674c1d92ef0a67fb38e3020cc6551903528addddc36e5f7","download_count":6,"created_at":"2026-05-26T22:07:17Z","updated_at":"2026-05-26T22:07:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1rc1/napari-0.7.1rc1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1rc1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1rc1","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1rc1 is in prerelease testing.* ⚠️\n\n*Wed, May 27, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\nThe napari 0.7.1 release is mainly a bug fix release, but it also includes some new features and improvements. Here are some of the highlights:\n\n## Signed Windows bundle\n\nStarting with the napari 0.7.1 release, our bundle on Windows is now [signed](https://github.com/napari/packaging/pull/387) with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.\n\nThe certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.\n \nIf you encounter any issues related to this change, please let us know!\n\n\n## Selection of the rendered level for multiscale layers\n\nPrior to napari 0.7.1, when rendering a multiscale layer: \n\n- in 3D display, napari would always render the lowest resolution level of the pyramid\n- in 2D display, the pyramid level would be automatically selected based on the viewport\n\nThanks to [#8917](https://github.com/napari/napari/pull/8917), users can now select a multiscale level to render. For the case of 3D display, for example, this allows for choosing a higher resolution rendering than before, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step.\n\n![The resolution dropdown in the layer controls allows the user to select different levels of a multiscale image.](https://github.com/user-attachments/assets/862e7512-0309-429c-b155-a9c03acf2db6)\n\n\n## Colorbars for points layer\n\nThe points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars ([#8624](https://github.com/napari/napari/pull/8624)), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.\n\n<img width=\"1019\" height=\"783\" alt=\"napari_colorbar\" src=\"https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee\" />\n\n## Scalebar with units \n\nIn previous versions of napari, if you added A scale bar using **View > Scale Bar > Scale Bar visible**, it was shown with no units. In napari 0.7.1 we now\nset default unit to `pixel` in [#8900](https://github.com/napari/napari/pull/8900) and also add calculation of units for scale bar based on currently added layers in [#8907](https://github.com/napari/napari/pull/8907), if they have units set.\n\n![Scale bar with units](https://github.com/user-attachments/assets/b25a1a53-b9a0-46f1-b88c-c2625e4287a8)\n\n## Lock layer to prevent accidental deletions\n\nIn [#8736](https://github.com/napari/napari/pull/8736) we added initial lock mechanism for layers. When a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time.\nIn the future we plan to expand this feature to prevent not only deletion but also other modifications.\n\n![Lock layer on layer list](https://github.com/user-attachments/assets/1df17b1e-cb52-4b2f-88b3-495f1e5301a0)\n\n\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- UX: Add Layer.locked property to protect layers from accidental deletion ([#8736](https://github.com/napari/napari/pull/8736))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- ScaleBar units from layers ([#8907](https://github.com/napari/napari/pull/8907))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Add multiscale level lock for scalar field layers ([#8917](https://github.com/napari/napari/pull/8917))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n- typing: add type hints to `napari/utils/shortcuts.py` ([#8983](https://github.com/napari/napari/pull/8983))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- Add max depth_value to avoid clipping volumes in 3d (#8809) ([#8810](https://github.com/napari/napari/pull/8810))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n- Fix Volume visual crash when adding invisible scalar field in 3D ([#8968](https://github.com/napari/napari/pull/8968))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Update multiscale documentation to describe new level selection ([docs#1004](https://github.com/napari/docs/pull/1004))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Add sample databases ([docs#1010](https://github.com/napari/docs/pull/1010))\n- Minimal all-contributors setup ([docs#1011](https://github.com/napari/docs/pull/1011))\n- Add Carlos to Core Team page ([docs#1012](https://github.com/napari/docs/pull/1012))\n- Update release notes for 0.7.1 ([docs#1019](https://github.com/napari/docs/pull/1019))\n- Add Curtis and Brian to SC members ([docs#1020](https://github.com/napari/docs/pull/1020))\n- Add Windows bundle signing and reputation info ([docs#1022](https://github.com/napari/docs/pull/1022))\n- Fix: `pyqt6` for conda install instructions ([docs#1023](https://github.com/napari/docs/pull/1023))\n- Document layer locking in napari GUI and API ([docs#1025](https://github.com/napari/docs/pull/1025))\n- Clean up button css for homepage and gallery ([docs#1026](https://github.com/napari/docs/pull/1026))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n- Add Carlos Rodríguez-Reza to core team section of citation file ([#8971](https://github.com/napari/napari/pull/8971))\n- Unpin sphinx for docs ([#8993](https://github.com/napari/napari/pull/8993))\n- add Yann-P to Citation.cff ([#8994](https://github.com/napari/napari/pull/8994))\n- Add units to Dims docstring and clarify Layer.units ([#8996](https://github.com/napari/napari/pull/8996))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Remove \"auto author assign\" workflow ([docs#1008](https://github.com/napari/docs/pull/1008))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 ([#8943](https://github.com/napari/napari/pull/8943))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- Update `coverage`, `fsspec`, `hypothesis`, `pydantic`, `pydantic-settings`, `tensorstore`, `tifffile`, `virtualenv` ([#8949](https://github.com/napari/napari/pull/8949))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n- Update python version used to generate title and body of update constraints PR ([#8957](https://github.com/napari/napari/pull/8957))\n- Use `gh release create` instead of `softprops/action-gh-release` ([#8958](https://github.com/napari/napari/pull/8958))\n- Remove CODEOWNERS ([#8959](https://github.com/napari/napari/pull/8959))\n- Restore testing on windows-latest (Revert  5d6ab46) ([#8960](https://github.com/napari/napari/pull/8960))\n- ci(dependabot): bump the actions group across 1 directory with 8 updates ([#8963](https://github.com/napari/napari/pull/8963))\n- Pass token to make `gh` working in create release workflow ([#8964](https://github.com/napari/napari/pull/8964))\n- Next fix of release workflow by pass directly `dist/*` ([#8966](https://github.com/napari/napari/pull/8966))\n- Try to fix passing prerelease to `gh release create` ([#8969](https://github.com/napari/napari/pull/8969))\n- Explicitly set repository in make release workflow ([#8970](https://github.com/napari/napari/pull/8970))\n- Update `hypothesis`, `pandas`, `pyside6`, `pytest-rerunfailures`, `virtualenv` ([#8981](https://github.com/napari/napari/pull/8981))\n- In vispy overalys use **kwargs instead of synchronizing signature ([#8982](https://github.com/napari/napari/pull/8982))\n- Update `numpy`, `tensorstore`, `tifffile` ([#8986](https://github.com/napari/napari/pull/8986))\n- [pre-commit.ci] pre-commit autoupdate ([#8988](https://github.com/napari/napari/pull/8988))\n- Bump vispy to 0.16.2 ([#8992](https://github.com/napari/napari/pull/8992))\n- Docs: Bump napari-sphinx-theme to use sticky banners ([#8997](https://github.com/napari/napari/pull/8997))\n- Deprecate scale_bar.unit ([#9007](https://github.com/napari/napari/pull/9007))\n\n\n## 22 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Austin Epiphane Yann Tung-Shan Lefebvre](https://github.com/napari/napari/commits?author=aelefebv) - @aelefebv +\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Martin Weigert](https://github.com/napari/napari/commits?author=maweigert) - @maweigert\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 22 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Anniek Stokkermans](https://github.com/napari/docs/commits?author=AnniekStok) - @AnniekStok\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/napari/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) ([docs](https://github.com/napari/docs/commits?author=cmalinmayor))  - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/napari/commits?author=hinderling) - @hinderling +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n- [Yann Pellegrini](https://github.com/napari/docs/commits?author=Yann-P) - @Yann-P\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/329738747/reactions","total_count":3,"+1":0,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":1,"rocket":0,"eyes":0},"mentions_count":25},{"url":"https://api.github.com/repos/napari/napari/releases/319366920","assets_url":"https://api.github.com/repos/napari/napari/releases/319366920/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/319366920/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1a6","id":319366920,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84TCScI","tag_name":"v0.7.1a6","target_commitish":"dfa7bf47007548cd26a8d43b64ab1e08f38ecdac","name":"v0.7.1a6","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-05-08T07:29:36Z","updated_at":"2026-05-08T07:44:00Z","published_at":"2026-05-08T07:31:40Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/415082212","id":415082212,"node_id":"RA_kwDOCJ0aI84Yvabk","name":"napari-0.7.1a6-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44755,"digest":"sha256:4f20a3435a3097e3215a80c956238bf975057c5bb7e919f20e5053e1f8c5d4c7","download_count":1,"created_at":"2026-05-08T07:38:19Z","updated_at":"2026-05-08T07:38:19Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415082023","id":415082023,"node_id":"RA_kwDOCJ0aI84YvaYn","name":"napari-0.7.1a6-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":556423564,"digest":"sha256:d16e53d4525aa9d9907216812bac0652021b514561bf79108b7d9e04848f51ec","download_count":4,"created_at":"2026-05-08T07:37:49Z","updated_at":"2026-05-08T07:38:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415083883","id":415083883,"node_id":"RA_kwDOCJ0aI84Yva1r","name":"napari-0.7.1a6-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37778,"digest":"sha256:125a1912f05e8950f82fd7ab0377a2eaef6898c6761eb8b82f37605057287167","download_count":2,"created_at":"2026-05-08T07:41:36Z","updated_at":"2026-05-08T07:41:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415083734","id":415083734,"node_id":"RA_kwDOCJ0aI84YvazW","name":"napari-0.7.1a6-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":408239449,"digest":"sha256:30695832a2f2696d859751f5b6b6f93e3e9d46c60061e3ac390451e872d1074f","download_count":4,"created_at":"2026-05-08T07:41:21Z","updated_at":"2026-05-08T07:41:36Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415085571","id":415085571,"node_id":"RA_kwDOCJ0aI84YvbQD","name":"napari-0.7.1a6-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37207,"digest":"sha256:17f99e969dcaffc67dd1ee2a5a2458561e408d7e25ee15701546007064d3c138","download_count":2,"created_at":"2026-05-08T07:44:00Z","updated_at":"2026-05-08T07:44:00Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415085433","id":415085433,"node_id":"RA_kwDOCJ0aI84YvbN5","name":"napari-0.7.1a6-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":437104998,"digest":"sha256:31906f36fc91d7299f1b741fdfec6533ce2332497b60734a1eaa62d66db19379","download_count":4,"created_at":"2026-05-08T07:43:44Z","updated_at":"2026-05-08T07:43:59Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415078830","id":415078830,"node_id":"RA_kwDOCJ0aI84YvZmu","name":"napari-0.7.1a6-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3483014,"digest":"sha256:e77e07db556d65b4af3aa006f45c7b157729d7db2b5835ed32683e879ee1d755","download_count":5,"created_at":"2026-05-08T07:31:39Z","updated_at":"2026-05-08T07:31:39Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415082649","id":415082649,"node_id":"RA_kwDOCJ0aI84YvaiZ","name":"napari-0.7.1a6-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":555220248,"digest":"sha256:ba34de500f930c0a654942d640fdc40f04124779ad88f3954691387a8fb2b13b","download_count":26,"created_at":"2026-05-08T07:39:24Z","updated_at":"2026-05-08T07:39:40Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415082789","id":415082789,"node_id":"RA_kwDOCJ0aI84Yvakl","name":"napari-0.7.1a6-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":34305,"digest":"sha256:00cda39202324332bec23a7afd1f8c03edd0587bf19fb0d36eab21d8c48f644d","download_count":1,"created_at":"2026-05-08T07:39:41Z","updated_at":"2026-05-08T07:39:41Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/415078835","id":415078835,"node_id":"RA_kwDOCJ0aI84YvZmz","name":"napari-0.7.1a6.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/x-gtar","state":"uploaded","size":3101537,"digest":"sha256:90946c18251b54e318a7d9abde24fe46f81cb916041d5dc9237e182abdc04801","download_count":5,"created_at":"2026-05-08T07:31:39Z","updated_at":"2026-05-08T07:31:39Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a6/napari-0.7.1a6.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1a6","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1a6","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1a1 is in prerelease testing.* ⚠️\n\n*Thu, May 14, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Add example driving computation from gui ([#8658](https://github.com/napari/napari/pull/8658))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Canvas based font size ([#8770](https://github.com/napari/napari/pull/8770))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Revert the switch from Welcome widget to Welcome overlay from #8117 ([#8793](https://github.com/napari/napari/pull/8793))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Fix floating widgets and use custom title bar in all cases ([#8898](https://github.com/napari/napari/pull/8898))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Revert the switch from Welcome widget to Welcome overlay from #8117 ([#8793](https://github.com/napari/napari/pull/8793))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- fix: clims for non-numpy arrays with out-of-view translate ([#8756](https://github.com/napari/napari/pull/8756))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Fix floating widgets and use custom title bar in all cases ([#8898](https://github.com/napari/napari/pull/8898))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Example: Comparison of messages in napari (notifications, logs, etc) ([#8914](https://github.com/napari/napari/pull/8914))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Test against conda packages using pixi ([#8855](https://github.com/napari/napari/pull/8855))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n\n\n## 17 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 18 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Davin Potts](https://github.com/napari/docs/commits?author=applio) - @applio\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/docs/commits?author=hinderling) - @hinderling\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/319366920/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":1,"rocket":0,"eyes":0},"mentions_count":20},{"url":"https://api.github.com/repos/napari/napari/releases/318578792","assets_url":"https://api.github.com/repos/napari/napari/releases/318578792/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/318578792/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.1a1","id":318578792,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84S_SBo","tag_name":"v0.7.1a1","target_commitish":"dd30d7c2fe8f01fa95b73bc22ad47d477586bba9","name":"v0.7.1a1","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-05-05T11:49:53Z","updated_at":"2026-05-06T19:19:58Z","published_at":"2026-05-06T19:07:28Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/413768454","id":413768454,"node_id":"RA_kwDOCJ0aI84YqZsG","name":"napari-0.7.1a1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44755,"digest":"sha256:9b83ff44ada950ea58ec034033f7707f585f7eea8626718d0efd56db10ea2da2","download_count":1,"created_at":"2026-05-06T19:13:29Z","updated_at":"2026-05-06T19:13:29Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413768271","id":413768271,"node_id":"RA_kwDOCJ0aI84YqZpP","name":"napari-0.7.1a1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":556433804,"digest":"sha256:3df15b139a367fbff575bc106f1a6aba04bed132cf3e568a0d9b3a9d584862d2","download_count":2,"created_at":"2026-05-06T19:13:11Z","updated_at":"2026-05-06T19:13:29Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413770113","id":413770113,"node_id":"RA_kwDOCJ0aI84YqaGB","name":"napari-0.7.1a1-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37778,"digest":"sha256:f6103f8a7361811cf503f3513e9f72893475aa8406073e0f06837de26cc13c32","download_count":2,"created_at":"2026-05-06T19:16:03Z","updated_at":"2026-05-06T19:16:03Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413769948","id":413769948,"node_id":"RA_kwDOCJ0aI84YqaDc","name":"napari-0.7.1a1-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":408217849,"digest":"sha256:76e26b494bedb30d8652c1f32f63fe6cf109554be082d7278f6614a77695d048","download_count":3,"created_at":"2026-05-06T19:15:45Z","updated_at":"2026-05-06T19:16:02Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413772939","id":413772939,"node_id":"RA_kwDOCJ0aI84YqayL","name":"napari-0.7.1a1-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37207,"digest":"sha256:989d6e7de36e9761f3f35ab146fd99464a4fa215c6e06ead6b22da994ac377fd","download_count":3,"created_at":"2026-05-06T19:19:58Z","updated_at":"2026-05-06T19:19:58Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413772592","id":413772592,"node_id":"RA_kwDOCJ0aI84Yqasw","name":"napari-0.7.1a1-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":437168686,"digest":"sha256:9542271830ae22dbadc1cbed65a6148240597be4bc4f82c907002e58146056c6","download_count":3,"created_at":"2026-05-06T19:19:36Z","updated_at":"2026-05-06T19:19:57Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413764960","id":413764960,"node_id":"RA_kwDOCJ0aI84YqY1g","name":"napari-0.7.1a1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3482004,"digest":"sha256:ece039838c83db5c8154593ac8dc89aad55044511b3ad0225e5e1f010400fe2d","download_count":3,"created_at":"2026-05-06T19:07:27Z","updated_at":"2026-05-06T19:07:28Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413769667","id":413769667,"node_id":"RA_kwDOCJ0aI84YqZ_D","name":"napari-0.7.1a1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":555795960,"digest":"sha256:21291b588a5c06f7e1bc79fd4c2d2bd8a6af2c532e79503f28f0ca9a56cad6b7","download_count":10,"created_at":"2026-05-06T19:15:26Z","updated_at":"2026-05-06T19:15:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413769956","id":413769956,"node_id":"RA_kwDOCJ0aI84YqaDk","name":"napari-0.7.1a1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":34305,"digest":"sha256:8c38e015c54afef8a0bf905c9f20dee1849dd355cfb5370856a7896f81b24122","download_count":1,"created_at":"2026-05-06T19:15:46Z","updated_at":"2026-05-06T19:15:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/413764959","id":413764959,"node_id":"RA_kwDOCJ0aI84YqY1f","name":"napari-0.7.1a1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":3100778,"digest":"sha256:feb1330741b7b4b25afd896da96e4807702ee835a9866ce626f55319df08d110","download_count":3,"created_at":"2026-05-06T19:07:27Z","updated_at":"2026-05-06T19:07:28Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.1a1/napari-0.7.1a1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.1a1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.1a1","body":"# napari 0.7.1\n⚠️ *Note: these release notes are still in draft while 0.7.1a1 is in prerelease testing.* ⚠️\n\n*Thu, May 14, 2026*\n\nWe're happy to announce the release of napari 0.7.1!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari 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.\n\n## Highlights\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## New Features\n\n- Add points layer face and border colorbar ([#8624](https://github.com/napari/napari/pull/8624))\n\n## Improvements\n\n- Add handler for show message when napari fails to import ([#8609](https://github.com/napari/napari/pull/8609))\n- Add example driving computation from gui ([#8658](https://github.com/napari/napari/pull/8658))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Do not connect to children events of EventedDict items if there is no callback ([#8673](https://github.com/napari/napari/pull/8673))\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Canvas based font size ([#8770](https://github.com/napari/napari/pull/8770))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Revert the switch from Welcome widget to Welcome overlay from #8117 ([#8793](https://github.com/napari/napari/pull/8793))\n- Add handler for show message when napari fails to import v2 ([#8803](https://github.com/napari/napari/pull/8803))\n- Update text in mac installer to improve UX ([#8806](https://github.com/napari/napari/pull/8806))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Add note for user how to reset the reader preference ([#8848](https://github.com/napari/napari/pull/8848))\n- Ensure all napari and plugin commands use . instead of : ([#8883](https://github.com/napari/napari/pull/8883))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Fix floating widgets and use custom title bar in all cases ([#8898](https://github.com/napari/napari/pull/8898))\n- Set pixel as default scalebar unit ([#8900](https://github.com/napari/napari/pull/8900))\n- Turn off contrast/color controls when surface has `vertex_colors` ([#8909](https://github.com/napari/napari/pull/8909))\n- Actually use theme type from npe contrib ([#8915](https://github.com/napari/napari/pull/8915))\n- Do not add a new colormap if one already exists in napari ([#8924](https://github.com/napari/napari/pull/8924))\n- Improve sizing of dims ordering popup ([#8952](https://github.com/napari/napari/pull/8952))\n\n## Performance\n\n- ENH: For multiscale 2d: store materialized thumbnail_level ([#8715](https://github.com/napari/napari/pull/8715))\n- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path ([#8785](https://github.com/napari/napari/pull/8785))\n- Perf: Defer importing scipy.spatial ([#8789](https://github.com/napari/napari/pull/8789))\n- Revert the switch from Welcome widget to Welcome overlay from #8117 ([#8793](https://github.com/napari/napari/pull/8793))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg ([#8903](https://github.com/napari/napari/pull/8903))\n\n## Bug Fixes\n\n- fix: clims for non-numpy arrays with out-of-view translate ([#8756](https://github.com/napari/napari/pull/8756))\n- Fix TypeError with anisotropic data in 3D ray intersections ([#8812](https://github.com/napari/napari/pull/8812))\n- Reuse QMarginSlidersPopup between rightclicks ([#8819](https://github.com/napari/napari/pull/8819))\n- Fix: Use Python's tokenize script decoding for builtin reader ([#8838](https://github.com/napari/napari/pull/8838))\n- Fix: Blocks dims slider widget creation feedback to dims model ([#8840](https://github.com/napari/napari/pull/8840))\n- Fix: play button loop mode duplication ([#8841](https://github.com/napari/napari/pull/8841))\n- Improve dask check to support more dask-backed array types ([#8896](https://github.com/napari/napari/pull/8896))\n- Fix floating widgets and use custom title bar in all cases ([#8898](https://github.com/napari/napari/pull/8898))\n- Wrap Labels multiscale data in MultiScaleData object in setter ([#8922](https://github.com/napari/napari/pull/8922))\n- Fix Labels show_selected_label being silently dropped after color shuffle ([#8947](https://github.com/napari/napari/pull/8947))\n\n## Documentation\n\n- Fix typo in 0.7.0 release notes ([docs#967](https://github.com/napari/docs/pull/967))\n- Remove draft note from 0.7.0 release notes. ([docs#968](https://github.com/napari/docs/pull/968))\n- Reorganize cards in homepage ([docs#970](https://github.com/napari/docs/pull/970))\n- Rename \"latest\" version switch to \"dev\" ([docs#971](https://github.com/napari/docs/pull/971))\n- Use stable version for dev docs bundle links ([docs#973](https://github.com/napari/docs/pull/973))\n- Remove mention of unmaintained plugin in quick start ([docs#976](https://github.com/napari/docs/pull/976))\n- Rename navbar entries (API and Contribute) ([docs#978](https://github.com/napari/docs/pull/978))\n- Update team page ([docs#980](https://github.com/napari/docs/pull/980))\n- Add \"Edit on Github\" to secondary sidebar ([docs#982](https://github.com/napari/docs/pull/982))\n- Add deprecation warning section in contributing guide ([docs#984](https://github.com/napari/docs/pull/984))\n- Enable search as you type and remove sidebar search ([docs#989](https://github.com/napari/docs/pull/989))\n- Use flexible search field for navbar ([docs#991](https://github.com/napari/docs/pull/991))\n- Add more info about example tags and _.py ([docs#994](https://github.com/napari/docs/pull/994))\n- Remove napari-hub from navbar and add to sidebar ([docs#995](https://github.com/napari/docs/pull/995))\n- Update deprecation warning guidance to use `FutureWarning` ([docs#997](https://github.com/napari/docs/pull/997))\n- Update Jupyter notebook example screenshot ([docs#1003](https://github.com/napari/docs/pull/1003))\n- Add release notes for 0.7.1a1 ([docs#1009](https://github.com/napari/docs/pull/1009))\n- Example: Enhance theme sample widget with theme colors, widgets ([#8662](https://github.com/napari/napari/pull/8662))\n- Add note to Camera.angles docstring about quaternion normalisation ([#8864](https://github.com/napari/napari/pull/8864))\n- Docs: Bump lower version of napari-sphinx-theme ([#8886](https://github.com/napari/napari/pull/8886))\n- Example: Comparison of messages in napari (notifications, logs, etc) ([#8914](https://github.com/napari/napari/pull/8914))\n- Replace v (shorter) with viewer in the examples ([#8940](https://github.com/napari/napari/pull/8940))\n\n## Other Pull Requests\n\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#975](https://github.com/napari/docs/pull/975))\n- Fix minor typos ([docs#1005](https://github.com/napari/docs/pull/1005))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#1006](https://github.com/napari/docs/pull/1006))\n- Update workflows to python 3.14 ([#8666](https://github.com/napari/napari/pull/8666))\n- Improve typing in qt_dims_slider and clean local functions ([#8683](https://github.com/napari/napari/pull/8683))\n- Drop triangle from 3.14 docs dependencies ([#8703](https://github.com/napari/napari/pull/8703))\n- Use viewer-based caching for font manager ([#8761](https://github.com/napari/napari/pull/8761))\n- Enable `TC003` - typing-only-standard-library-import rule in ruff config ([#8791](https://github.com/napari/napari/pull/8791))\n- Solve \"Could not resolve type hint for required parameter 'qt_viewer'.\" ([#8792](https://github.com/napari/napari/pull/8792))\n- Add app-model to mypy task dependencies and fix errors ([#8794](https://github.com/napari/napari/pull/8794))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `numpy`, `pint`, `pygments`, `pyside6`, `qtconsole`, `superqt` ([#8796](https://github.com/napari/napari/pull/8796))\n- Move from `appdirs` to `platformdirs` ([#8797](https://github.com/napari/napari/pull/8797))\n- [pre-commit.ci] pre-commit autoupdate ([#8800](https://github.com/napari/napari/pull/8800))\n- Enable TC002 ruff rule ([#8804](https://github.com/napari/napari/pull/8804))\n- Fix layerlist_context by move Calable from TYPE_CHECKING block ([#8805](https://github.com/napari/napari/pull/8805))\n- Add zizmor security CI check ([#8811](https://github.com/napari/napari/pull/8811))\n- Ban expensive import in ruff ([#8815](https://github.com/napari/napari/pull/8815))\n- Remove `triangle` from `napari[all]` ([#8824](https://github.com/napari/napari/pull/8824))\n- Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests  ([#8825](https://github.com/napari/napari/pull/8825))\n- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs ([#8826](https://github.com/napari/napari/pull/8826))\n- [maint] Add `bermuda` to testing dependencies ([#8827](https://github.com/napari/napari/pull/8827))\n- [pre-commit.ci] pre-commit autoupdate ([#8831](https://github.com/napari/napari/pull/8831))\n- Add more debug information on fail to import Qt ([#8834](https://github.com/napari/napari/pull/8834))\n- maint: replace `StringEnum` base class with with `StrEnum` ([#8835](https://github.com/napari/napari/pull/8835))\n- Do not import builtins from core (and forbid doing so) ([#8842](https://github.com/napari/napari/pull/8842))\n- ci(dependabot): bump the actions group with 8 updates ([#8844](https://github.com/napari/napari/pull/8844))\n- Remove sentinel leftover from `napari.utils.misc` ([#8846](https://github.com/napari/napari/pull/8846))\n- Fix checking autogenerated type stubs ([#8847](https://github.com/napari/napari/pull/8847))\n- Deprecate str_to_rgb which is unused ([#8849](https://github.com/napari/napari/pull/8849))\n- Revert Citation validator from ubuntu-slim to use ubuntu-latest ([#8851](https://github.com/napari/napari/pull/8851))\n- Deprecate make_default_color_array ([#8852](https://github.com/napari/napari/pull/8852))\n- Dependabot cooldown ([#8853](https://github.com/napari/napari/pull/8853))\n- Test against conda packages using pixi ([#8855](https://github.com/napari/napari/pull/8855))\n- Use bash script instead of docker image for checking PR labels ([#8856](https://github.com/napari/napari/pull/8856))\n- Check untyped defs in labels ([#8861](https://github.com/napari/napari/pull/8861))\n- add jasper-tms to citation ([#8862](https://github.com/napari/napari/pull/8862))\n- Rename tox test step names to include 'qt_backend' ([#8866](https://github.com/napari/napari/pull/8866))\n- Update `hypothesis`, `npe2`, `pandas`, `pillow`, `pydantic-extra-types`, `pyqt6` ([#8868](https://github.com/napari/napari/pull/8868))\n- [pre-commit.ci] pre-commit autoupdate ([#8869](https://github.com/napari/napari/pull/8869))\n- Deprecate color_dict_to_colormap with FutureWarning ([#8871](https://github.com/napari/napari/pull/8871))\n- Update `hypothesis`, `lxml`, `magicgui`, `platformdirs`, `pytest`, `rich`, `virtualenv` ([#8876](https://github.com/napari/napari/pull/8876))\n- Add session type to --info ([#8880](https://github.com/napari/napari/pull/8880))\n- Improve make_release workflow's release steps ([#8882](https://github.com/napari/napari/pull/8882))\n- [pre-commit.ci] pre-commit autoupdate ([#8884](https://github.com/napari/napari/pull/8884))\n- ci(dependabot): bump the actions group with 4 updates ([#8889](https://github.com/napari/napari/pull/8889))\n- Restore ability to push changes to napari-bot/napari repo ([#8891](https://github.com/napari/napari/pull/8891))\n- Checkout only citation.cff in milestone checker ([#8892](https://github.com/napari/napari/pull/8892))\n- Use hynek for build wheel ([#8893](https://github.com/napari/napari/pull/8893))\n- Deprecate image_reader_to_layerdata_reader ([#8895](https://github.com/napari/napari/pull/8895))\n- Finish typing bounding box and brush circle overlays ([#8902](https://github.com/napari/napari/pull/8902))\n- Update `hypothesis`, `lxml`, `pydantic`, `pydantic-extra-types`, `virtualenv`, `xarray` ([#8906](https://github.com/napari/napari/pull/8906))\n- [pre-commit.ci] pre-commit autoupdate ([#8908](https://github.com/napari/napari/pull/8908))\n- Update `certifi`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pydantic-settings` ([#8920](https://github.com/napari/napari/pull/8920))\n- [pre-commit.ci] pre-commit autoupdate ([#8923](https://github.com/napari/napari/pull/8923))\n- Scalar base data setter ([#8925](https://github.com/napari/napari/pull/8925))\n- Instead of checking if milestone is added, add the milestone on merge ([#8926](https://github.com/napari/napari/pull/8926))\n- Don't use random floats for image layer data in screenshot tests ([#8945](https://github.com/napari/napari/pull/8945))\n- [pre-commit.ci] pre-commit autoupdate ([#8951](https://github.com/napari/napari/pull/8951))\n- Fix auto milestone workflow ([#8954](https://github.com/napari/napari/pull/8954))\n- Explicitly pass the repository name in command setting milestone ([#8955](https://github.com/napari/napari/pull/8955))\n\n\n## 17 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Kabilar Gunalan](https://github.com/napari/docs/commits?author=kabilar) - @kabilar\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Newstein](https://github.com/napari/napari/commits?author=pnewstein) - @pnewstein +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n\n## 18 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Aniket](https://github.com/napari/napari/commits?author=Aniketsy) ([docs](https://github.com/napari/docs/commits?author=Aniketsy))  - @Aniketsy +\n- [Carol Willing](https://github.com/napari/napari/commits?author=willingc) - @willingc\n- [Caroline Malin-Mayor](https://github.com/napari/napari/commits?author=cmalinmayor) - @cmalinmayor +\n- [Constantin Aronssohn](https://github.com/napari/docs/commits?author=cnstt) - @cnstt\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) - @dstansby\n- [Davin Potts](https://github.com/napari/docs/commits?author=applio) - @applio\n- [Draga Doncila Pop](https://github.com/napari/docs/commits?author=DragaDoncila) - @DragaDoncila\n- [github-advanced-security[bot]](https://github.com/napari/docs/commits?author=github-advanced-security[bot]) - @github-advanced-security[bot]\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Jacopo Abramo](https://github.com/napari/napari/commits?author=jacopoabramo) - @jacopoabramo\n- [Juan Nunez-Iglesias](https://github.com/napari/docs/commits?author=jni) - @jni\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) - @brisvag\n- [Lucien Hinderling](https://github.com/napari/docs/commits?author=hinderling) - @hinderling\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh\n- [Melissa Weber Mendonça](https://github.com/napari/docs/commits?author=melissawm) - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) - @psobolewskiPhD\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Wulin Teo](https://github.com/napari/napari/commits?author=wulinteousa2-hash) - @wulinteousa2-hash +\n","mentions_count":20},{"url":"https://api.github.com/repos/napari/napari/releases/300137816","assets_url":"https://api.github.com/repos/napari/napari/releases/300137816/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/300137816/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.0","id":300137816,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84R471Y","tag_name":"v0.7.0","target_commitish":"48fcd2f4351845419303b1d3a102dcb5ce6923ab","name":"0.7.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-03-23T10:31:17Z","updated_at":"2026-03-25T00:16:17Z","published_at":"2026-03-23T10:32:56Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/379652909","id":379652909,"node_id":"RA_kwDOCJ0aI84WoQst","name":"napari-0.7.0-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44275,"digest":"sha256:1d8377c93b622f7c715b0a55863e64c75f545cf55db6e57442c55693004b1f53","download_count":2,"created_at":"2026-03-23T10:39:26Z","updated_at":"2026-03-23T10:39:26Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379652745","id":379652745,"node_id":"RA_kwDOCJ0aI84WoQqJ","name":"napari-0.7.0-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":572449128,"digest":"sha256:e56a232aa1f674137edbfd85e278ca9083e2ecdcba35100f956d56d17916e220","download_count":270,"created_at":"2026-03-23T10:39:01Z","updated_at":"2026-03-23T10:39:25Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379653760","id":379653760,"node_id":"RA_kwDOCJ0aI84WoQ6A","name":"napari-0.7.0-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37664,"digest":"sha256:e5cd94c5a37d6e0ab5331b762d3f2a60f0fb70f839ae5ca70e583f6470d71a7a","download_count":7,"created_at":"2026-03-23T10:41:18Z","updated_at":"2026-03-23T10:41:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379653602","id":379653602,"node_id":"RA_kwDOCJ0aI84WoQ3i","name":"napari-0.7.0-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":443029248,"digest":"sha256:eb8d544ba428447a79803924d4bc7d82b91f78c68aae5925ef1bbe6e4be4b501","download_count":747,"created_at":"2026-03-23T10:41:07Z","updated_at":"2026-03-23T10:41:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379655923","id":379655923,"node_id":"RA_kwDOCJ0aI84WoRbz","name":"napari-0.7.0-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37096,"digest":"sha256:bf1a5ffaad908bd975f067feb188e54181f693ba11b728a945023df882e2b4bd","download_count":3,"created_at":"2026-03-23T10:45:38Z","updated_at":"2026-03-23T10:45:38Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379655788","id":379655788,"node_id":"RA_kwDOCJ0aI84WoRZs","name":"napari-0.7.0-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":475136461,"digest":"sha256:891dd5f7fe407e3c2c592bb0d6ac53d124a6ddfb33b3eaa1180a81055b6ec1aa","download_count":158,"created_at":"2026-03-23T10:45:22Z","updated_at":"2026-03-23T10:45:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379650058","id":379650058,"node_id":"RA_kwDOCJ0aI84WoQAK","name":"napari-0.7.0-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3490107,"digest":"sha256:026da90683f1f9ebb7b9f19e6ee146ac2d9b3328b3bc691ae7da821d829150fb","download_count":4,"created_at":"2026-03-23T10:32:55Z","updated_at":"2026-03-23T10:32:55Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379653705","id":379653705,"node_id":"RA_kwDOCJ0aI84WoQ5J","name":"napari-0.7.0-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":550723184,"digest":"sha256:9ae58c9e228dc7f6c73d2d8da3f0d9d016eaca4f713111b2238af60779f774a7","download_count":2106,"created_at":"2026-03-23T10:41:12Z","updated_at":"2026-03-23T10:41:34Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379653848","id":379653848,"node_id":"RA_kwDOCJ0aI84WoQ7Y","name":"napari-0.7.0-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":34056,"digest":"sha256:1b3e8cc23e1e4aa008ff859150cdab5c627da51bb60bbb8c9784bccff6ee3554","download_count":4,"created_at":"2026-03-23T10:41:35Z","updated_at":"2026-03-23T10:41:35Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/379650056","id":379650056,"node_id":"RA_kwDOCJ0aI84WoQAI","name":"napari-0.7.0.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":3103623,"digest":"sha256:9b36ee73bb3d56f34dd4c6486cc331ac5411d5f13f8bd2bc073ce177c48899b7","download_count":7,"created_at":"2026-03-23T10:32:55Z","updated_at":"2026-03-23T10:32:55Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0/napari-0.7.0.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.0","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.0","body":"# napari 0.7.0\r\n\r\n*Fri, Mar 20, 2026*\r\n\r\nWe're happy to announce the release of napari 0.7.0!\r\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\r\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\r\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\r\nrendering), and the scientific Python stack (numpy, scipy).\r\n\r\nFor more information, examples, and documentation, please visit our website,\r\nhttps://napari.org.\r\n\r\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\r\n\r\n## Highlights\r\n\r\n### Breaking Changes\r\n\r\n#### Transition to npe2 plugin engine 🔌\r\n\r\nIn 0.6.0 we began the process of deprecating npe1 (napari-plugin-engine).\r\nIn all 0.6.x releases, npe1 plugins were automatically converted to npe2 by default,\r\nand users could turn off the `use_npe2_adaptor` setting to continue using npe1 plugins\r\nwithout auto-conversion.\r\n\r\nIn 0.7.0 this setting is being removed ([PR #8448](https://github.com/napari/napari/pull/8448)),\r\nand plugins will *only* continue to function if\r\nthey can be auto-converted to npe2. Most plugins will be unaffected, but those that rely\r\non import-time behaviour may not work as expected. If a plugin is relying on import-time\r\nbehaviour, it may be able to replicate this using the new startup scripts functionality added\r\nin 0.6.5 ([#8188](https://github.com/napari/napari/pull/8188)).\r\n\r\nIf you encounter conversion issues in a plugin you rely on, please contact the\r\nplugin authors to encourage them to migrate their plugin to the npe2 system.\r\n\r\nThis change has been a long time coming, and it's allowed us to remove thousands\r\nof lines of tangled and confusing legacy code. Now that we have, it's unleashed\r\nthe potential for massive improvements to file opening and saving in `napari`,\r\nand exciting new features for our plugin infrastructure. Stay tuned!\r\n\r\nFor more details on this change and how it affects plugins, see the [detailed\r\nguide](adapted-plugin-guide). If you are a plugin author and your plugin is not\r\nyet npe2-compatible, please see our [npe2 migration\r\nguide](npe2-migration-guide), and, if you encounter any issues, get in touch in\r\nour [Plugins Zulip chat\r\nchannel](https://napari.zulipchat.com/#narrow/channel/309872-plugins) or by\r\ncoming to one of our [community meetings](meeting-schedule).\r\n\r\n#### Negative axis labels? A real positive\r\n\r\nIf you've ever loaded data of mixed dimensionality in napari, like a TYX volume\r\nalongside a YX segmentation, you may have noticed the default axis labels didn't\r\nquite line up:\r\n\r\n| axes   | 0 | 1 | 2 |\r\n|--------|---|---|---|\r\n| volume | 0 | 1 | 2 |\r\n| segmt  |   | 0 | 1 |\r\n\r\nThat's because napari used 0-based indexing for its viewer axis labels, which breaks\r\ndown when layers have different numbers of dimensions. With\r\n[#8565](https://github.com/napari/napari/pull/8565),\r\nviewer axis labels now use negative indexing by default, combining Python's negative indexing\r\nsemantics with NumPy's array broadcasting semantics. The last axis is always `-1`,\r\nthe second-to-last is always `-2`, and so on:\r\n\r\n| axes   | 0  | 1  | 2  |\r\n|--------|----|----|----|\r\n| volume | -3 | -2 | -1 |\r\n| segmt  |    | -2 | -1 |\r\n\r\nThis means axis labels stay consistent as you add or remove layers of different\r\ndimensionality -- axis `-1` is always your last axis. This also fixes\r\na long-standing bug where axis labels could end up duplicated when mixing layers of\r\ndifferent dimensionality ([#6569](https://github.com/napari/napari/issues/6569)).\r\n\r\nYou'll notice this change in the dims slider labels, the axis overlay, and the dims\r\npopup widget. If you already label your axes with your own names (e.g. `z`, `y`, `x`),\r\nnothing's changed. For everyone else, we have consistency at last!\r\n\r\n\r\n#### What's in an angle? The truth! Fixed camera angles 🎥\r\n\r\nIf you've ever set up the camera to take that perfect publication-worthy photo of\r\nyour data (and taken the time to query the camera angles), you may have noticed they seemed... off.\r\nThat's because they were! Very... off. This was due to a long-standing bug in how we calculated our\r\ncamera angles, fueled in part by some arcane vispy axis-swapping tomfoolery, and in part by napari's\r\nstarting position of `viewer.camera.angles = (0, 0, 90)`.\r\n\r\nGood news! With [#8281](https://github.com/napari/napari/pull/8281), angles make sense again. The default camera angles are `(0, 0, 0)`, and they\r\nmove intuitively -- so `viewer.camera.angles = (10, 0, 0)` actually represents a 10 degree\r\nrotation around the [-3rd](#negative-axis-labels-a-real-positive) dimension. What a time to be alive!\r\n\r\nOld versions of napari:\r\n\r\n![Image showing an old version of a napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console.](https://github.com/user-attachments/assets/9ae2040c-36f7-4c4c-8ef8-140202d7ccda)\r\n\r\nNew and sane:\r\n\r\n![Image showing the 0.7.0 napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console. The layer is rotated 10 degrees in its first dimension](https://github.com/user-attachments/assets/6b972b46-5c3c-439a-8b0a-fe8a293224e5)\r\n\r\nAll rotations are now right-handed (counterclockwise when the axis points towards the viewer),\r\nwith automatic sign-flipping for flipped camera views.\r\n\r\nNow for the bad news... After many (and we do [mean](https://github.com/napari/napari/pull/8537)\r\n[**many**](https://github.com/napari/napari/pull/8557)) attempts, we realized we couldn't\r\nprovide legacy conversion functions to get you to and from the original camera angles. Therefore,\r\nthis is a **breaking change**.\r\n\r\nIf you had scripts or notebooks setting up angles for screenshots, or if you've got workshop\r\nmaterials or tutorials with preset angles, they'll need to be updated. Any existing code\r\nusing `viewer.camera.angles = (z, y, x)` will now produce a different view than before.\r\n\r\n#### Limiting `self.events` callbacks\r\n\r\nIn [#8672](https://github.com/napari/napari/pull/8672), we changed how we emit events from\r\nthe parent `self.events` group.\r\n\r\nPreviously, connecting a callback to an `EventedModel`'s top-level event group\r\n(e.g. `model.events.connect(callback)`) would cause that callback to fire multiple times\r\nwhen a single assignment triggered multiple dependent fields. For example:\r\n\r\n```python\r\nclass MyModel(EventedModel):\r\n    a: int\r\n\r\n    @property\r\n    def b(self):\r\n        return self.a * 2\r\n\r\n    @b.setter\r\n    def b(self, value):\r\n        self.a = value // 2\r\n\r\nmodel = MyModel(a=1)\r\nmodel.events.connect(my_callback)\r\n\r\nmodel.a = 4  # previously called my_callback twice (once for 'a', once for 'b')\r\n             # now calls my_callback once\r\n```\r\n\r\nThe callback connected to `model.events` will now be called exactly once, with the event `type`\r\nset to the first changed field and `value` set to its new value. Callbacks connected to specific\r\nfield events (e.g. `model.events.a.connect(...)`) are unaffected and continue to work as before.\r\n\r\nIf you connect to `model.events` directly and relied on receiving one call per dependent field\r\nchange, you will need to connect to the individual field events instead.\r\n\r\n### New features & widgets\r\n\r\n#### What's my metadata? Where's my metadata? `napari-metadata` to the rescue\r\n\r\nWith a lot of work from our community contributor, Carlos Mario Rodriguez Reza\r\n(https://github.com/carlosmariorr), and\r\nour venerable community manager Tim Monko (https://github.com/timmonko),\r\n`napari` now has a metadata viewing and editing plugin\r\nincluded in our `napari[all]` installation and our bundle ([PR #8576](https://github.com/napari/napari/pull/8576)).\r\n\r\n![Screenshot of napari displaying an image of neurons, with the napari-metadata Layer Metadata widget across the bottom of the viewer.](https://raw.githubusercontent.com/napari/napari-metadata/main/docs/images/horizontal-widget.png)\r\n\r\nOpen the `Layer metadata` widget from the `Plugins` menu and you can view File information, and view and edit Axes metadata such as\r\naxis labels, translation and scale! You can also use the widget to copy specified metadata across to other layers.\r\n\r\nCheck out the [README](https://github.com/napari/napari-metadata) for some usage documentation, and feel\r\nfree to open an issue to request new features -- we're actively improving this plugin so, more to come!\r\n\r\n#### (Layer) Features galore\r\n\r\nPrior to 0.7.0, our Features table widget only supported showing individual selected layer features.\r\n\r\nWith [#8189](https://github.com/napari/napari/pull/8189), courtesy of Marcelo Zoccoler\r\n(https://github.com/zoccoler), the widget will display\r\nfeatures of all selected layers! The layer's name is displayed in an additional column, so you\r\nalways know what you're looking at, and you can choose to display only the shared feature columns\r\nacross all layers. Pretty slick!\r\n\r\n![GIF displaying the usage of the features table with multiple selected layers.](https://github.com/user-attachments/assets/e06fd403-ed03-4edd-9192-a4e287d25ff7)\r\n\r\n#### Smarter new layer buttons - inheriting from selected layers\r\n\r\nPrior to 0.7.0, creating a new layer Points, Shapes or Labels layer would give you a layer\r\nwith extent and dimensionality equal to the union of all currently open layers, and with\r\nnone of the other spatial information (scale, units, etc.) inherited.\r\n\r\nNow, with [#8357](https://github.com/napari/napari/pull/8357) and [#8702](https://github.com/napari/napari/pull/8702)\r\nyou can create new Shapes, Points or Labels layer that inherits from a selected layer\r\n(or a combination of selected layers).\r\n\r\n##### Shapes & Points\r\n\r\nIf you have one layer selected, your new `Shapes` or `Points` layer will copy\r\nall spatial information from its ancestor, ready for annotating!\r\nIf you have multiple layers selected, only scale is copied.\r\n\r\nIf you wish to recover the original behavior, select all existing layers before creating your new layer.\r\nDeselecting all layers gives you a layer with only the number of dimensions inherited,\r\nand no other properties.\r\n\r\n##### Labels\r\n\r\n`Labels` layers inherit all spatial information when a single `Image` or `Labels` layer is selected.\r\nWhen multiple `Image` or `Labels` layers are selected, or the selection includes any combination of\r\nother layer types, the new `Labels` layer will span their extent -- take note, this layer could be\r\nhuge!\r\n\r\nThe `Labels` button is disabled when layers are present in the viewer and none are selected.\r\n(You can still create a (512 x 512) `Labels` layer when there are no layers present).\r\n\r\n##### Visual cues\r\n\r\n[#8768](https://github.com/napari/napari/pull/8768) ensures this change is not invisible!\r\nWhen your selection will result in full inheritance of spatial information for the new layer,\r\nthe new layer buttons will be highlighted.\r\nThe highlight color will become dimmer when your selection will result in the new layer only\r\ninheriting the extent of your existing selection. If you're lost\r\nin the inheritance madness, you can also hover over the buttons to get details about the behavior.\r\n\r\n![GIF displaying the highlights on the Shapes, Points and Labels new layer buttons when one or more layers are selected in the layerlist](https://github.com/user-attachments/assets/17361e45-dbca-4770-be11-d74c882eedb5)\r\n\r\nPS -- You can now also create these new layers from the `File -> New Layer` menu!\r\n\r\n#### Better text overalys 🔡\r\n\r\nWith [#8236](https://github.com/napari/napari/pull/8236), we've not only refactored text overlays\r\nso they're easier to implement, but we've also introduced two new long-requested overlays:\r\nthe layer name overlay, and an overlay for the current slice. Together, they make generating\r\npublication-ready figures much easier!\r\n\r\n![Image showing the napari viewer with two layers in grid mode. Each layer has its name displayed in the top left, and the current slice displayed in the bottom right.](https://github.com/user-attachments/assets/3c96b38d-44c1-432b-b294-aa9c0934a553)\r\n\r\nTry it yourself:\r\n\r\n```python\r\nimport napari\r\nv = napari.Viewer()\r\nv.grid.enabled = True\r\nll = v.open_sample('napari', 'cells3d')\r\nfor l in ll:\r\n    l.name_overlay.visible = True\r\nv.scale_bar.visible = True\r\nv.scale_bar.gridded = True\r\nv._overlays['current_slice'].visible = True\r\nv._overlays['current_slice'].gridded = True\r\nv.dims.axis_labels = ['z', 'y', 'x']\r\n```\r\n\r\n**Note**: the `v._overlays` attribute is still private as we're working out the best API.\r\n\r\n### Rendering & display\r\n\r\n#### More pixels to play with - texture tiling\r\n\r\nEver loaded a large 2D image in napari just to zoom in and feel like you're not\r\nreally getting a lot of bang for your pixel bucks? That's because we were\r\ndownsampling images that were too large to send the whole thing to the GPU.\r\n\r\nCourtesy of Guillaume Witz (https://github.com/guiwitz), and his PR for\r\ntexture tiling ([PR #8395](https://github.com/napari/napari/pull/8395)) 2D\r\nimages that exceed OpenGL's maximum texture size will be split into multiple\r\ntiles, each small enough to fit on the GPU.\r\n\r\n![Image with a screenshot of napari 0.6.6 on the left and napari 0.7.0 on the right displaying a DeCAM image of the Milky Way. The image on the left is pixelated, while the image on the right is displayed at full resolution.](https://github.com/user-attachments/assets/d0a115a8-49d5-432c-b561-f29fe9ac8116)\r\n\r\n#### Rendering layers in physical space - units matter!\r\n\r\nIn 0.6.6 and below, units were stored in metadata, but not used for rendering.\r\nAdding two layers that represented the same physical space, but had different\r\nunits, e.g. a layer with `scale=500, units='nm'` and one with `scale=0.5, units='μm'`\r\nwouldn't overlap correctly, even though they should.\r\n\r\nThanks to [#7889](https://github.com/napari/napari/pull/8395), layers with\r\ncompatible units (i.e. those that share the same physical dimension per axis,\r\nlike all spatial), will make use of `units` and `scale` to overlap correctly,\r\nusing the smallest unit as the rendering space.\r\n\r\nUnits can also be set globally on the layer list using `viewer.layers.units = ('nm', 'nm')`,\r\nforcing layers to be rendered in this space. If a new layer is added with more dimensions\r\nthan the current layers, this global override is dropped with a warning.\r\n\r\n#### Points - any size you like 🟣\r\n\r\nOn macOS, the points layer has never been able to reach its full potential, as OpenGL\r\ndrivers limit the size of an individual marker to a certain number of screen pixels.\r\n\r\nWith [#8552](https://github.com/napari/napari/pull/8552) and the release of `vispy v0.16`,\r\nthis long-standing issue has finally been resolved. Across all operating systems, you can\r\nmake your points as big as you want!\r\n\r\nThis change has also propagated to the zoom behaviour on macOS -- points now zoom\r\nproportionally to the data, rather than staying the same size in screen pixels.\r\n\r\nHere's the behaviour pre 0.7.0:\r\n\r\n```{raw} html\r\n<figure>\r\n  <video width=\"100%\" controls autoplay loop muted playsinline> \r\n    <source src=\"../_static/images/points_zoom_066.webm\" type=\"video/webm\" /> \r\n    <source src=\"../_static/images/points_zoom_066.mp4\" type=\"video/mp4\" /> \r\n    <img src=\"../_static/images/points_zoom_066.png\" \r\n      title=\"Your browser does not support the video tag\" \r\n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points stay the same size in screen pixels.\" \r\n    > \r\n  </video> \r\n</figure> \r\n``` \r\n\r\nAnd now:\r\n\r\n```{raw} html\r\n<figure> \r\n  <video width=\"100%\" controls autoplay loop muted playsinline> \r\n    <source src=\"../_static/images/points_zoom_070.webm\" type=\"video/webm\" /> \r\n    <source src=\"../_static/images/points_zoom_070.mp4\" type=\"video/mp4\" /> \r\n    <img src=\"../_static/images/points_zoom_070.png\" \r\n      title=\"Your browser does not support the video tag\" \r\n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points scale proportionally to the data.\" \r\n    > \r\n  </video> \r\n</figure> \r\n```\r\n\r\n### Performance\r\n\r\n#### Grid mode -- bigger, better, faster 📈\r\n\r\nIf you've been playing with our new grid mode since 0.6.5, you\r\nmay have stumbled into performance issues when progressively adding\r\nnew layers to the viewer. Stumble no longer! Our grid mode is now wicked fast and buttery smooth 🧈.\r\n\r\nWe've also fixed some issues with mouse interactions and deleting\r\nlayers, so you can tile to your heart's content. Try it out:\r\n\r\n```py\r\nimport napari\r\n\r\nviewer = napari.Viewer()\r\n\r\n# enable grid with stride 2 to get layers split two-by-two\r\nviewer.grid.enabled = True\r\nviewer.grid.stride = 2\r\n\r\n# set the scale bar to gridded mode so it appears in each grid box\r\nviewer.scale_bar.visible = True\r\nviewer.scale_bar.gridded = True\r\n\r\nlayers = viewer.open_sample('napari', 'lily')\r\n\r\n# enable color bars\r\nfor layer in layers:\r\n    layer.colorbar.visible = True\r\n```\r\n\r\n#### Add & delete layers without delay\r\n\r\n[#8479](https://github.com/napari/napari/pull/8479) and [#8443](https://github.com/napari/napari/pull/8443)\r\nmade a number of improvements to\r\nour layer and overlay clean-up, addressing a number of issues with large numbers of layers\r\nin the viewer - adding them, deleting them, and even closing the viewer is now snappy\r\nand smooth!\r\n\r\n#### Shapes layers -- select, zoom, delete, repeat\r\n\r\nIf you've ever tried working with thousands of shapes in napari, you'll know\r\nit could get... painful. Selecting 10,000 shapes with a box took over 50 seconds,\r\ndeleting 5,000 shapes took over a minute, and zooming with shapes selected\r\nwould lock up the viewer entirely. Not anymore!\r\n\r\n0.7.0 brings a flurry of performance improvements:\r\n\r\n- Box selection now uses bounding boxes and vectorized intersection tests,\r\n  delivering a more than 100x speedup ([#8378](https://github.com/napari/napari/pull/8378)).\r\n  Selecting 10,000 shapes goes from >50s to ~0.3s.\r\n- Batch deletion replaces one-by-one removal for another 100x speedup\r\n  ([#8375](https://github.com/napari/napari/pull/8375))! Deleting 50,000 shapes\r\n  now takes under half a second.\r\n- Outline computation is batched and cached, so zooming and panning with\r\n  selected shapes no longer blocks\r\n  ([#8403](https://github.com/napari/napari/pull/8403),\r\n  [#8536](https://github.com/napari/napari/pull/8536)).\r\n- Highlight updates are throttled for large layers, enabling smooth zoom\r\n  even with 200,000+ shapes ([#8404](https://github.com/napari/napari/pull/8404)).\r\n- Mode switching no longer triggers unnecessary redraws, giving another\r\n  ~3x speedup when many shapes are selected\r\n  ([#8551](https://github.com/napari/napari/pull/8551)).\r\n\r\nBeware: there's still more to do, because drawing and drag-moving large selections\r\nremain slow!\r\n\r\n#### Multiscale -- less to update, more to celebrate\r\n\r\nPR [#8678](https://github.com/napari/napari/pull/8678) introduced a small change\r\nwith a big effect! Now, zooming in (and panning while zoomed in), will only trigger\r\na data refresh if the multiscale level has changed **or** if the new view falls outside\r\nof already loaded data.\r\n\r\n#### Delete the launch codes -- no more macOS hacks on launch\r\n\r\nIn 0.6.6 and below, we had some macOS specific launch code that skirted around some\r\nissues (which are now no longer relevant), and hackily \"relaunched\" napari to make\r\nsure the application name was correct.\r\n\r\nThis code added up to a whole second to our launch time, as well as being potentially\r\nproblematic for some users. PR [#8705](https://github.com/napari/napari/pull/8705)\r\nremoved this code, making our start-up a little less hacky and a little more snappy.\r\nThe downside is that when launching napari on macOS, the app name may be listed as\r\nPython, instead of napari. We think the trade-off is worth it.\r\n\r\n\r\n### Infrastructure & dependencies\r\n\r\nA couple of notes on big changes in our dependencies:\r\n\r\n- With #8509 we improved our support for `pydantic v2`, allowing us to enable support for Python 3.14!\r\nThis brings us one step closer to fully adopting `psygnal` as our event library.\r\n- In [#8450](https://github.com/napari/napari/pull/8450) we dropped support for PySide2. If you\r\nwere using napari with PySide for your Qt bindings, you'll need to upgrade to PySide6. Good news\r\nis that PySide6 is looking pretty stable, while PySide2 had some compatibility issues with numpy2,\r\nand had to be built from source for Python 3.11+.\r\n- In ([#8665](https://github.com/napari/napari/pull/8665)) we updated the default qt\r\nbinding to PyQt6. PyQt6 will now be installed with `napari[all]` installations. Windows users\r\nshould see improvements to their display with better support for fractional scaling!\r\n- In [#8338](https://github.com/napari/napari/pull/8338) we replaced `numpydoc` with `docstring_parser`\r\nfor parsing our docstrings. This will be a pretty invisible change from a user's perspective, but\r\nit saves more than 50MB of disk space for a napari install!\r\n\r\n## New Features\r\n\r\n- Use information about units when calculate scale of layers when render ([#7889](https://github.com/napari/napari/pull/7889))\r\n- Welcome widget as an overlay ([#8117](https://github.com/napari/napari/pull/8117))\r\n- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189))\r\n- Better text overlay (and subclasses) ([#8236](https://github.com/napari/napari/pull/8236))\r\n- Allow create Shapes and Points per selected Layer ([#8357](https://github.com/napari/napari/pull/8357))\r\n- Use new logos! ([#8457](https://github.com/napari/napari/pull/8457))\r\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\r\n\r\n## Improvements\r\n\r\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\r\n- Add cell tracking example ([#8051](https://github.com/napari/napari/pull/8051))\r\n- Add a seed argument to built-in samples with random seeds ([#8317](https://github.com/napari/napari/pull/8317))\r\n- Enh: clarify Points selection keybinding behavior: select_in_slice not append by default, add new select_append_in_slice ([#8339](https://github.com/napari/napari/pull/8339))\r\n- Enh: Improve zarr reading by builtins ([#8355](https://github.com/napari/napari/pull/8355))\r\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\r\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\r\n- Reordering default colormap to split channels  ([#8383](https://github.com/napari/napari/pull/8383))\r\n- change default blending mode of images on split RGB ([#8385](https://github.com/napari/napari/pull/8385))\r\n- Texture tiling ([#8395](https://github.com/napari/napari/pull/8395))\r\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\r\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\r\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\r\n- Set viewer dimension based on number of axis labels ([#8436](https://github.com/napari/napari/pull/8436))\r\n- Enh: Add label value to the labels tooltip ([#8495](https://github.com/napari/napari/pull/8495))\r\n- Use 10x10 pixels rect around mouse position to invalidate tooltip ([#8500](https://github.com/napari/napari/pull/8500))\r\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\r\n- Enable antialiasing on all Lines ([#8515](https://github.com/napari/napari/pull/8515))\r\n- Avoid materializing property views when updating points highlight ([#8517](https://github.com/napari/napari/pull/8517))\r\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\r\n- Don't warn user when a Zarr array with channel axis is passed ([#8559](https://github.com/napari/napari/pull/8559))\r\n- Use negative indexing for viewer dims axis labels ([#8565](https://github.com/napari/napari/pull/8565))\r\n- Add colorbar & bounding box overlays to Layers menu ([#8611](https://github.com/napari/napari/pull/8611))\r\n- Add visual for new points/shapes button on selected layers ([#8649](https://github.com/napari/napari/pull/8649))\r\n- Limit `self.events` callbacks trigger to only once per assignment ([#8672](https://github.com/napari/napari/pull/8672))\r\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\r\n- Warn users when features data looks categorical ([#8685](https://github.com/napari/napari/pull/8685))\r\n- Fix type annotation in viewer keybindings, use QtViewer for console ([#8694](https://github.com/napari/napari/pull/8694))\r\n- Do not inherit scale for points and shapes if no layer is selected ([#8701](https://github.com/napari/napari/pull/8701))\r\n- Inherit spatial information for new `Labels` layers when only one other `Labels` or `Image` layer is selected ([#8702](https://github.com/napari/napari/pull/8702))\r\n- [UI, UX] Make dock widget title bar icons bigger and text more legible ([#8714](https://github.com/napari/napari/pull/8714))\r\n- Perf, enh: defer dask.array loading by moving import into functions ([#8720](https://github.com/napari/napari/pull/8720))\r\n- Change look of new layer buttons to mark that there are 3 modes ([#8723](https://github.com/napari/napari/pull/8723))\r\n- If path arg is passed to CLI napari, don't show welcome overlay ([#8725](https://github.com/napari/napari/pull/8725))\r\n- UI: Add keybinding for Image layer reset_contrast_limits ([#8730](https://github.com/napari/napari/pull/8730))\r\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\r\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\r\n- Use capitalized name of source layer type when adding layer ([#8740](https://github.com/napari/napari/pull/8740))\r\n- Add scale example for anisotropic 3D data ([#8742](https://github.com/napari/napari/pull/8742))\r\n- Raise FileNotFoundError early when opening nonexistent paths ([#8747](https://github.com/napari/napari/pull/8747))\r\n- Ensure that layers are unlinked after deletion from layerlist  ([#8749](https://github.com/napari/napari/pull/8749))\r\n- Use custom Font manager to use Qt discovery mechanism ([#8751](https://github.com/napari/napari/pull/8751))\r\n- Restyle new_layer button creation state visuals ([#8768](https://github.com/napari/napari/pull/8768))\r\n- Disable opacity slider for multiplicative blending ([#8776](https://github.com/napari/napari/pull/8776))\r\n\r\n## Performance\r\n\r\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\r\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\r\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\r\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\r\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\r\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\r\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\r\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\r\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\r\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\r\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\r\n- Delay scipy imports until needed ([#8561](https://github.com/napari/napari/pull/8561))\r\n- Low hanging Labels painting performance improvement ([#8592](https://github.com/napari/napari/pull/8592))\r\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\r\n- [Perf] Remove napari splash screen ([#8686](https://github.com/napari/napari/pull/8686))\r\n- [Maint] Remove all macOS specific launch code as it's out-dated or problematic (re-running with symlink) ([#8705](https://github.com/napari/napari/pull/8705))\r\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\r\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\r\n\r\n## Bug Fixes\r\n\r\n- Fix camera angles‽ ([#8281](https://github.com/napari/napari/pull/8281))\r\n- bugfix & refactor: Use events for shape multiselection ([#8332](https://github.com/napari/napari/pull/8332))\r\n- Fix conversion of vector images to coordinates of vectors ([#8366](https://github.com/napari/napari/pull/8366))\r\n- initialize label selection spinbox to a correct value ([#8382](https://github.com/napari/napari/pull/8382))\r\n- Bugfix: fix erratic Shape sorting ([#8408](https://github.com/napari/napari/pull/8408))\r\n- bugfix: Ensure that edge_width is accounted for when using polygon lasso ([#8414](https://github.com/napari/napari/pull/8414))\r\n- Fix Shapes thumbnail z ordering ([#8417](https://github.com/napari/napari/pull/8417))\r\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\r\n- Bugfix: update magicgui layer combobox if a layer is renamed using LayerList.renamed event ([#8429](https://github.com/napari/napari/pull/8429))\r\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\r\n- Bugfix: ensure triangle colors are updated properly when using polygon lasso ([#8469](https://github.com/napari/napari/pull/8469))\r\n- Speed up the deletion of layers by deduplicating the function calls  ([#8479](https://github.com/napari/napari/pull/8479))\r\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\r\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\r\n- Bugfix: recurse through sub-fields when making connections in EventedSettings Config ([#8520](https://github.com/napari/napari/pull/8520))\r\n- Fix dim order of rendering of 2D rgb data in 3D mode ([#8522](https://github.com/napari/napari/pull/8522))\r\n- Fix numpy warning for pure python edge triangulation ([#8523](https://github.com/napari/napari/pull/8523))\r\n- Do not use keyword argument when creating tooltip ([#8528](https://github.com/napari/napari/pull/8528))\r\n- Fix update of shape that lead to wrong rendering ([#8543](https://github.com/napari/napari/pull/8543))\r\n- Close proper window on Ctrl+W ([#8548](https://github.com/napari/napari/pull/8548))\r\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\r\n- Enable instanced markers if available. ([#8552](https://github.com/napari/napari/pull/8552))\r\n- Do not expose legacy angle ([#8557](https://github.com/napari/napari/pull/8557))\r\n- Fix test on PySide6 by change mocking of qt methods ([#8560](https://github.com/napari/napari/pull/8560))\r\n- Account for tile2data in the Labels polygon overlay ([#8563](https://github.com/napari/napari/pull/8563))\r\n- ensure overlays are reused properly when gridded mode is enabled ([#8569](https://github.com/napari/napari/pull/8569))\r\n- Stop welcome screen time on hiding of QtWiewer ([#8585](https://github.com/napari/napari/pull/8585))\r\n- Fix Labels layer controls contiguous checkbox to initialize to the layer state ([#8594](https://github.com/napari/napari/pull/8594))\r\n- Proper cleanup and reuse of existing overlays ([#8610](https://github.com/napari/napari/pull/8610))\r\n- [UI] Update the viewer button tooltips to use the new axis labels (-3, -2, -1) ([#8614](https://github.com/napari/napari/pull/8614))\r\n- Fix scale bar padding ([#8616](https://github.com/napari/napari/pull/8616))\r\n- Fix empty thumbnail ([#8620](https://github.com/napari/napari/pull/8620))\r\n- Reverse overlay tiling order ([#8623](https://github.com/napari/napari/pull/8623))\r\n- Fix welcome screen timer ([#8627](https://github.com/napari/napari/pull/8627))\r\n- Reinitialize welcome screen shortcuts in a less ugly way ([#8634](https://github.com/napari/napari/pull/8634))\r\n- Fix empty points tiny point ([#8639](https://github.com/napari/napari/pull/8639))\r\n- Fix labels of angle order of camera widget ([#8644](https://github.com/napari/napari/pull/8644))\r\n- Add a opaque background Rectangle to Welcome overlay ([#8645](https://github.com/napari/napari/pull/8645))\r\n- Do not start welcome widget timer until QtViewer is visible ([#8652](https://github.com/napari/napari/pull/8652))\r\n- Allow selection in feature table widget with empty features ([#8653](https://github.com/napari/napari/pull/8653))\r\n- Fix event triggering start of welcome screen ([#8660](https://github.com/napari/napari/pull/8660))\r\n- Fix `_disconnect_child_emitters` for `PsygnalModel` dict elements ([#8674](https://github.com/napari/napari/pull/8674))\r\n- Increase minimum version of pyopengl to allow start napari ([#8679](https://github.com/napari/napari/pull/8679))\r\n- Fix colorbar for int/bool dtypes ([#8684](https://github.com/napari/napari/pull/8684))\r\n- Correctly hide welcome screen when layers are present ([#8688](https://github.com/napari/napari/pull/8688))\r\n- Ensure that errors are propagated during async loading ([#8691](https://github.com/napari/napari/pull/8691))\r\n- Fix assign tuple of None to `layer.units` ([#8700](https://github.com/napari/napari/pull/8700))\r\n- Fix error raised when `out_of_slice_display = True` and update highlight ([#8717](https://github.com/napari/napari/pull/8717))\r\n- fix: fix `napari.imshow` return type hint ([#8726](https://github.com/napari/napari/pull/8726))\r\n- Fix harvesting plugins from CLI ([#8728](https://github.com/napari/napari/pull/8728))\r\n- Fix `--plugin` startup args ([#8729](https://github.com/napari/napari/pull/8729))\r\n- Update box and position of text overlay on font size change ([#8759](https://github.com/napari/napari/pull/8759))\r\n- Fix welcome spacing ([#8760](https://github.com/napari/napari/pull/8760))\r\n- Fix: Fire world unit updates after removing layer ([#8772](https://github.com/napari/napari/pull/8772))\r\n- Do not emit warning about units if there is no layer in viewer ([#8779](https://github.com/napari/napari/pull/8779))\r\n- Fix colorbar box offset ([#8780](https://github.com/napari/napari/pull/8780))\r\n- Fix: Qt6 font error on Windows when adding layers or widgets ([#8782](https://github.com/napari/napari/pull/8782))\r\n- Fix: ValidationError in Drag to Zoom with data ndim>2 ([#8784](https://github.com/napari/napari/pull/8784))\r\n- Ensure that visible icon when dialog ask to select plugin to open file ([#8788](https://github.com/napari/napari/pull/8788))\r\n\r\n## Build Tools\r\n\r\n- Bump urllib3 from 2.6.2 to 2.6.3 in /resources ([#8544](https://github.com/napari/napari/pull/8544))\r\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\r\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\r\n\r\n## Documentation\r\n\r\n- Add colorbar and overlay tiling example ([#8433](https://github.com/napari/napari/pull/8433))\r\n- Create 3D_vectors_through_time.py ([#8461](https://github.com/napari/napari/pull/8461))\r\n- Fix and improve `dock_widgets` docstrings ([#8494](https://github.com/napari/napari/pull/8494))\r\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\r\n- Adding a new example of a multiplexed immunofluorescent image of a murine heart ([#8680](https://github.com/napari/napari/pull/8680))\r\n- Add sphinxext-rediraffe to docs requirements ([#8690](https://github.com/napari/napari/pull/8690))\r\n- Update examples gallery for 0.7.0 angles ([#8709](https://github.com/napari/napari/pull/8709))\r\n- Add 3D points to add_points_3d example ([#8746](https://github.com/napari/napari/pull/8746))\r\n- Update contributing info and include AI policy and guidelines ([#8754](https://github.com/napari/napari/pull/8754))\r\n- Fix `image_depth.py` example by setting `blending` to `translucent` ([#8764](https://github.com/napari/napari/pull/8764))\r\n- Update units rendering example for docs gallery ([#8767](https://github.com/napari/napari/pull/8767))\r\n- Remove deprecated `view_*` methods from docs materials ([docs#864](https://github.com/napari/docs/pull/864))\r\n- Proposed roadmap updates for Q3 ([docs#873](https://github.com/napari/docs/pull/873))\r\n- Enhance documentation build process with pixi integration and Windows… ([docs#876](https://github.com/napari/docs/pull/876))\r\n- Pixi cross platform support ([docs#879](https://github.com/napari/docs/pull/879))\r\n- Refactor contributor docs: prioritize pixi for local builds ([docs#880](https://github.com/napari/docs/pull/880))\r\n- Modernize type annotation to use builtins ([docs#883](https://github.com/napari/docs/pull/883))\r\n- Update dark mode colors ([docs#884](https://github.com/napari/docs/pull/884))\r\n- Remove outdated mentions about PySide2 in documentation ([docs#889](https://github.com/napari/docs/pull/889))\r\n- Explain accessing dock widget wrappers ([docs#892](https://github.com/napari/docs/pull/892))\r\n- Add v0.7.0 release notes ([docs#893](https://github.com/napari/docs/pull/893))\r\n- Add npe1 deprecation info to release notes ([docs#894](https://github.com/napari/docs/pull/894))\r\n- Overwrite pooch downloader to fix Zenodo access problems ([docs#895](https://github.com/napari/docs/pull/895))\r\n- Update docs ahead of 0.7.0 alpha ([docs#897](https://github.com/napari/docs/pull/897))\r\n- Update website to use new logos ([docs#901](https://github.com/napari/docs/pull/901))\r\n- Migrate and update hub customization from wiki to docs ([docs#906](https://github.com/napari/docs/pull/906))\r\n- Improve open image section ([docs#907](https://github.com/napari/docs/pull/907))\r\n- Remove mention of outdated plugin from quick start ([docs#908](https://github.com/napari/docs/pull/908))\r\n- Update governance documentation ([docs#911](https://github.com/napari/docs/pull/911))\r\n- increase stack size to solve import recursion problem ([docs#912](https://github.com/napari/docs/pull/912))\r\n- Update display text copy in shapes.md ([docs#914](https://github.com/napari/docs/pull/914))\r\n- Update release notes for 0.7.0a1 ([docs#915](https://github.com/napari/docs/pull/915))\r\n- Simplify titles in App installation instructions ([docs#918](https://github.com/napari/docs/pull/918))\r\n- Remove mention of double click in macOS app instructions ([docs#920](https://github.com/napari/docs/pull/920))\r\n- Update release notes for 0.7.0a2 ([docs#922](https://github.com/napari/docs/pull/922))\r\n- Move code for setting recursion limit ([docs#927](https://github.com/napari/docs/pull/927))\r\n- Update scripts to pydantic v2 ([docs#928](https://github.com/napari/docs/pull/928))\r\n- Remove npe1-related docs ([docs#929](https://github.com/napari/docs/pull/929))\r\n- Add intersphinx mapping for pydantic ([docs#930](https://github.com/napari/docs/pull/930))\r\n- Add policy on LLM contributions based on Zulip's ([docs#932](https://github.com/napari/docs/pull/932))\r\n- Expand on 0.7.0 highlights ([docs#933](https://github.com/napari/docs/pull/933))\r\n- Fix camera angles in handedness guide ([docs#940](https://github.com/napari/docs/pull/940))\r\n- Add guide explaining default axis names ([docs#942](https://github.com/napari/docs/pull/942))\r\n- Add info about new points/shapes layer button behavior ([docs#943](https://github.com/napari/docs/pull/943))\r\n- Add final? 0.7.0 highlights and group by topic ([docs#944](https://github.com/napari/docs/pull/944))\r\n- Add redirects to pages moved in Usage section ([docs#946](https://github.com/napari/docs/pull/946))\r\n- Fix typo in optional-dependencies ([docs#947](https://github.com/napari/docs/pull/947))\r\n- Update references to PyQt5 as default backend to PyQt6 ([docs#950](https://github.com/napari/docs/pull/950))\r\n- Update 0.7.0 highlights for rc0 ([docs#951](https://github.com/napari/docs/pull/951))\r\n- Restructure homepage and add rotating featured examples ([docs#953](https://github.com/napari/docs/pull/953))\r\n- Wayland Debug information ([docs#956](https://github.com/napari/docs/pull/956))\r\n- Update release notes for 0.7.0rc1 ([docs#957](https://github.com/napari/docs/pull/957))\r\n- Refresh installation guide, with focus on bundled app instructions ([docs#958](https://github.com/napari/docs/pull/958))\r\n- Update notes for 0.7.0rc2 ([docs#959](https://github.com/napari/docs/pull/959))\r\n- Update release notes for 0.7.0rc3 ([docs#961](https://github.com/napari/docs/pull/961))\r\n- Cleanup viewers in `open images` guide to fix squashed viewers ([docs#963](https://github.com/napari/docs/pull/963))\r\n\r\n## Other Pull Requests\r\n\r\n- TYP: overload for `labeled_particles` incorrectly notes `Literal[True]=...` as default for `return_density` ([#8114](https://github.com/napari/napari/pull/8114))\r\n- Decompose Layer code by move slicing to specialized class ([#8254](https://github.com/napari/napari/pull/8254))\r\n- Add information about pyside 6 in error information ([#8313](https://github.com/napari/napari/pull/8313))\r\n- Remove deprecated `napari.view_*` methods ([#8337](https://github.com/napari/napari/pull/8337))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8354](https://github.com/napari/napari/pull/8354))\r\n- Remove string translation from PR checklist ([#8362](https://github.com/napari/napari/pull/8362))\r\n- Use coverage upload from shared workflows ([#8367](https://github.com/napari/napari/pull/8367))\r\n- Specify napari revision in build and deploy docs workflow ([#8368](https://github.com/napari/napari/pull/8368))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8369](https://github.com/napari/napari/pull/8369))\r\n- Update citation file for 0.7.0 ([#8384](https://github.com/napari/napari/pull/8384))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8386](https://github.com/napari/napari/pull/8386))\r\n- Add check if PR author is in citation.cff ([#8388](https://github.com/napari/napari/pull/8388))\r\n- skip check if author in citation.cff if bot created  PR ([#8392](https://github.com/napari/napari/pull/8392))\r\n- Explicitly turn on full checkout for CircleCI ([#8396](https://github.com/napari/napari/pull/8396))\r\n- Fix cff check for bots ([#8420](https://github.com/napari/napari/pull/8420))\r\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `imageio`, `ipython`, `matplotlib`, `numpy`, `pandas`, `pillow`, `pint`, `psutil`, `psygnal`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `pytest-rerunfailures`, `pyyaml`, `rich`, `scipy`, `tensorstore`, `tifffile`, `toolz`, `virtualenv`, `wrapt`, `xarray` ([#8441](https://github.com/napari/napari/pull/8441))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8442](https://github.com/napari/napari/pull/8442))\r\n- Stop updating python 3.10 docs constraints ([#8444](https://github.com/napari/napari/pull/8444))\r\n- Block problematic numba in docs constraints ([#8454](https://github.com/napari/napari/pull/8454))\r\n- Change link to getting started in Help menu ([#8455](https://github.com/napari/napari/pull/8455))\r\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `tensorstore`, `tifffile`, `xarray` ([#8456](https://github.com/napari/napari/pull/8456))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8458](https://github.com/napari/napari/pull/8458))\r\n- ci(dependabot): bump the actions group across 1 directory with 7 updates ([#8460](https://github.com/napari/napari/pull/8460))\r\n- Finish typing napari.layers.image ([#8462](https://github.com/napari/napari/pull/8462))\r\n- Bugfix: For FeatureTable `edit` test, check the QAbstractItemView.State and not isPersistentEditorOpen ([#8463](https://github.com/napari/napari/pull/8463))\r\n- Move Ashley Anderson citation to core team section ([#8467](https://github.com/napari/napari/pull/8467))\r\n- Change `exclude` to `extend-exclude` in ruff config ([#8468](https://github.com/napari/napari/pull/8468))\r\n- Maint: Update test_prereleases.yml to also test on pyside6 ([#8470](https://github.com/napari/napari/pull/8470))\r\n- Fix constraints upgrade scripts ([#8473](https://github.com/napari/napari/pull/8473))\r\n- Fix coverage upload in comprehensive tests ([#8474](https://github.com/napari/napari/pull/8474))\r\n- Remove building of npe1 menu items for Plugins and Sample menus ([#8476](https://github.com/napari/napari/pull/8476))\r\n- First emit warning, then replace projection mode when convert image to labels ([#8481](https://github.com/napari/napari/pull/8481))\r\n- Finish typing utils.progress ([#8485](https://github.com/napari/napari/pull/8485))\r\n- Maint: Update test_prereleases.yml to bump retries to 3 ([#8488](https://github.com/napari/napari/pull/8488))\r\n- Block numba 0.62.0 for docs constraints ([#8490](https://github.com/napari/napari/pull/8490))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8491](https://github.com/napari/napari/pull/8491))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8499](https://github.com/napari/napari/pull/8499))\r\n- Test on macos-15-intel without numba ([#8503](https://github.com/napari/napari/pull/8503))\r\n- Move constraints calculation to script, allow upgrade subset of packages ([#8505](https://github.com/napari/napari/pull/8505))\r\n- Workaround for Zenodo outage by downloading data from google drive.  ([#8508](https://github.com/napari/napari/pull/8508))\r\n- Migrate EventedModel to pydantic v2 and overlays to psygnal to support python 3.14  ([#8509](https://github.com/napari/napari/pull/8509))\r\n- Fix overlay tests ([#8513](https://github.com/napari/napari/pull/8513))\r\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `jsonschema`, `pandas`, `pillow`, `psutil`, `psygnal`, `pyqt6`, `scikit-image`, `scipy`, `superqt`, `tifffile`, `virtualenv` ([#8518](https://github.com/napari/napari/pull/8518))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8519](https://github.com/napari/napari/pull/8519))\r\n- Reduce noise in benchmark logs ([#8525](https://github.com/napari/napari/pull/8525))\r\n- Improve language in Citation PR Author check ([#8526](https://github.com/napari/napari/pull/8526))\r\n- ci(dependabot): bump the actions group with 4 updates ([#8533](https://github.com/napari/napari/pull/8533))\r\n- Remove `npe1` settings and theme loading ([#8540](https://github.com/napari/napari/pull/8540))\r\n- Enforce unix line endings ([#8541](https://github.com/napari/napari/pull/8541))\r\n- Add temporary tox plugin for fix installation of dependency groups ([#8545](https://github.com/napari/napari/pull/8545))\r\n- Revert: Add temporary tox plugin for fix installation of dependency groups (#8545) ([#8546](https://github.com/napari/napari/pull/8546))\r\n- Fix typing in layers.points and layers.labels utilities ([#8549](https://github.com/napari/napari/pull/8549))\r\n- Fix path to constraints update script  ([#8553](https://github.com/napari/napari/pull/8553))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8554](https://github.com/napari/napari/pull/8554))\r\n- Stop using `get_settings` during import time ([#8556](https://github.com/napari/napari/pull/8556))\r\n- Remove 'axis' prefix from layer axis labels ([#8566](https://github.com/napari/napari/pull/8566))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8571](https://github.com/napari/napari/pull/8571))\r\n- Remove npe1 code for reading and writing ([#8579](https://github.com/napari/napari/pull/8579))\r\n- Fix build constraints with circular napari dependency ([#8588](https://github.com/napari/napari/pull/8588))\r\n- Modify sphinx-external-toc version constraint to eliminate warnings ([#8591](https://github.com/napari/napari/pull/8591))\r\n- Switch logo URL used for reader test ([#8596](https://github.com/napari/napari/pull/8596))\r\n- Update `coverage`, `hypothesis`, `rich` ([#8597](https://github.com/napari/napari/pull/8597))\r\n- Move comment trigger of constraints update to a separate workflow ([#8600](https://github.com/napari/napari/pull/8600))\r\n- Fix running benchmarks by label by fix condition ([#8601](https://github.com/napari/napari/pull/8601))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8602](https://github.com/napari/napari/pull/8602))\r\n- ci(dependabot): bump the actions group with 5 updates ([#8613](https://github.com/napari/napari/pull/8613))\r\n- Update `babel`, `dask`, `hypothesis`, `pooch`, `psutil`, `rich`, `tifffile`, `tqdm`, `wrapt`, `xarray` ([#8615](https://github.com/napari/napari/pull/8615))\r\n- Postpone QtViewer deprecation to 0.8.0 ([#8617](https://github.com/napari/napari/pull/8617))\r\n- Remove settings call on import in qt_event_loop ([#8619](https://github.com/napari/napari/pull/8619))\r\n- Remove remaining `npe1` usage ([#8622](https://github.com/napari/napari/pull/8622))\r\n- Add `uv.lock` and leak graphs to gitignore ([#8637](https://github.com/napari/napari/pull/8637))\r\n- Fix pint warning about deprecation of getitem ([#8638](https://github.com/napari/napari/pull/8638))\r\n- Update `coverage`, `fsspec`, `hypothesis`, `ipython`, `pillow`, `pyside6`, `qtconsole`, `tensorstore`, `tqdm`, `wrapt`, `xarray` ([#8641](https://github.com/napari/napari/pull/8641))\r\n- Bump superqt to 0.7.8 ([#8646](https://github.com/napari/napari/pull/8646))\r\n- Bump napari plugin manager ([#8647](https://github.com/napari/napari/pull/8647))\r\n- Add/unify background box for canvas overlays ([#8654](https://github.com/napari/napari/pull/8654))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8655](https://github.com/napari/napari/pull/8655))\r\n- Upload triangulation artifacts if benchmarks fails ([#8664](https://github.com/napari/napari/pull/8664))\r\n- Maint: Have triangle only on py313 and lower ([#8668](https://github.com/napari/napari/pull/8668))\r\n- Update `pydantic-settings`, `tifffile` ([#8671](https://github.com/napari/napari/pull/8671))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8675](https://github.com/napari/napari/pull/8675))\r\n- Add pregenerated data to stabilize shapes triangulation benchmarks ([#8676](https://github.com/napari/napari/pull/8676))\r\n- Update `hypothesis`, `numpy`, `pandas`, `pydantic-settings`, `rich`, `scipy`, `tifffile`, `virtualenv` ([#8692](https://github.com/napari/napari/pull/8692))\r\n- Add python 3.14 classifier to project metadata ([#8693](https://github.com/napari/napari/pull/8693))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8697](https://github.com/napari/napari/pull/8697))\r\n- ci(dependabot): bump the actions group with 3 updates ([#8713](https://github.com/napari/napari/pull/8713))\r\n- Update `certifi`, `tifffile`, `virtualenv` ([#8716](https://github.com/napari/napari/pull/8716))\r\n- Update pyqt5 default references to pyqt6 ([#8732](https://github.com/napari/napari/pull/8732))\r\n- Remove usage of `partial` from `qt_viewer_buttons` ([#8741](https://github.com/napari/napari/pull/8741))\r\n- Update `numpy`, `superqt`, `tifffile`, `wrapt` ([#8748](https://github.com/napari/napari/pull/8748))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8753](https://github.com/napari/napari/pull/8753))\r\n- Update `imageio`, `pydantic-extra-types`, `tensorstore`, `virtualenv` ([#8773](https://github.com/napari/napari/pull/8773))\r\n- [pre-commit.ci] pre-commit autoupdate ([#8774](https://github.com/napari/napari/pull/8774))\r\n- Update plugin manager constraint ([#8781](https://github.com/napari/napari/pull/8781))\r\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#856](https://github.com/napari/docs/pull/856))\r\n- Allow to redeploy docs after merge new commits to main branch ([docs#874](https://github.com/napari/docs/pull/874))\r\n- Add mdformat to pre-commit config ([docs#878](https://github.com/napari/docs/pull/878))\r\n- Reorg of the Usage section of the docs ([docs#881](https://github.com/napari/docs/pull/881))\r\n- Explicitly turn on blobless checkout for CircleCI ([docs#882](https://github.com/napari/docs/pull/882))\r\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#885](https://github.com/napari/docs/pull/885))\r\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#890](https://github.com/napari/docs/pull/890))\r\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#898](https://github.com/napari/docs/pull/898))\r\n- Allow to use local copy of napari when using pixi ([docs#900](https://github.com/napari/docs/pull/900))\r\n- Fix pixi tasks for different environments ([docs#904](https://github.com/napari/docs/pull/904))\r\n- Stop tracking `docs/release/index.md` so that it is ignored ([docs#905](https://github.com/napari/docs/pull/905))\r\n- Maint Update PIP_CONSTRAINT to UV_CONSTRAINT in config ([docs#909](https://github.com/napari/docs/pull/909))\r\n- Remove pixi configuration for macos intel ([docs#913](https://github.com/napari/docs/pull/913))\r\n- Prepare on migration to `sphinxcontrib-mermaid` ([docs#923](https://github.com/napari/docs/pull/923))\r\n- ci(dependabot): bump the github-actions group with 2 updates ([docs#925](https://github.com/napari/docs/pull/925))\r\n- ci(dependabot): bump actions/download-artifact from 7.0.0 to 8.0.0 in the github-actions group ([docs#948](https://github.com/napari/docs/pull/948))\r\n\r\n\r\n## 25 authors added to this release (alphabetical)\r\n\r\n(+) denotes first-time contributors 🥳\r\n\r\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\r\n- [Constantin Aronssohn](https://github.com/napari/napari/commits?author=cnstt) - @cnstt\r\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\r\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\r\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\r\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\r\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\r\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\r\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\r\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\r\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang +\r\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\r\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\r\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\r\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\r\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\r\n- [Neil Shephard](https://github.com/napari/docs/commits?author=ns-rse) - @ns-rse +\r\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\r\n- [Qin Yu](https://github.com/napari/napari/commits?author=qin-yu) ([docs](https://github.com/napari/docs/commits?author=qin-yu))  - @qin-yu +\r\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\r\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) - @sdiebolt +\r\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\r\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\r\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\r\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\r\n\r\n## 25 reviewers added to this release (alphabetical)\r\n\r\n(+) denotes first-time contributors 🥳\r\n\r\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\r\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\r\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\r\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\r\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\r\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\r\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\r\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\r\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\r\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\r\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\r\n- [Johannes Soltwedel](https://github.com/napari/docs/commits?author=jo-mueller) - @jo-mueller\r\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\r\n- [Kyle I. S. Harrington](https://github.com/napari/docs/commits?author=kephale) - @kephale\r\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\r\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\r\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\r\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\r\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\r\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\r\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\r\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\r\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\r\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\r\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\r\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/300137816/reactions","total_count":8,"+1":0,"-1":0,"laugh":0,"hooray":3,"confused":0,"heart":0,"rocket":5,"eyes":0},"mentions_count":30},{"url":"https://api.github.com/repos/napari/napari/releases/299659106","assets_url":"https://api.github.com/repos/napari/napari/releases/299659106/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/299659106/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.0rc4","id":299659106,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84R3G9i","tag_name":"v0.7.0rc4","target_commitish":"48fcd2f4351845419303b1d3a102dcb5ce6923ab","name":"0.7.0rc4","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-03-21T01:39:55Z","updated_at":"2026-03-21T01:55:01Z","published_at":"2026-03-21T01:43:24Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/378318467","id":378318467,"node_id":"RA_kwDOCJ0aI84WjK6D","name":"napari-0.7.0rc4-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44332,"digest":"sha256:0ab55a5612e83feba92e4ce530743d58ddf3932dabdc053bf2189155edc6685c","download_count":1,"created_at":"2026-03-21T01:48:54Z","updated_at":"2026-03-21T01:48:55Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378318374","id":378318374,"node_id":"RA_kwDOCJ0aI84WjK4m","name":"napari-0.7.0rc4-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":572438859,"digest":"sha256:0648c12e721f162657c76be3cbaea84ea5aacdc5a35195f7eb222303eaf29e44","download_count":7,"created_at":"2026-03-21T01:48:39Z","updated_at":"2026-03-21T01:48:54Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378319863","id":378319863,"node_id":"RA_kwDOCJ0aI84WjLP3","name":"napari-0.7.0rc4-macOS-arm64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37721,"digest":"sha256:4b8918944d5d8d759a64fc048b565e57ca60810474034d1e18cd102cf832813a","download_count":2,"created_at":"2026-03-21T01:51:53Z","updated_at":"2026-03-21T01:51:53Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-macOS-arm64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378319678","id":378319678,"node_id":"RA_kwDOCJ0aI84WjLM-","name":"napari-0.7.0rc4-macOS-arm64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":443030677,"digest":"sha256:5843d3bccdd086d084928ae0d47a2c68dbabb73316c2b222533837f054fb0fd9","download_count":4,"created_at":"2026-03-21T01:51:36Z","updated_at":"2026-03-21T01:51:52Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-macOS-arm64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378322016","id":378322016,"node_id":"RA_kwDOCJ0aI84WjLxg","name":"napari-0.7.0rc4-macOS-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":37153,"digest":"sha256:c921d7b6b025d91ea17aeee2a95361458cf9a85c9da97311f9234d975987a831","download_count":2,"created_at":"2026-03-21T01:55:01Z","updated_at":"2026-03-21T01:55:01Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-macOS-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378321795","id":378321795,"node_id":"RA_kwDOCJ0aI84WjLuD","name":"napari-0.7.0rc4-macOS-x86_64.pkg","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":475135438,"digest":"sha256:02d8f9065992c1512d2e860e70368e11993007e82d662537947789c4a2d43d6b","download_count":4,"created_at":"2026-03-21T01:54:41Z","updated_at":"2026-03-21T01:54:59Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-macOS-x86_64.pkg"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378315556","id":378315556,"node_id":"RA_kwDOCJ0aI84WjKMk","name":"napari-0.7.0rc4-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3490154,"digest":"sha256:2e133a814076660412e1ed9bfaffe82a6a9a10393fd751bd610e49821e0c114c","download_count":3,"created_at":"2026-03-21T01:43:23Z","updated_at":"2026-03-21T01:43:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378319304","id":378319304,"node_id":"RA_kwDOCJ0aI84WjLHI","name":"napari-0.7.0rc4-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":550706648,"digest":"sha256:36fde59c342a0bedea6f5d145a71aec9ff52ed6099a9cfe6b2a28afe5046243a","download_count":4,"created_at":"2026-03-21T01:50:52Z","updated_at":"2026-03-21T01:51:14Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378319522","id":378319522,"node_id":"RA_kwDOCJ0aI84WjLKi","name":"napari-0.7.0rc4-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":34113,"digest":"sha256:b13984ec3c5dcaa52376e12caf20118fefef7d018e41a38ad065dbcd4687ebf4","download_count":1,"created_at":"2026-03-21T01:51:15Z","updated_at":"2026-03-21T01:51:15Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/378315557","id":378315557,"node_id":"RA_kwDOCJ0aI84WjKMl","name":"napari-0.7.0rc4.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":3103900,"digest":"sha256:aad2d5e2c2e307d25b2fe6899b5aa92d203ad3f5db262e37b2da8122e0cf4a21","download_count":4,"created_at":"2026-03-21T01:43:23Z","updated_at":"2026-03-21T01:43:24Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc4/napari-0.7.0rc4.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.0rc4","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.0rc4","body":"# napari 0.7.0\n⚠️ *Note: these release notes are still in draft while 0.7.0 is in release candidate testing.* ⚠️\n\n*Fri, Mar 20, 2026*\n\nWe're happy to announce the release of napari 0.7.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Breaking Changes\n\n#### Transition to npe2 plugin engine 🔌\n\nIn 0.6.0 we began the process of deprecating npe1 (napari-plugin-engine).\nIn all 0.6.x releases, npe1 plugins were automatically converted to npe2 by default,\nand users could turn off the `use_npe2_adaptor` setting to continue using npe1 plugins\nwithout auto-conversion.\n\nIn 0.7.0 this setting is being removed ([PR #8448](https://github.com/napari/napari/pull/8448)),\nand plugins will *only* continue to function if\nthey can be auto-converted to npe2. Most plugins will be unaffected, but those that rely\non import-time behaviour may not work as expected. If a plugin is relying on import-time\nbehaviour, it may be able to replicate this using the new startup scripts functionality added\nin 0.6.5 ([#8188](https://github.com/napari/napari/pull/8188)).\n\nIf you encounter conversion issues in a plugin you rely on, please contact the\nplugin authors to encourage them to migrate their plugin to the npe2 system.\n\nThis change has been a long time coming, and it's allowed us to remove thousands\nof lines of tangled and confusing legacy code. Now that we have, it's unleashed\nthe potential for massive improvements to file opening and saving in `napari`,\nand exciting new features for our plugin infrastructure. Stay tuned!\n\nFor more details on this change and how it affects plugins, see the [detailed\nguide](adapted-plugin-guide). If you are a plugin author and your plugin is not\nyet npe2-compatible, please see our [npe2 migration\nguide](npe2-migration-guide), and, if you encounter any issues, get in touch in\nour [Plugins Zulip chat\nchannel](https://napari.zulipchat.com/#narrow/channel/309872-plugins) or by\ncoming to one of our [community meetings](meeting-schedule).\n\n#### Negative axis labels? A real positive\n\nIf you've ever loaded data of mixed dimensionality in napari, like a TYX volume\nalongside a YX segmentation, you may have noticed the default axis labels didn't\nquite line up:\n\n| axes   | 0 | 1 | 2 |\n|--------|---|---|---|\n| volume | 0 | 1 | 2 |\n| segmt  |   | 0 | 1 |\n\nThat's because napari used 0-based indexing for its viewer axis labels, which breaks\ndown when layers have different numbers of dimensions. With\n[#8565](https://github.com/napari/napari/pull/8565),\nviewer axis labels now use negative indexing by default, combining Python's negative indexing\nsemantics with NumPy's array broadcasting semantics. The last axis is always `-1`,\nthe second-to-last is always `-2`, and so on:\n\n| axes   | 0  | 1  | 2  |\n|--------|----|----|----|\n| volume | -3 | -2 | -1 |\n| segmt  |    | -2 | -1 |\n\nThis means axis labels stay consistent as you add or remove layers of different\ndimensionality -- axis `-1` is always your last axis. This also fixes\na long-standing bug where axis labels could end up duplicated when mixing layers of\ndifferent dimensionality ([#6569](https://github.com/napari/napari/issues/6569)).\n\nYou'll notice this change in the dims slider labels, the axis overlay, and the dims\npopup widget. If you already label your axes with your own names (e.g. `z`, `y`, `x`),\nnothing's changed. For everyone else, we have consistency at last!\n\n\n#### What's in an angle? The truth! Fixed camera angles 🎥\n\nIf you've ever set up the camera to take that perfect publication-worthy photo of\nyour data (and taken the time to query the camera angles), you may have noticed they seemed... off.\nThat's because they were! Very... off. This was due to a long-standing bug in how we calculated our\ncamera angles, fueled in part by some arcane vispy axis-swapping tomfoolery, and in part by napari's\nstarting position of `viewer.camera.angles = (0, 0, 90)`.\n\nGood news! With [#8281](https://github.com/napari/napari/pull/8281), angles make sense again. The default camera angles are `(0, 0, 0)`, and they\nmove intuitively -- so `viewer.camera.angles = (10, 0, 0)` actually represents a 10 degree\nrotation around the [-3rd](#negative-axis-labels-a-real-positive) dimension. What a time to be alive!\n\nOld versions of napari:\n\n![Image showing an old version of a napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console.](https://github.com/user-attachments/assets/9ae2040c-36f7-4c4c-8ef8-140202d7ccda)\n\nNew and sane:\n\n![Image showing the 0.7.0 napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console. The layer is rotated 10 degrees in its first dimension](https://github.com/user-attachments/assets/6b972b46-5c3c-439a-8b0a-fe8a293224e5)\n\nAll rotations are now right-handed (counterclockwise when the axis points towards the viewer),\nwith automatic sign-flipping for flipped camera views.\n\nNow for the bad news... After many (and we do [mean](https://github.com/napari/napari/pull/8537)\n[**many**](https://github.com/napari/napari/pull/8557)) attempts, we realized we couldn't\nprovide legacy conversion functions to get you to and from the original camera angles. Therefore,\nthis is a **breaking change**.\n\nIf you had scripts or notebooks setting up angles for screenshots, or if you've got workshop\nmaterials or tutorials with preset angles, they'll need to be updated. Any existing code\nusing `viewer.camera.angles = (z, y, x)` will now produce a different view than before.\n\n#### Limiting `self.events` callbacks\n\nIn [#8672](https://github.com/napari/napari/pull/8672), we changed how we emit events from\nthe parent `self.events` group.\n\nPreviously, connecting a callback to an `EventedModel`'s top-level event group\n(e.g. `model.events.connect(callback)`) would cause that callback to fire multiple times\nwhen a single assignment triggered multiple dependent fields. For example:\n\n```python\nclass MyModel(EventedModel):\n    a: int\n\n    @property\n    def b(self):\n        return self.a * 2\n\n    @b.setter\n    def b(self, value):\n        self.a = value // 2\n\nmodel = MyModel(a=1)\nmodel.events.connect(my_callback)\n\nmodel.a = 4  # previously called my_callback twice (once for 'a', once for 'b')\n             # now calls my_callback once\n```\n\nThe callback connected to `model.events` will now be called exactly once, with the event `type`\nset to the first changed field and `value` set to its new value. Callbacks connected to specific\nfield events (e.g. `model.events.a.connect(...)`) are unaffected and continue to work as before.\n\nIf you connect to `model.events` directly and relied on receiving one call per dependent field\nchange, you will need to connect to the individual field events instead.\n\n### New features & widgets\n\n#### What's my metadata? Where's my metadata? `napari-metadata` to the rescue\n\nWith a lot of work from our community contributor, Carlos Mario Rodriguez Reza\n(https://github.com/carlosmariorr), and\nour venerable community manager Tim Monko (https://github.com/timmonko),\n`napari` now has a metadata viewing and editing plugin\nincluded in our `napari[all]` installation and our bundle ([PR #8576](https://github.com/napari/napari/pull/8576)).\n\n![Screenshot of napari displaying an image of neurons, with the napari-metadata Layer Metadata widget across the bottom of the viewer.](https://raw.githubusercontent.com/napari/napari-metadata/main/docs/images/horizontal-widget.png)\n\nOpen the `Layer metadata` widget from the `Plugins` menu and you can view File information, and view and edit Axes metadata such as\naxis labels, translation and scale! You can also use the widget to copy specified metadata across to other layers.\n\nCheck out the [README](https://github.com/napari/napari-metadata) for some usage documentation, and feel\nfree to open an issue to request new features -- we're actively improving this plugin so, more to come!\n\n#### (Layer) Features galore\n\nPrior to 0.7.0, our Features table widget only supported showing individual selected layer features.\n\nWith [#8189](https://github.com/napari/napari/pull/8189), courtesy of Marcelo Zoccoler\n(https://github.com/zoccoler), the widget will display\nfeatures of all selected layers! The layer's name is displayed in an additional column, so you\nalways know what you're looking at, and you can choose to display only the shared feature columns\nacross all layers. Pretty slick!\n\n![GIF displaying the usage of the features table with multiple selected layers.](https://github.com/user-attachments/assets/e06fd403-ed03-4edd-9192-a4e287d25ff7)\n\n#### Smarter new layer buttons - inheriting from selected layers\n\nPrior to 0.7.0, creating a new layer Points, Shapes or Labels layer would give you a layer\nwith extent and dimensionality equal to the union of all currently open layers, and with\nnone of the other spatial information (scale, units, etc.) inherited.\n\nNow, with [#8357](https://github.com/napari/napari/pull/8357) and [#8702](https://github.com/napari/napari/pull/8702)\nyou can create new Shapes, Points or Labels layer that inherits from a selected layer\n(or a combination of selected layers).\n\n##### Shapes & Points\n\nIf you have one layer selected, your new `Shapes` or `Points` layer will copy\nall spatial information from its ancestor, ready for annotating!\nIf you have multiple layers selected, only scale is copied.\n\nIf you wish to recover the original behavior, select all existing layers before creating your new layer.\nDeselecting all layers gives you a layer with only the number of dimensions inherited,\nand no other properties.\n\n##### Labels\n\n`Labels` layers inherit all spatial information when a single `Image` or `Labels` layer is selected.\nWhen multiple `Image` or `Labels` layers are selected, or the selection includes any combination of\nother layer types, the new `Labels` layer will span their extent -- take note, this layer could be\nhuge!\n\nThe `Labels` button is disabled when layers are present in the viewer and none are selected.\n(You can still create a (512 x 512) `Labels` layer when there are no layers present).\n\n##### Visual cues\n\n[#8768](https://github.com/napari/napari/pull/8768) ensures this change is not invisible!\nWhen your selection will result in full inheritance of spatial information for the new layer,\nthe new layer buttons will be highlighted.\nThe highlight color will become dimmer when your selection will result in the new layer only\ninheriting the extent of your existing selection. If you're lost\nin the inheritance madness, you can also hover over the buttons to get details about the behavior.\n\n![GIF displaying the highlights on the Shapes, Points and Labels new layer buttons when one or more layers are selected in the layerlist](https://github.com/user-attachments/assets/17361e45-dbca-4770-be11-d74c882eedb5)\n\nPS -- You can now also create these new layers from the `File -> New Layer` menu!\n\n#### Better text overalys 🔡\n\nWith [#8236](https://github.com/napari/napari/pull/8236), we've not only refactored text overlays\nso they're easier to implement, but we've also introduced two new long-requested overlays:\nthe layer name overlay, and an overlay for the current slice. Together, they make generating\npublication-ready figures much easier!\n\n![Image showing the napari viewer with two layers in grid mode. Each layer has its name displayed in the top left, and the current slice displayed in the bottom right.](https://github.com/user-attachments/assets/3c96b38d-44c1-432b-b294-aa9c0934a553)\n\nTry it yourself:\n\n```python\nimport napari\nv = napari.Viewer()\nv.grid.enabled = True\nll = v.open_sample('napari', 'cells3d')\nfor l in ll:\n    l.name_overlay.visible = True\nv.scale_bar.visible = True\nv.scale_bar.gridded = True\nv._overlays['current_slice'].visible = True\nv._overlays['current_slice'].gridded = True\nv.dims.axis_labels = ['z', 'y', 'x']\n```\n\n**Note**: the `v._overlays` attribute is still private as we're working out the best API.\n\n### Rendering & display\n\n#### More pixels to play with - texture tiling\n\nEver loaded a large 2D image in napari just to zoom in and feel like you're not\nreally getting a lot of bang for your pixel bucks? That's because we were\ndownsampling images that were too large to send the whole thing to the GPU.\n\nCourtesy of Guillaume Witz (https://github.com/guiwitz), and his PR for\ntexture tiling ([PR #8395](https://github.com/napari/napari/pull/8395)) 2D\nimages that exceed OpenGL's maximum texture size will be split into multiple\ntiles, each small enough to fit on the GPU.\n\n![Image with a screenshot of napari 0.6.6 on the left and napari 0.7.0 on the right displaying a DeCAM image of the Milky Way. The image on the left is pixelated, while the image on the right is displayed at full resolution.](https://github.com/user-attachments/assets/d0a115a8-49d5-432c-b561-f29fe9ac8116)\n\n#### Rendering layers in physical space - units matter!\n\nIn 0.6.6 and below, units were stored in metadata, but not used for rendering.\nAdding two layers that represented the same physical space, but had different\nunits, e.g. a layer with `scale=500, units='nm'` and one with `scale=0.5, units='μm'`\nwouldn't overlap correctly, even though they should.\n\nThanks to [#7889](https://github.com/napari/napari/pull/8395), layers with\ncompatible units (i.e. those that share the same physical dimension per axis,\nlike all spatial), will make use of `units` and `scale` to overlap correctly,\nusing the smallest unit as the rendering space.\n\nUnits can also be set globally on the layer list using `viewer.layers.units = ('nm', 'nm')`,\nforcing layers to be rendered in this space. If a new layer is added with more dimensions\nthan the current layers, this global override is dropped with a warning.\n\n#### Points - any size you like 🟣\n\nOn macOS, the points layer has never been able to reach its full potential, as OpenGL\ndrivers limit the size of an individual marker to a certain number of screen pixels.\n\nWith [#8552](https://github.com/napari/napari/pull/8552) and the release of `vispy v0.16`,\nthis long-standing issue has finally been resolved. Across all operating systems, you can\nmake your points as big as you want!\n\nThis change has also propagated to the zoom behaviour on macOS -- points now zoom\nproportionally to the data, rather than staying the same size in screen pixels.\n\nHere's the behaviour pre 0.7.0:\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_066.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_066.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_066.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points stay the same size in screen pixels.\" \n    > \n  </video> \n</figure> \n``` \n\nAnd now:\n\n```{raw} html\n<figure> \n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_070.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_070.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_070.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points scale proportionally to the data.\" \n    > \n  </video> \n</figure> \n```\n\n### Performance\n\n#### Grid mode -- bigger, better, faster 📈\n\nIf you've been playing with our new grid mode since 0.6.5, you\nmay have stumbled into performance issues when progressively adding\nnew layers to the viewer. Stumble no longer! Our grid mode is now wicked fast and buttery smooth 🧈.\n\nWe've also fixed some issues with mouse interactions and deleting\nlayers, so you can tile to your heart's content. Try it out:\n\n```py\nimport napari\n\nviewer = napari.Viewer()\n\n# enable grid with stride 2 to get layers split two-by-two\nviewer.grid.enabled = True\nviewer.grid.stride = 2\n\n# set the scale bar to gridded mode so it appears in each grid box\nviewer.scale_bar.visible = True\nviewer.scale_bar.gridded = True\n\nlayers = viewer.open_sample('napari', 'lily')\n\n# enable color bars\nfor layer in layers:\n    layer.colorbar.visible = True\n```\n\n#### Add & delete layers without delay\n\n[#8479](https://github.com/napari/napari/pull/8479) and [#8443](https://github.com/napari/napari/pull/8443)\nmade a number of improvements to\nour layer and overlay clean-up, addressing a number of issues with large numbers of layers\nin the viewer - adding them, deleting them, and even closing the viewer is now snappy\nand smooth!\n\n#### Shapes layers -- select, zoom, delete, repeat\n\nIf you've ever tried working with thousands of shapes in napari, you'll know\nit could get... painful. Selecting 10,000 shapes with a box took over 50 seconds,\ndeleting 5,000 shapes took over a minute, and zooming with shapes selected\nwould lock up the viewer entirely. Not anymore!\n\n0.7.0 brings a flurry of performance improvements:\n\n- Box selection now uses bounding boxes and vectorized intersection tests,\n  delivering a more than 100x speedup ([#8378](https://github.com/napari/napari/pull/8378)).\n  Selecting 10,000 shapes goes from >50s to ~0.3s.\n- Batch deletion replaces one-by-one removal for another 100x speedup\n  ([#8375](https://github.com/napari/napari/pull/8375))! Deleting 50,000 shapes\n  now takes under half a second.\n- Outline computation is batched and cached, so zooming and panning with\n  selected shapes no longer blocks\n  ([#8403](https://github.com/napari/napari/pull/8403),\n  [#8536](https://github.com/napari/napari/pull/8536)).\n- Highlight updates are throttled for large layers, enabling smooth zoom\n  even with 200,000+ shapes ([#8404](https://github.com/napari/napari/pull/8404)).\n- Mode switching no longer triggers unnecessary redraws, giving another\n  ~3x speedup when many shapes are selected\n  ([#8551](https://github.com/napari/napari/pull/8551)).\n\nBeware: there's still more to do, because drawing and drag-moving large selections\nremain slow!\n\n#### Multiscale -- less to update, more to celebrate\n\nPR [#8678](https://github.com/napari/napari/pull/8678) introduced a small change\nwith a big effect! Now, zooming in (and panning while zoomed in), will only trigger\na data refresh if the multiscale level has changed **or** if the new view falls outside\nof already loaded data.\n\n#### Delete the launch codes -- no more macOS hacks on launch\n\nIn 0.6.6 and below, we had some macOS specific launch code that skirted around some\nissues (which are now no longer relevant), and hackily \"relaunched\" napari to make\nsure the application name was correct.\n\nThis code added up to a whole second to our launch time, as well as being potentially\nproblematic for some users. PR [#8705](https://github.com/napari/napari/pull/8705)\nremoved this code, making our start-up a little less hacky and a little more snappy.\nThe downside is that when launching napari on macOS, the app name may be listed as\nPython, instead of napari. We think the trade-off is worth it.\n\n\n### Infrastructure & dependencies\n\nA couple of notes on big changes in our dependencies:\n\n- With #8509 we improved our support for `pydantic v2`, allowing us to enable support for Python 3.14!\nThis brings us one step closer to fully adopting `psygnal` as our event library.\n- In [#8450](https://github.com/napari/napari/pull/8450) we dropped support for PySide2. If you\nwere using napari with PySide for your Qt bindings, you'll need to upgrade to PySide6. Good news\nis that PySide6 is looking pretty stable, while PySide2 had some compatibility issues with numpy2,\nand had to be built from source for Python 3.11+.\n- In ([#8665](https://github.com/napari/napari/pull/8665)) we updated the default qt\nbinding to PyQt6. PyQt6 will now be installed with `napari[all]` installations. Windows users\nshould see improvements to their display with better support for fractional scaling!\n- In [#8338](https://github.com/napari/napari/pull/8338) we replaced `numpydoc` with `docstring_parser`\nfor parsing our docstrings. This will be a pretty invisible change from a user's perspective, but\nit saves more than 50MB of disk space for a napari install!\n\n## New Features\n\n- Use information about units when calculate scale of layers when render ([#7889](https://github.com/napari/napari/pull/7889))\n- Welcome widget as an overlay ([#8117](https://github.com/napari/napari/pull/8117))\n- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189))\n- Better text overlay (and subclasses) ([#8236](https://github.com/napari/napari/pull/8236))\n- Allow create Shapes and Points per selected Layer ([#8357](https://github.com/napari/napari/pull/8357))\n- Use new logos! ([#8457](https://github.com/napari/napari/pull/8457))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n\n## Improvements\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- Add cell tracking example ([#8051](https://github.com/napari/napari/pull/8051))\n- Add a seed argument to built-in samples with random seeds ([#8317](https://github.com/napari/napari/pull/8317))\n- Enh: clarify Points selection keybinding behavior: select_in_slice not append by default, add new select_append_in_slice ([#8339](https://github.com/napari/napari/pull/8339))\n- Enh: Improve zarr reading by builtins ([#8355](https://github.com/napari/napari/pull/8355))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Reordering default colormap to split channels  ([#8383](https://github.com/napari/napari/pull/8383))\n- change default blending mode of images on split RGB ([#8385](https://github.com/napari/napari/pull/8385))\n- Texture tiling ([#8395](https://github.com/napari/napari/pull/8395))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Set viewer dimension based on number of axis labels ([#8436](https://github.com/napari/napari/pull/8436))\n- Enh: Add label value to the labels tooltip ([#8495](https://github.com/napari/napari/pull/8495))\n- Use 10x10 pixels rect around mouse position to invalidate tooltip ([#8500](https://github.com/napari/napari/pull/8500))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Enable antialiasing on all Lines ([#8515](https://github.com/napari/napari/pull/8515))\n- Avoid materializing property views when updating points highlight ([#8517](https://github.com/napari/napari/pull/8517))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Don't warn user when a Zarr array with channel axis is passed ([#8559](https://github.com/napari/napari/pull/8559))\n- Use negative indexing for viewer dims axis labels ([#8565](https://github.com/napari/napari/pull/8565))\n- Add colorbar & bounding box overlays to Layers menu ([#8611](https://github.com/napari/napari/pull/8611))\n- Add visual for new points/shapes button on selected layers ([#8649](https://github.com/napari/napari/pull/8649))\n- Limit `self.events` callbacks trigger to only once per assignment ([#8672](https://github.com/napari/napari/pull/8672))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- Warn users when features data looks categorical ([#8685](https://github.com/napari/napari/pull/8685))\n- Fix type annotation in viewer keybindings, use QtViewer for console ([#8694](https://github.com/napari/napari/pull/8694))\n- Do not inherit scale for points and shapes if no layer is selected ([#8701](https://github.com/napari/napari/pull/8701))\n- Inherit spatial information for new `Labels` layers when only one other `Labels` or `Image` layer is selected ([#8702](https://github.com/napari/napari/pull/8702))\n- [UI, UX] Make dock widget title bar icons bigger and text more legible ([#8714](https://github.com/napari/napari/pull/8714))\n- Perf, enh: defer dask.array loading by moving import into functions ([#8720](https://github.com/napari/napari/pull/8720))\n- Change look of new layer buttons to mark that there are 3 modes ([#8723](https://github.com/napari/napari/pull/8723))\n- If path arg is passed to CLI napari, don't show welcome overlay ([#8725](https://github.com/napari/napari/pull/8725))\n- UI: Add keybinding for Image layer reset_contrast_limits ([#8730](https://github.com/napari/napari/pull/8730))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n- Use capitalized name of source layer type when adding layer ([#8740](https://github.com/napari/napari/pull/8740))\n- Add scale example for anisotropic 3D data ([#8742](https://github.com/napari/napari/pull/8742))\n- Raise FileNotFoundError early when opening nonexistent paths ([#8747](https://github.com/napari/napari/pull/8747))\n- Ensure that layers are unlinked after deletion from layerlist  ([#8749](https://github.com/napari/napari/pull/8749))\n- Use custom Font manager to use Qt discovery mechanism ([#8751](https://github.com/napari/napari/pull/8751))\n- Restyle new_layer button creation state visuals ([#8768](https://github.com/napari/napari/pull/8768))\n- Disable opacity slider for multiplicative blending ([#8776](https://github.com/napari/napari/pull/8776))\n\n## Performance\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Delay scipy imports until needed ([#8561](https://github.com/napari/napari/pull/8561))\n- Low hanging Labels painting performance improvement ([#8592](https://github.com/napari/napari/pull/8592))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- [Perf] Remove napari splash screen ([#8686](https://github.com/napari/napari/pull/8686))\n- [Maint] Remove all macOS specific launch code as it's out-dated or problematic (re-running with symlink) ([#8705](https://github.com/napari/napari/pull/8705))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n\n## Bug Fixes\n\n- Fix camera angles‽ ([#8281](https://github.com/napari/napari/pull/8281))\n- bugfix & refactor: Use events for shape multiselection ([#8332](https://github.com/napari/napari/pull/8332))\n- Fix conversion of vector images to coordinates of vectors ([#8366](https://github.com/napari/napari/pull/8366))\n- initialize label selection spinbox to a correct value ([#8382](https://github.com/napari/napari/pull/8382))\n- Bugfix: fix erratic Shape sorting ([#8408](https://github.com/napari/napari/pull/8408))\n- bugfix: Ensure that edge_width is accounted for when using polygon lasso ([#8414](https://github.com/napari/napari/pull/8414))\n- Fix Shapes thumbnail z ordering ([#8417](https://github.com/napari/napari/pull/8417))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Bugfix: update magicgui layer combobox if a layer is renamed using LayerList.renamed event ([#8429](https://github.com/napari/napari/pull/8429))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Bugfix: ensure triangle colors are updated properly when using polygon lasso ([#8469](https://github.com/napari/napari/pull/8469))\n- Speed up the deletion of layers by deduplicating the function calls  ([#8479](https://github.com/napari/napari/pull/8479))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Bugfix: recurse through sub-fields when making connections in EventedSettings Config ([#8520](https://github.com/napari/napari/pull/8520))\n- Fix dim order of rendering of 2D rgb data in 3D mode ([#8522](https://github.com/napari/napari/pull/8522))\n- Fix numpy warning for pure python edge triangulation ([#8523](https://github.com/napari/napari/pull/8523))\n- Do not use keyword argument when creating tooltip ([#8528](https://github.com/napari/napari/pull/8528))\n- Fix update of shape that lead to wrong rendering ([#8543](https://github.com/napari/napari/pull/8543))\n- Close proper window on Ctrl+W ([#8548](https://github.com/napari/napari/pull/8548))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Enable instanced markers if available. ([#8552](https://github.com/napari/napari/pull/8552))\n- Do not expose legacy angle ([#8557](https://github.com/napari/napari/pull/8557))\n- Fix test on PySide6 by change mocking of qt methods ([#8560](https://github.com/napari/napari/pull/8560))\n- Account for tile2data in the Labels polygon overlay ([#8563](https://github.com/napari/napari/pull/8563))\n- ensure overlays are reused properly when gridded mode is enabled ([#8569](https://github.com/napari/napari/pull/8569))\n- Stop welcome screen time on hiding of QtWiewer ([#8585](https://github.com/napari/napari/pull/8585))\n- Fix Labels layer controls contiguous checkbox to initialize to the layer state ([#8594](https://github.com/napari/napari/pull/8594))\n- Proper cleanup and reuse of existing overlays ([#8610](https://github.com/napari/napari/pull/8610))\n- [UI] Update the viewer button tooltips to use the new axis labels (-3, -2, -1) ([#8614](https://github.com/napari/napari/pull/8614))\n- Fix scale bar padding ([#8616](https://github.com/napari/napari/pull/8616))\n- Fix empty thumbnail ([#8620](https://github.com/napari/napari/pull/8620))\n- Reverse overlay tiling order ([#8623](https://github.com/napari/napari/pull/8623))\n- Fix welcome screen timer ([#8627](https://github.com/napari/napari/pull/8627))\n- Reinitialize welcome screen shortcuts in a less ugly way ([#8634](https://github.com/napari/napari/pull/8634))\n- Fix empty points tiny point ([#8639](https://github.com/napari/napari/pull/8639))\n- Fix labels of angle order of camera widget ([#8644](https://github.com/napari/napari/pull/8644))\n- Add a opaque background Rectangle to Welcome overlay ([#8645](https://github.com/napari/napari/pull/8645))\n- Do not start welcome widget timer until QtViewer is visible ([#8652](https://github.com/napari/napari/pull/8652))\n- Allow selection in feature table widget with empty features ([#8653](https://github.com/napari/napari/pull/8653))\n- Fix event triggering start of welcome screen ([#8660](https://github.com/napari/napari/pull/8660))\n- Fix `_disconnect_child_emitters` for `PsygnalModel` dict elements ([#8674](https://github.com/napari/napari/pull/8674))\n- Increase minimum version of pyopengl to allow start napari ([#8679](https://github.com/napari/napari/pull/8679))\n- Fix colorbar for int/bool dtypes ([#8684](https://github.com/napari/napari/pull/8684))\n- Correctly hide welcome screen when layers are present ([#8688](https://github.com/napari/napari/pull/8688))\n- Ensure that errors are propagated during async loading ([#8691](https://github.com/napari/napari/pull/8691))\n- Fix assign tuple of None to `layer.units` ([#8700](https://github.com/napari/napari/pull/8700))\n- Fix error raised when `out_of_slice_display = True` and update highlight ([#8717](https://github.com/napari/napari/pull/8717))\n- fix: fix `napari.imshow` return type hint ([#8726](https://github.com/napari/napari/pull/8726))\n- Fix harvesting plugins from CLI ([#8728](https://github.com/napari/napari/pull/8728))\n- Fix `--plugin` startup args ([#8729](https://github.com/napari/napari/pull/8729))\n- Update box and position of text overlay on font size change ([#8759](https://github.com/napari/napari/pull/8759))\n- Fix welcome spacing ([#8760](https://github.com/napari/napari/pull/8760))\n- Fix: Fire world unit updates after removing layer ([#8772](https://github.com/napari/napari/pull/8772))\n- Do not emit warning about units if there is no layer in viewer ([#8779](https://github.com/napari/napari/pull/8779))\n- Fix colorbar box offset ([#8780](https://github.com/napari/napari/pull/8780))\n- Fix: Qt6 font error on Windows when adding layers or widgets ([#8782](https://github.com/napari/napari/pull/8782))\n- Fix: ValidationError in Drag to Zoom with data ndim>2 ([#8784](https://github.com/napari/napari/pull/8784))\n\n## Build Tools\n\n- Bump urllib3 from 2.6.2 to 2.6.3 in /resources ([#8544](https://github.com/napari/napari/pull/8544))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n\n## Documentation\n\n- Add colorbar and overlay tiling example ([#8433](https://github.com/napari/napari/pull/8433))\n- Create 3D_vectors_through_time.py ([#8461](https://github.com/napari/napari/pull/8461))\n- Fix and improve `dock_widgets` docstrings ([#8494](https://github.com/napari/napari/pull/8494))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n- Adding a new example of a multiplexed immunofluorescent image of a murine heart ([#8680](https://github.com/napari/napari/pull/8680))\n- Add sphinxext-rediraffe to docs requirements ([#8690](https://github.com/napari/napari/pull/8690))\n- Update examples gallery for 0.7.0 angles ([#8709](https://github.com/napari/napari/pull/8709))\n- Add 3D points to add_points_3d example ([#8746](https://github.com/napari/napari/pull/8746))\n- Update contributing info and include AI policy and guidelines ([#8754](https://github.com/napari/napari/pull/8754))\n- Fix `image_depth.py` example by setting `blending` to `translucent` ([#8764](https://github.com/napari/napari/pull/8764))\n- Update units rendering example for docs gallery ([#8767](https://github.com/napari/napari/pull/8767))\n- Remove deprecated `view_*` methods from docs materials ([docs#864](https://github.com/napari/docs/pull/864))\n- Proposed roadmap updates for Q3 ([docs#873](https://github.com/napari/docs/pull/873))\n- Enhance documentation build process with pixi integration and Windows… ([docs#876](https://github.com/napari/docs/pull/876))\n- Pixi cross platform support ([docs#879](https://github.com/napari/docs/pull/879))\n- Refactor contributor docs: prioritize pixi for local builds ([docs#880](https://github.com/napari/docs/pull/880))\n- Modernize type annotation to use builtins ([docs#883](https://github.com/napari/docs/pull/883))\n- Update dark mode colors ([docs#884](https://github.com/napari/docs/pull/884))\n- Remove outdated mentions about PySide2 in documentation ([docs#889](https://github.com/napari/docs/pull/889))\n- Explain accessing dock widget wrappers ([docs#892](https://github.com/napari/docs/pull/892))\n- Add v0.7.0 release notes ([docs#893](https://github.com/napari/docs/pull/893))\n- Add npe1 deprecation info to release notes ([docs#894](https://github.com/napari/docs/pull/894))\n- Overwrite pooch downloader to fix Zenodo access problems ([docs#895](https://github.com/napari/docs/pull/895))\n- Update docs ahead of 0.7.0 alpha ([docs#897](https://github.com/napari/docs/pull/897))\n- Update website to use new logos ([docs#901](https://github.com/napari/docs/pull/901))\n- Migrate and update hub customization from wiki to docs ([docs#906](https://github.com/napari/docs/pull/906))\n- Improve open image section ([docs#907](https://github.com/napari/docs/pull/907))\n- Remove mention of outdated plugin from quick start ([docs#908](https://github.com/napari/docs/pull/908))\n- Update governance documentation ([docs#911](https://github.com/napari/docs/pull/911))\n- increase stack size to solve import recursion problem ([docs#912](https://github.com/napari/docs/pull/912))\n- Update display text copy in shapes.md ([docs#914](https://github.com/napari/docs/pull/914))\n- Update release notes for 0.7.0a1 ([docs#915](https://github.com/napari/docs/pull/915))\n- Simplify titles in App installation instructions ([docs#918](https://github.com/napari/docs/pull/918))\n- Remove mention of double click in macOS app instructions ([docs#920](https://github.com/napari/docs/pull/920))\n- Update release notes for 0.7.0a2 ([docs#922](https://github.com/napari/docs/pull/922))\n- Move code for setting recursion limit ([docs#927](https://github.com/napari/docs/pull/927))\n- Update scripts to pydantic v2 ([docs#928](https://github.com/napari/docs/pull/928))\n- Remove npe1-related docs ([docs#929](https://github.com/napari/docs/pull/929))\n- Add intersphinx mapping for pydantic ([docs#930](https://github.com/napari/docs/pull/930))\n- Add policy on LLM contributions based on Zulip's ([docs#932](https://github.com/napari/docs/pull/932))\n- Expand on 0.7.0 highlights ([docs#933](https://github.com/napari/docs/pull/933))\n- Fix camera angles in handedness guide ([docs#940](https://github.com/napari/docs/pull/940))\n- Add guide explaining default axis names ([docs#942](https://github.com/napari/docs/pull/942))\n- Add info about new points/shapes layer button behavior ([docs#943](https://github.com/napari/docs/pull/943))\n- Add final? 0.7.0 highlights and group by topic ([docs#944](https://github.com/napari/docs/pull/944))\n- Add redirects to pages moved in Usage section ([docs#946](https://github.com/napari/docs/pull/946))\n- Fix typo in optional-dependencies ([docs#947](https://github.com/napari/docs/pull/947))\n- Update references to PyQt5 as default backend to PyQt6 ([docs#950](https://github.com/napari/docs/pull/950))\n- Update 0.7.0 highlights for rc0 ([docs#951](https://github.com/napari/docs/pull/951))\n- Restructure homepage and add rotating featured examples ([docs#953](https://github.com/napari/docs/pull/953))\n- Wayland Debug information ([docs#956](https://github.com/napari/docs/pull/956))\n- Update release notes for 0.7.0rc1 ([docs#957](https://github.com/napari/docs/pull/957))\n- Refresh installation guide, with focus on bundled app instructions ([docs#958](https://github.com/napari/docs/pull/958))\n- Update notes for 0.7.0rc2 ([docs#959](https://github.com/napari/docs/pull/959))\n\n## Other Pull Requests\n\n- TYP: overload for `labeled_particles` incorrectly notes `Literal[True]=...` as default for `return_density` ([#8114](https://github.com/napari/napari/pull/8114))\n- Decompose Layer code by move slicing to specialized class ([#8254](https://github.com/napari/napari/pull/8254))\n- Add information about pyside 6 in error information ([#8313](https://github.com/napari/napari/pull/8313))\n- Remove deprecated `napari.view_*` methods ([#8337](https://github.com/napari/napari/pull/8337))\n- [pre-commit.ci] pre-commit autoupdate ([#8354](https://github.com/napari/napari/pull/8354))\n- Remove string translation from PR checklist ([#8362](https://github.com/napari/napari/pull/8362))\n- Use coverage upload from shared workflows ([#8367](https://github.com/napari/napari/pull/8367))\n- Specify napari revision in build and deploy docs workflow ([#8368](https://github.com/napari/napari/pull/8368))\n- [pre-commit.ci] pre-commit autoupdate ([#8369](https://github.com/napari/napari/pull/8369))\n- Update citation file for 0.7.0 ([#8384](https://github.com/napari/napari/pull/8384))\n- [pre-commit.ci] pre-commit autoupdate ([#8386](https://github.com/napari/napari/pull/8386))\n- Add check if PR author is in citation.cff ([#8388](https://github.com/napari/napari/pull/8388))\n- skip check if author in citation.cff if bot created  PR ([#8392](https://github.com/napari/napari/pull/8392))\n- Explicitly turn on full checkout for CircleCI ([#8396](https://github.com/napari/napari/pull/8396))\n- Fix cff check for bots ([#8420](https://github.com/napari/napari/pull/8420))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `imageio`, `ipython`, `matplotlib`, `numpy`, `pandas`, `pillow`, `pint`, `psutil`, `psygnal`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `pytest-rerunfailures`, `pyyaml`, `rich`, `scipy`, `tensorstore`, `tifffile`, `toolz`, `virtualenv`, `wrapt`, `xarray` ([#8441](https://github.com/napari/napari/pull/8441))\n- [pre-commit.ci] pre-commit autoupdate ([#8442](https://github.com/napari/napari/pull/8442))\n- Stop updating python 3.10 docs constraints ([#8444](https://github.com/napari/napari/pull/8444))\n- Block problematic numba in docs constraints ([#8454](https://github.com/napari/napari/pull/8454))\n- Change link to getting started in Help menu ([#8455](https://github.com/napari/napari/pull/8455))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `tensorstore`, `tifffile`, `xarray` ([#8456](https://github.com/napari/napari/pull/8456))\n- [pre-commit.ci] pre-commit autoupdate ([#8458](https://github.com/napari/napari/pull/8458))\n- ci(dependabot): bump the actions group across 1 directory with 7 updates ([#8460](https://github.com/napari/napari/pull/8460))\n- Finish typing napari.layers.image ([#8462](https://github.com/napari/napari/pull/8462))\n- Bugfix: For FeatureTable `edit` test, check the QAbstractItemView.State and not isPersistentEditorOpen ([#8463](https://github.com/napari/napari/pull/8463))\n- Move Ashley Anderson citation to core team section ([#8467](https://github.com/napari/napari/pull/8467))\n- Change `exclude` to `extend-exclude` in ruff config ([#8468](https://github.com/napari/napari/pull/8468))\n- Maint: Update test_prereleases.yml to also test on pyside6 ([#8470](https://github.com/napari/napari/pull/8470))\n- Fix constraints upgrade scripts ([#8473](https://github.com/napari/napari/pull/8473))\n- Fix coverage upload in comprehensive tests ([#8474](https://github.com/napari/napari/pull/8474))\n- Remove building of npe1 menu items for Plugins and Sample menus ([#8476](https://github.com/napari/napari/pull/8476))\n- First emit warning, then replace projection mode when convert image to labels ([#8481](https://github.com/napari/napari/pull/8481))\n- Finish typing utils.progress ([#8485](https://github.com/napari/napari/pull/8485))\n- Maint: Update test_prereleases.yml to bump retries to 3 ([#8488](https://github.com/napari/napari/pull/8488))\n- Block numba 0.62.0 for docs constraints ([#8490](https://github.com/napari/napari/pull/8490))\n- [pre-commit.ci] pre-commit autoupdate ([#8491](https://github.com/napari/napari/pull/8491))\n- [pre-commit.ci] pre-commit autoupdate ([#8499](https://github.com/napari/napari/pull/8499))\n- Test on macos-15-intel without numba ([#8503](https://github.com/napari/napari/pull/8503))\n- Move constraints calculation to script, allow upgrade subset of packages ([#8505](https://github.com/napari/napari/pull/8505))\n- Workaround for Zenodo outage by downloading data from google drive.  ([#8508](https://github.com/napari/napari/pull/8508))\n- Migrate EventedModel to pydantic v2 and overlays to psygnal to support python 3.14  ([#8509](https://github.com/napari/napari/pull/8509))\n- Fix overlay tests ([#8513](https://github.com/napari/napari/pull/8513))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `jsonschema`, `pandas`, `pillow`, `psutil`, `psygnal`, `pyqt6`, `scikit-image`, `scipy`, `superqt`, `tifffile`, `virtualenv` ([#8518](https://github.com/napari/napari/pull/8518))\n- [pre-commit.ci] pre-commit autoupdate ([#8519](https://github.com/napari/napari/pull/8519))\n- Reduce noise in benchmark logs ([#8525](https://github.com/napari/napari/pull/8525))\n- Improve language in Citation PR Author check ([#8526](https://github.com/napari/napari/pull/8526))\n- ci(dependabot): bump the actions group with 4 updates ([#8533](https://github.com/napari/napari/pull/8533))\n- Remove `npe1` settings and theme loading ([#8540](https://github.com/napari/napari/pull/8540))\n- Enforce unix line endings ([#8541](https://github.com/napari/napari/pull/8541))\n- Add temporary tox plugin for fix installation of dependency groups ([#8545](https://github.com/napari/napari/pull/8545))\n- Revert: Add temporary tox plugin for fix installation of dependency groups (#8545) ([#8546](https://github.com/napari/napari/pull/8546))\n- Fix typing in layers.points and layers.labels utilities ([#8549](https://github.com/napari/napari/pull/8549))\n- Fix path to constraints update script  ([#8553](https://github.com/napari/napari/pull/8553))\n- [pre-commit.ci] pre-commit autoupdate ([#8554](https://github.com/napari/napari/pull/8554))\n- Stop using `get_settings` during import time ([#8556](https://github.com/napari/napari/pull/8556))\n- Remove 'axis' prefix from layer axis labels ([#8566](https://github.com/napari/napari/pull/8566))\n- [pre-commit.ci] pre-commit autoupdate ([#8571](https://github.com/napari/napari/pull/8571))\n- Remove npe1 code for reading and writing ([#8579](https://github.com/napari/napari/pull/8579))\n- Fix build constraints with circular napari dependency ([#8588](https://github.com/napari/napari/pull/8588))\n- Modify sphinx-external-toc version constraint to eliminate warnings ([#8591](https://github.com/napari/napari/pull/8591))\n- Switch logo URL used for reader test ([#8596](https://github.com/napari/napari/pull/8596))\n- Update `coverage`, `hypothesis`, `rich` ([#8597](https://github.com/napari/napari/pull/8597))\n- Move comment trigger of constraints update to a separate workflow ([#8600](https://github.com/napari/napari/pull/8600))\n- Fix running benchmarks by label by fix condition ([#8601](https://github.com/napari/napari/pull/8601))\n- [pre-commit.ci] pre-commit autoupdate ([#8602](https://github.com/napari/napari/pull/8602))\n- ci(dependabot): bump the actions group with 5 updates ([#8613](https://github.com/napari/napari/pull/8613))\n- Update `babel`, `dask`, `hypothesis`, `pooch`, `psutil`, `rich`, `tifffile`, `tqdm`, `wrapt`, `xarray` ([#8615](https://github.com/napari/napari/pull/8615))\n- Postpone QtViewer deprecation to 0.8.0 ([#8617](https://github.com/napari/napari/pull/8617))\n- Remove settings call on import in qt_event_loop ([#8619](https://github.com/napari/napari/pull/8619))\n- Remove remaining `npe1` usage ([#8622](https://github.com/napari/napari/pull/8622))\n- Add `uv.lock` and leak graphs to gitignore ([#8637](https://github.com/napari/napari/pull/8637))\n- Fix pint warning about deprecation of getitem ([#8638](https://github.com/napari/napari/pull/8638))\n- Update `coverage`, `fsspec`, `hypothesis`, `ipython`, `pillow`, `pyside6`, `qtconsole`, `tensorstore`, `tqdm`, `wrapt`, `xarray` ([#8641](https://github.com/napari/napari/pull/8641))\n- Bump superqt to 0.7.8 ([#8646](https://github.com/napari/napari/pull/8646))\n- Bump napari plugin manager ([#8647](https://github.com/napari/napari/pull/8647))\n- Add/unify background box for canvas overlays ([#8654](https://github.com/napari/napari/pull/8654))\n- [pre-commit.ci] pre-commit autoupdate ([#8655](https://github.com/napari/napari/pull/8655))\n- Upload triangulation artifacts if benchmarks fails ([#8664](https://github.com/napari/napari/pull/8664))\n- Maint: Have triangle only on py313 and lower ([#8668](https://github.com/napari/napari/pull/8668))\n- Update `pydantic-settings`, `tifffile` ([#8671](https://github.com/napari/napari/pull/8671))\n- [pre-commit.ci] pre-commit autoupdate ([#8675](https://github.com/napari/napari/pull/8675))\n- Add pregenerated data to stabilize shapes triangulation benchmarks ([#8676](https://github.com/napari/napari/pull/8676))\n- Update `hypothesis`, `numpy`, `pandas`, `pydantic-settings`, `rich`, `scipy`, `tifffile`, `virtualenv` ([#8692](https://github.com/napari/napari/pull/8692))\n- Add python 3.14 classifier to project metadata ([#8693](https://github.com/napari/napari/pull/8693))\n- [pre-commit.ci] pre-commit autoupdate ([#8697](https://github.com/napari/napari/pull/8697))\n- ci(dependabot): bump the actions group with 3 updates ([#8713](https://github.com/napari/napari/pull/8713))\n- Update `certifi`, `tifffile`, `virtualenv` ([#8716](https://github.com/napari/napari/pull/8716))\n- Update pyqt5 default references to pyqt6 ([#8732](https://github.com/napari/napari/pull/8732))\n- Remove usage of `partial` from `qt_viewer_buttons` ([#8741](https://github.com/napari/napari/pull/8741))\n- Update `numpy`, `superqt`, `tifffile`, `wrapt` ([#8748](https://github.com/napari/napari/pull/8748))\n- [pre-commit.ci] pre-commit autoupdate ([#8753](https://github.com/napari/napari/pull/8753))\n- Update `imageio`, `pydantic-extra-types`, `tensorstore`, `virtualenv` ([#8773](https://github.com/napari/napari/pull/8773))\n- [pre-commit.ci] pre-commit autoupdate ([#8774](https://github.com/napari/napari/pull/8774))\n- Update plugin manager constraint ([#8781](https://github.com/napari/napari/pull/8781))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#856](https://github.com/napari/docs/pull/856))\n- Allow to redeploy docs after merge new commits to main branch ([docs#874](https://github.com/napari/docs/pull/874))\n- Add mdformat to pre-commit config ([docs#878](https://github.com/napari/docs/pull/878))\n- Reorg of the Usage section of the docs ([docs#881](https://github.com/napari/docs/pull/881))\n- Explicitly turn on blobless checkout for CircleCI ([docs#882](https://github.com/napari/docs/pull/882))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#885](https://github.com/napari/docs/pull/885))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#890](https://github.com/napari/docs/pull/890))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#898](https://github.com/napari/docs/pull/898))\n- Allow to use local copy of napari when using pixi ([docs#900](https://github.com/napari/docs/pull/900))\n- Fix pixi tasks for different environments ([docs#904](https://github.com/napari/docs/pull/904))\n- Stop tracking `docs/release/index.md` so that it is ignored ([docs#905](https://github.com/napari/docs/pull/905))\n- Maint Update PIP_CONSTRAINT to UV_CONSTRAINT in config ([docs#909](https://github.com/napari/docs/pull/909))\n- Remove pixi configuration for macos intel ([docs#913](https://github.com/napari/docs/pull/913))\n- Prepare on migration to `sphinxcontrib-mermaid` ([docs#923](https://github.com/napari/docs/pull/923))\n- ci(dependabot): bump the github-actions group with 2 updates ([docs#925](https://github.com/napari/docs/pull/925))\n- ci(dependabot): bump actions/download-artifact from 7.0.0 to 8.0.0 in the github-actions group ([docs#948](https://github.com/napari/docs/pull/948))\n\n\n## 25 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Constantin Aronssohn](https://github.com/napari/napari/commits?author=cnstt) - @cnstt\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Neil Shephard](https://github.com/napari/docs/commits?author=ns-rse) - @ns-rse +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Qin Yu](https://github.com/napari/napari/commits?author=qin-yu) ([docs](https://github.com/napari/docs/commits?author=qin-yu))  - @qin-yu +\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) - @sdiebolt +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Johannes Soltwedel](https://github.com/napari/docs/commits?author=jo-mueller) - @jo-mueller\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/docs/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/299659106/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0},"mentions_count":30},{"url":"https://api.github.com/repos/napari/napari/releases/299252102","assets_url":"https://api.github.com/repos/napari/napari/releases/299252102/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/299252102/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.0rc3","id":299252102,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84R1jmG","tag_name":"v0.7.0rc3","target_commitish":"09cfd129240a1ee39e6785b9b00a0e0292382bce","name":"0.7.0rc3","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-03-20T04:32:25Z","updated_at":"2026-03-20T04:39:58Z","published_at":"2026-03-20T04:34:03Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/377704717","id":377704717,"node_id":"RA_kwDOCJ0aI84Wg1EN","name":"napari-0.7.0rc3-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44332,"digest":"sha256:5605fbe9230dc1cbd991a7051de0f0ff4fe2391b935c9ddbd107d3dddf40e787","download_count":1,"created_at":"2026-03-20T04:39:58Z","updated_at":"2026-03-20T04:39:58Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc3/napari-0.7.0rc3-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377704594","id":377704594,"node_id":"RA_kwDOCJ0aI84Wg1CS","name":"napari-0.7.0rc3-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":572225651,"digest":"sha256:14524a9e1315734b7dbfc57422f7bd50123484a3aa5e20fb3d8922048ee930c5","download_count":5,"created_at":"2026-03-20T04:39:35Z","updated_at":"2026-03-20T04:39:57Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc3/napari-0.7.0rc3-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377702187","id":377702187,"node_id":"RA_kwDOCJ0aI84Wg0cr","name":"napari-0.7.0rc3-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3490086,"digest":"sha256:89b5edfd46cab959a6993c0e7b4bad0a7635eda0d0aed6208add7b8d947ffe8c","download_count":3,"created_at":"2026-03-20T04:34:02Z","updated_at":"2026-03-20T04:34:02Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc3/napari-0.7.0rc3-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377702186","id":377702186,"node_id":"RA_kwDOCJ0aI84Wg0cq","name":"napari-0.7.0rc3.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":3104028,"digest":"sha256:1a8c77c027a7131a1f03346436b8ab0922ffa5fd7711f85b5279d356428ca1ca","download_count":3,"created_at":"2026-03-20T04:34:02Z","updated_at":"2026-03-20T04:34:02Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc3/napari-0.7.0rc3.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.0rc3","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.0rc3","body":"# napari 0.7.0\n⚠️ *Note: these release notes are still in draft while 0.7.0 is in release candidate testing.* ⚠️\n\n*Fri, Mar 20, 2026*\n\nWe're happy to announce the release of napari 0.7.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Breaking Changes\n\n#### Transition to npe2 plugin engine 🔌\n\nIn 0.6.0 we began the process of deprecating npe1 (napari-plugin-engine).\nIn all 0.6.x releases, npe1 plugins were automatically converted to npe2 by default,\nand users could turn off the `use_npe2_adaptor` setting to continue using npe1 plugins\nwithout auto-conversion.\n\nIn 0.7.0 this setting is being removed ([PR #8448](https://github.com/napari/napari/pull/8448)),\nand plugins will *only* continue to function if\nthey can be auto-converted to npe2. Most plugins will be unaffected, but those that rely\non import-time behaviour may not work as expected. If a plugin is relying on import-time\nbehaviour, it may be able to replicate this using the new startup scripts functionality added\nin 0.6.5 ([#8188](https://github.com/napari/napari/pull/8188)).\n\nIf you encounter conversion issues in a plugin you rely on, please contact the\nplugin authors to encourage them to migrate their plugin to the npe2 system.\n\nThis change has been a long time coming, and it's allowed us to remove thousands\nof lines of tangled and confusing legacy code. Now that we have, it's unleashed\nthe potential for massive improvements to file opening and saving in `napari`,\nand exciting new features for our plugin infrastructure. Stay tuned!\n\nFor more details on this change and how it affects plugins, see the [detailed\nguide](adapted-plugin-guide). If you are a plugin author and your plugin is not\nyet npe2-compatible, please see our [npe2 migration\nguide](npe2-migration-guide), and, if you encounter any issues, get in touch in\nour [Plugins Zulip chat\nchannel](https://napari.zulipchat.com/#narrow/channel/309872-plugins) or by\ncoming to one of our [community meetings](meeting-schedule).\n\n#### Negative axis labels? A real positive\n\nIf you've ever loaded data of mixed dimensionality in napari, like a TYX volume\nalongside a YX segmentation, you may have noticed the default axis labels didn't\nquite line up:\n\n| axes   | 0 | 1 | 2 |\n|--------|---|---|---|\n| volume | 0 | 1 | 2 |\n| segmt  |   | 0 | 1 |\n\nThat's because napari used 0-based indexing for its viewer axis labels, which breaks\ndown when layers have different numbers of dimensions. With\n[#8565](https://github.com/napari/napari/pull/8565),\nviewer axis labels now use negative indexing by default, combining Python's negative indexing\nsemantics with NumPy's array broadcasting semantics. The last axis is always `-1`,\nthe second-to-last is always `-2`, and so on:\n\n| axes   | 0  | 1  | 2  |\n|--------|----|----|----|\n| volume | -3 | -2 | -1 |\n| segmt  |    | -2 | -1 |\n\nThis means axis labels stay consistent as you add or remove layers of different\ndimensionality -- axis `-1` is always your last axis. This also fixes\na long-standing bug where axis labels could end up duplicated when mixing layers of\ndifferent dimensionality ([#6569](https://github.com/napari/napari/issues/6569)).\n\nYou'll notice this change in the dims slider labels, the axis overlay, and the dims\npopup widget. If you already label your axes with your own names (e.g. `z`, `y`, `x`),\nnothing's changed. For everyone else, we have consistency at last!\n\n\n#### What's in an angle? The truth! Fixed camera angles 🎥\n\nIf you've ever set up the camera to take that perfect publication-worthy photo of\nyour data (and taken the time to query the camera angles), you may have noticed they seemed... off.\nThat's because they were! Very... off. This was due to a long-standing bug in how we calculated our\ncamera angles, fueled in part by some arcane vispy axis-swapping tomfoolery, and in part by napari's\nstarting position of `viewer.camera.angles = (0, 0, 90)`.\n\nGood news! With [#8281](https://github.com/napari/napari/pull/8281), angles make sense again. The default camera angles are `(0, 0, 0)`, and they\nmove intuitively -- so `viewer.camera.angles = (10, 0, 0)` actually represents a 10 degree\nrotation around the [-3rd](#negative-axis-labels-a-real-positive) dimension. What a time to be alive!\n\nOld versions of napari:\n\n![Image showing an old version of a napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console.](https://github.com/user-attachments/assets/9ae2040c-36f7-4c4c-8ef8-140202d7ccda)\n\nNew and sane:\n\n![Image showing the 0.7.0 napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console. The layer is rotated 10 degrees in its first dimension](https://github.com/user-attachments/assets/6b972b46-5c3c-439a-8b0a-fe8a293224e5)\n\nAll rotations are now right-handed (counterclockwise when the axis points towards the viewer),\nwith automatic sign-flipping for flipped camera views.\n\nNow for the bad news... After many (and we do [mean](https://github.com/napari/napari/pull/8537)\n[**many**](https://github.com/napari/napari/pull/8557)) attempts, we realized we couldn't\nprovide legacy conversion functions to get you to and from the original camera angles. Therefore,\nthis is a **breaking change**.\n\nIf you had scripts or notebooks setting up angles for screenshots, or if you've got workshop\nmaterials or tutorials with preset angles, they'll need to be updated. Any existing code\nusing `viewer.camera.angles = (z, y, x)` will now produce a different view than before.\n\n#### Limiting `self.events` callbacks\n\nIn [#8672](https://github.com/napari/napari/pull/8672), we changed how we emit events from\nthe parent `self.events` group.\n\nPreviously, connecting a callback to an `EventedModel`'s top-level event group\n(e.g. `model.events.connect(callback)`) would cause that callback to fire multiple times\nwhen a single assignment triggered multiple dependent fields. For example:\n\n```python\nclass MyModel(EventedModel):\n    a: int\n\n    @property\n    def b(self):\n        return self.a * 2\n\n    @b.setter\n    def b(self, value):\n        self.a = value // 2\n\nmodel = MyModel(a=1)\nmodel.events.connect(my_callback)\n\nmodel.a = 4  # previously called my_callback twice (once for 'a', once for 'b')\n             # now calls my_callback once\n```\n\nThe callback connected to `model.events` will now be called exactly once, with the event `type`\nset to the first changed field and `value` set to its new value. Callbacks connected to specific\nfield events (e.g. `model.events.a.connect(...)`) are unaffected and continue to work as before.\n\nIf you connect to `model.events` directly and relied on receiving one call per dependent field\nchange, you will need to connect to the individual field events instead.\n\n### New features & widgets\n\n#### What's my metadata? Where's my metadata? `napari-metadata` to the rescue\n\nWith a lot of work from our community contributor, Carlos Mario Rodriguez Reza\n(https://github.com/carlosmariorr), and\nour venerable community manager Tim Monko (https://github.com/timmonko),\n`napari` now has a metadata viewing and editing plugin\nincluded in our `napari[all]` installation and our bundle ([PR #8576](https://github.com/napari/napari/pull/8576)).\n\n![Screenshot of napari displaying an image of neurons, with the napari-metadata Layer Metadata widget across the bottom of the viewer.](https://raw.githubusercontent.com/napari/napari-metadata/main/docs/images/horizontal-widget.png)\n\nOpen the `Layer metadata` widget from the `Plugins` menu and you can view File information, and view and edit Axes metadata such as\naxis labels, translation and scale! You can also use the widget to copy specified metadata across to other layers.\n\nCheck out the [README](https://github.com/napari/napari-metadata) for some usage documentation, and feel\nfree to open an issue to request new features -- we're actively improving this plugin so, more to come!\n\n#### (Layer) Features galore\n\nPrior to 0.7.0, our Features table widget only supported showing individual selected layer features.\n\nWith [#8189](https://github.com/napari/napari/pull/8189), courtesy of Marcelo Zoccoler\n(https://github.com/zoccoler), the widget will display\nfeatures of all selected layers! The layer's name is displayed in an additional column, so you\nalways know what you're looking at, and you can choose to display only the shared feature columns\nacross all layers. Pretty slick!\n\n![GIF displaying the usage of the features table with multiple selected layers.](https://github.com/user-attachments/assets/e06fd403-ed03-4edd-9192-a4e287d25ff7)\n\n#### Smarter new layer buttons - inheriting from selected layers\n\nPrior to 0.7.0, creating a new layer Points, Shapes or Labels layer would give you a layer\nwith extent and dimensionality equal to the union of all currently open layers, and with\nnone of the other spatial information (scale, units, etc.) inherited.\n\nNow, with [#8357](https://github.com/napari/napari/pull/8357) and [#8702](https://github.com/napari/napari/pull/8702)\nyou can create new Shapes, Points or Labels layer that inherits from a selected layer\n(or a combination of selected layers).\n\n##### Shapes & Points\n\nIf you have one layer selected, your new `Shapes` or `Points` layer will copy\nall spatial information from its ancestor, ready for annotating!\nIf you have multiple layers selected, only scale is copied.\n\nIf you wish to recover the original behavior, select all existing layers before creating your new layer.\nDeselecting all layers gives you a layer with only the number of dimensions inherited,\nand no other properties.\n\n##### Labels\n\n`Labels` layers inherit all spatial information when a single `Image` or `Labels` layer is selected.\nWhen multiple `Image` or `Labels` layers are selected, or the selection includes any combination of\nother layer types, the new `Labels` layer will span their extent -- take note, this layer could be\nhuge!\n\nThe `Labels` button is disabled when layers are present in the viewer and none are selected.\n(You can still create a (512 x 512) `Labels` layer when there are no layers present).\n\n##### Visual cues\n\n[#8768](https://github.com/napari/napari/pull/8768) ensures this change is not invisible!\nWhen your selection will result in full inheritance of spatial information for the new layer,\nthe new layer buttons will be highlighted.\nThe highlight color will become dimmer when your selection will result in the new layer only\ninheriting the extent of your existing selection. If you're lost\nin the inheritance madness, you can also hover over the buttons to get details about the behavior.\n\n![GIF displaying the highlights on the Shapes, Points and Labels new layer buttons when one or more layers are selected in the layerlist](https://github.com/user-attachments/assets/17361e45-dbca-4770-be11-d74c882eedb5)\n\nPS -- You can now also create these new layers from the `File -> New Layer` menu!\n\n#### Better text overalys 🔡\n\nWith [#8236](https://github.com/napari/napari/pull/8236), we've not only refactored text overlays\nso they're easier to implement, but we've also introduced two new long-requested overlays:\nthe layer name overlay, and an overlay for the current slice. Together, they make generating\npublication-ready figures much easier!\n\n![Image showing the napari viewer with two layers in grid mode. Each layer has its name displayed in the top left, and the current slice displayed in the bottom right.](https://github.com/user-attachments/assets/3c96b38d-44c1-432b-b294-aa9c0934a553)\n\nTry it yourself:\n\n```python\nimport napari\nv = napari.Viewer()\nv.grid.enabled = True\nll = v.open_sample('napari', 'cells3d')\nfor l in ll:\n    l.name_overlay.visible = True\nv.scale_bar.visible = True\nv.scale_bar.gridded = True\nv._overlays['current_slice'].visible = True\nv._overlays['current_slice'].gridded = True\nv.dims.axis_labels = ['z', 'y', 'x']\n```\n\n**Note**: the `v._overlays` attribute is still private as we're working out the best API.\n\n### Rendering & display\n\n#### More pixels to play with - texture tiling\n\nEver loaded a large 2D image in napari just to zoom in and feel like you're not\nreally getting a lot of bang for your pixel bucks? That's because we were\ndownsampling images that were too large to send the whole thing to the GPU.\n\nCourtesy of Guillaume Witz (https://github.com/guiwitz), and his PR for\ntexture tiling ([PR #8395](https://github.com/napari/napari/pull/8395)) 2D\nimages that exceed OpenGL's maximum texture size will be split into multiple\ntiles, each small enough to fit on the GPU.\n\n![Image with a screenshot of napari 0.6.6 on the left and napari 0.7.0 on the right displaying a DeCAM image of the Milky Way. The image on the left is pixelated, while the image on the right is displayed at full resolution.](https://github.com/user-attachments/assets/d0a115a8-49d5-432c-b561-f29fe9ac8116)\n\n#### Rendering layers in physical space - units matter!\n\nIn 0.6.6 and below, units were stored in metadata, but not used for rendering.\nAdding two layers that represented the same physical space, but had different\nunits, e.g. a layer with `scale=500, units='nm'` and one with `scale=0.5, units='μm'`\nwouldn't overlap correctly, even though they should.\n\nThanks to [#7889](https://github.com/napari/napari/pull/8395), layers with\ncompatible units (i.e. those that share the same physical dimension per axis,\nlike all spatial), will make use of `units` and `scale` to overlap correctly,\nusing the smallest unit as the rendering space.\n\nUnits can also be set globally on the layer list using `viewer.layers.units = ('nm', 'nm')`,\nforcing layers to be rendered in this space. If a new layer is added with more dimensions\nthan the current layers, this global override is dropped with a warning.\n\n#### Points - any size you like 🟣\n\nOn macOS, the points layer has never been able to reach its full potential, as OpenGL\ndrivers limit the size of an individual marker to a certain number of screen pixels.\n\nWith [#8552](https://github.com/napari/napari/pull/8552) and the release of `vispy v0.16`,\nthis long-standing issue has finally been resolved. Across all operating systems, you can\nmake your points as big as you want!\n\nThis change has also propagated to the zoom behaviour on macOS -- points now zoom\nproportionally to the data, rather than staying the same size in screen pixels.\n\nHere's the behaviour pre 0.7.0:\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_066.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_066.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_066.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points stay the same size in screen pixels.\" \n    > \n  </video> \n</figure> \n``` \n\nAnd now:\n\n```{raw} html\n<figure> \n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_070.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_070.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_070.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points scale proportionally to the data.\" \n    > \n  </video> \n</figure> \n```\n\n### Performance\n\n#### Grid mode -- bigger, better, faster 📈\n\nIf you've been playing with our new grid mode since 0.6.5, you\nmay have stumbled into performance issues when progressively adding\nnew layers to the viewer. Stumble no longer! Our grid mode is now wicked fast and buttery smooth 🧈.\n\nWe've also fixed some issues with mouse interactions and deleting\nlayers, so you can tile to your heart's content. Try it out:\n\n```py\nimport napari\n\nviewer = napari.Viewer()\n\n# enable grid with stride 2 to get layers split two-by-two\nviewer.grid.enabled = True\nviewer.grid.stride = 2\n\n# set the scale bar to gridded mode so it appears in each grid box\nviewer.scale_bar.visible = True\nviewer.scale_bar.gridded = True\n\nlayers = viewer.open_sample('napari', 'lily')\n\n# enable color bars\nfor layer in layers:\n    layer.colorbar.visible = True\n```\n\n#### Add & delete layers without delay\n\n[#8479](https://github.com/napari/napari/pull/8479) and [#8443](https://github.com/napari/napari/pull/8443)\nmade a number of improvements to\nour layer and overlay clean-up, addressing a number of issues with large numbers of layers\nin the viewer - adding them, deleting them, and even closing the viewer is now snappy\nand smooth!\n\n#### Shapes layers -- select, zoom, delete, repeat\n\nIf you've ever tried working with thousands of shapes in napari, you'll know\nit could get... painful. Selecting 10,000 shapes with a box took over 50 seconds,\ndeleting 5,000 shapes took over a minute, and zooming with shapes selected\nwould lock up the viewer entirely. Not anymore!\n\n0.7.0 brings a flurry of performance improvements:\n\n- Box selection now uses bounding boxes and vectorized intersection tests,\n  delivering a more than 100x speedup ([#8378](https://github.com/napari/napari/pull/8378)).\n  Selecting 10,000 shapes goes from >50s to ~0.3s.\n- Batch deletion replaces one-by-one removal for another 100x speedup\n  ([#8375](https://github.com/napari/napari/pull/8375))! Deleting 50,000 shapes\n  now takes under half a second.\n- Outline computation is batched and cached, so zooming and panning with\n  selected shapes no longer blocks\n  ([#8403](https://github.com/napari/napari/pull/8403),\n  [#8536](https://github.com/napari/napari/pull/8536)).\n- Highlight updates are throttled for large layers, enabling smooth zoom\n  even with 200,000+ shapes ([#8404](https://github.com/napari/napari/pull/8404)).\n- Mode switching no longer triggers unnecessary redraws, giving another\n  ~3x speedup when many shapes are selected\n  ([#8551](https://github.com/napari/napari/pull/8551)).\n\nBeware: there's still more to do, because drawing and drag-moving large selections\nremain slow!\n\n#### Multiscale -- less to update, more to celebrate\n\nPR [#8678](https://github.com/napari/napari/pull/8678) introduced a small change\nwith a big effect! Now, zooming in (and panning while zoomed in), will only trigger\na data refresh if the multiscale level has changed **or** if the new view falls outside\nof already loaded data.\n\n#### Delete the launch codes -- no more macOS hacks on launch\n\nIn 0.6.6 and below, we had some macOS specific launch code that skirted around some\nissues (which are now no longer relevant), and hackily \"relaunched\" napari to make\nsure the application name was correct.\n\nThis code added up to a whole second to our launch time, as well as being potentially\nproblematic for some users. PR [#8705](https://github.com/napari/napari/pull/8705)\nremoved this code, making our start-up a little less hacky and a little more snappy.\nThe downside is that when launching napari on macOS, the app name may be listed as\nPython, instead of napari. We think the trade-off is worth it.\n\n\n### Infrastructure & dependencies\n\nA couple of notes on big changes in our dependencies:\n\n- With #8509 we improved our support for `pydantic v2`, allowing us to enable support for Python 3.14!\nThis brings us one step closer to fully adopting `psygnal` as our event library.\n- In [#8450](https://github.com/napari/napari/pull/8450) we dropped support for PySide2. If you\nwere using napari with PySide for your Qt bindings, you'll need to upgrade to PySide6. Good news\nis that PySide6 is looking pretty stable, while PySide2 had some compatibility issues with numpy2,\nand had to be built from source for Python 3.11+.\n- In ([#8665](https://github.com/napari/napari/pull/8665)) we updated the default qt\nbinding to PyQt6. PyQt6 will now be installed with `napari[all]` installations. Windows users\nshould see improvements to their display with better support for fractional scaling!\n- In [#8338](https://github.com/napari/napari/pull/8338) we replaced `numpydoc` with `docstring_parser`\nfor parsing our docstrings. This will be a pretty invisible change from a user's perspective, but\nit saves more than 50MB of disk space for a napari install!\n\n## New Features\n\n- Use information about units when calculate scale of layers when render ([#7889](https://github.com/napari/napari/pull/7889))\n- Welcome widget as an overlay ([#8117](https://github.com/napari/napari/pull/8117))\n- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189))\n- Better text overlay (and subclasses) ([#8236](https://github.com/napari/napari/pull/8236))\n- Allow create Shapes and Points per selected Layer ([#8357](https://github.com/napari/napari/pull/8357))\n- Use new logos! ([#8457](https://github.com/napari/napari/pull/8457))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n\n## Improvements\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- Add cell tracking example ([#8051](https://github.com/napari/napari/pull/8051))\n- Add a seed argument to built-in samples with random seeds ([#8317](https://github.com/napari/napari/pull/8317))\n- Enh: clarify Points selection keybinding behavior: select_in_slice not append by default, add new select_append_in_slice ([#8339](https://github.com/napari/napari/pull/8339))\n- Enh: Improve zarr reading by builtins ([#8355](https://github.com/napari/napari/pull/8355))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Reordering default colormap to split channels  ([#8383](https://github.com/napari/napari/pull/8383))\n- change default blending mode of images on split RGB ([#8385](https://github.com/napari/napari/pull/8385))\n- Texture tiling ([#8395](https://github.com/napari/napari/pull/8395))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Set viewer dimension based on number of axis labels ([#8436](https://github.com/napari/napari/pull/8436))\n- Enh: Add label value to the labels tooltip ([#8495](https://github.com/napari/napari/pull/8495))\n- Use 10x10 pixels rect around mouse position to invalidate tooltip ([#8500](https://github.com/napari/napari/pull/8500))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Enable antialiasing on all Lines ([#8515](https://github.com/napari/napari/pull/8515))\n- Avoid materializing property views when updating points highlight ([#8517](https://github.com/napari/napari/pull/8517))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Don't warn user when a Zarr array with channel axis is passed ([#8559](https://github.com/napari/napari/pull/8559))\n- Use negative indexing for viewer dims axis labels ([#8565](https://github.com/napari/napari/pull/8565))\n- Add colorbar & bounding box overlays to Layers menu ([#8611](https://github.com/napari/napari/pull/8611))\n- Add visual for new points/shapes button on selected layers ([#8649](https://github.com/napari/napari/pull/8649))\n- Limit `self.events` callbacks trigger to only once per assignment ([#8672](https://github.com/napari/napari/pull/8672))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- Warn users when features data looks categorical ([#8685](https://github.com/napari/napari/pull/8685))\n- Fix type annotation in viewer keybindings, use QtViewer for console ([#8694](https://github.com/napari/napari/pull/8694))\n- Do not inherit scale for points and shapes if no layer is selected ([#8701](https://github.com/napari/napari/pull/8701))\n- Inherit spatial information for new `Labels` layers when only one other `Labels` or `Image` layer is selected ([#8702](https://github.com/napari/napari/pull/8702))\n- [UI, UX] Make dock widget title bar icons bigger and text more legible ([#8714](https://github.com/napari/napari/pull/8714))\n- Perf, enh: defer dask.array loading by moving import into functions ([#8720](https://github.com/napari/napari/pull/8720))\n- Change look of new layer buttons to mark that there are 3 modes ([#8723](https://github.com/napari/napari/pull/8723))\n- If path arg is passed to CLI napari, don't show welcome overlay ([#8725](https://github.com/napari/napari/pull/8725))\n- UI: Add keybinding for Image layer reset_contrast_limits ([#8730](https://github.com/napari/napari/pull/8730))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n- Use capitalized name of source layer type when adding layer ([#8740](https://github.com/napari/napari/pull/8740))\n- Add scale example for anisotropic 3D data ([#8742](https://github.com/napari/napari/pull/8742))\n- Raise FileNotFoundError early when opening nonexistent paths ([#8747](https://github.com/napari/napari/pull/8747))\n- Ensure that layers are unlinked after deletion from layerlist  ([#8749](https://github.com/napari/napari/pull/8749))\n- Use custom Font manager to use Qt discovery mechanism ([#8751](https://github.com/napari/napari/pull/8751))\n- Restyle new_layer button creation state visuals ([#8768](https://github.com/napari/napari/pull/8768))\n- Disable opacity slider for multiplicative blending ([#8776](https://github.com/napari/napari/pull/8776))\n\n## Performance\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Delay scipy imports until needed ([#8561](https://github.com/napari/napari/pull/8561))\n- Low hanging Labels painting performance improvement ([#8592](https://github.com/napari/napari/pull/8592))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- [Perf] Remove napari splash screen ([#8686](https://github.com/napari/napari/pull/8686))\n- [Maint] Remove all macOS specific launch code as it's out-dated or problematic (re-running with symlink) ([#8705](https://github.com/napari/napari/pull/8705))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n\n## Bug Fixes\n\n- Fix camera angles‽ ([#8281](https://github.com/napari/napari/pull/8281))\n- bugfix & refactor: Use events for shape multiselection ([#8332](https://github.com/napari/napari/pull/8332))\n- Fix conversion of vector images to coordinates of vectors ([#8366](https://github.com/napari/napari/pull/8366))\n- initialize label selection spinbox to a correct value ([#8382](https://github.com/napari/napari/pull/8382))\n- Bugfix: fix erratic Shape sorting ([#8408](https://github.com/napari/napari/pull/8408))\n- bugfix: Ensure that edge_width is accounted for when using polygon lasso ([#8414](https://github.com/napari/napari/pull/8414))\n- Fix Shapes thumbnail z ordering ([#8417](https://github.com/napari/napari/pull/8417))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Bugfix: update magicgui layer combobox if a layer is renamed using LayerList.renamed event ([#8429](https://github.com/napari/napari/pull/8429))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Bugfix: ensure triangle colors are updated properly when using polygon lasso ([#8469](https://github.com/napari/napari/pull/8469))\n- Speed up the deletion of layers by deduplicating the function calls  ([#8479](https://github.com/napari/napari/pull/8479))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Bugfix: recurse through sub-fields when making connections in EventedSettings Config ([#8520](https://github.com/napari/napari/pull/8520))\n- Fix dim order of rendering of 2D rgb data in 3D mode ([#8522](https://github.com/napari/napari/pull/8522))\n- Fix numpy warning for pure python edge triangulation ([#8523](https://github.com/napari/napari/pull/8523))\n- Do not use keyword argument when creating tooltip ([#8528](https://github.com/napari/napari/pull/8528))\n- Fix update of shape that lead to wrong rendering ([#8543](https://github.com/napari/napari/pull/8543))\n- Close proper window on Ctrl+W ([#8548](https://github.com/napari/napari/pull/8548))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Enable instanced markers if available. ([#8552](https://github.com/napari/napari/pull/8552))\n- Do not expose legacy angle ([#8557](https://github.com/napari/napari/pull/8557))\n- Fix test on PySide6 by change mocking of qt methods ([#8560](https://github.com/napari/napari/pull/8560))\n- Account for tile2data in the Labels polygon overlay ([#8563](https://github.com/napari/napari/pull/8563))\n- ensure overlays are reused properly when gridded mode is enabled ([#8569](https://github.com/napari/napari/pull/8569))\n- Stop welcome screen time on hiding of QtWiewer ([#8585](https://github.com/napari/napari/pull/8585))\n- Fix Labels layer controls contiguous checkbox to initialize to the layer state ([#8594](https://github.com/napari/napari/pull/8594))\n- Proper cleanup and reuse of existing overlays ([#8610](https://github.com/napari/napari/pull/8610))\n- [UI] Update the viewer button tooltips to use the new axis labels (-3, -2, -1) ([#8614](https://github.com/napari/napari/pull/8614))\n- Fix scale bar padding ([#8616](https://github.com/napari/napari/pull/8616))\n- Fix empty thumbnail ([#8620](https://github.com/napari/napari/pull/8620))\n- Reverse overlay tiling order ([#8623](https://github.com/napari/napari/pull/8623))\n- Fix welcome screen timer ([#8627](https://github.com/napari/napari/pull/8627))\n- Reinitialize welcome screen shortcuts in a less ugly way ([#8634](https://github.com/napari/napari/pull/8634))\n- Fix empty points tiny point ([#8639](https://github.com/napari/napari/pull/8639))\n- Fix labels of angle order of camera widget ([#8644](https://github.com/napari/napari/pull/8644))\n- Add a opaque background Rectangle to Welcome overlay ([#8645](https://github.com/napari/napari/pull/8645))\n- Do not start welcome widget timer until QtViewer is visible ([#8652](https://github.com/napari/napari/pull/8652))\n- Allow selection in feature table widget with empty features ([#8653](https://github.com/napari/napari/pull/8653))\n- Fix event triggering start of welcome screen ([#8660](https://github.com/napari/napari/pull/8660))\n- Fix `_disconnect_child_emitters` for `PsygnalModel` dict elements ([#8674](https://github.com/napari/napari/pull/8674))\n- Increase minimum version of pyopengl to allow start napari ([#8679](https://github.com/napari/napari/pull/8679))\n- Fix colorbar for int/bool dtypes ([#8684](https://github.com/napari/napari/pull/8684))\n- Correctly hide welcome screen when layers are present ([#8688](https://github.com/napari/napari/pull/8688))\n- Ensure that errors are propagated during async loading ([#8691](https://github.com/napari/napari/pull/8691))\n- Fix assign tuple of None to `layer.units` ([#8700](https://github.com/napari/napari/pull/8700))\n- Fix error raised when `out_of_slice_display = True` and update highlight ([#8717](https://github.com/napari/napari/pull/8717))\n- fix: fix `napari.imshow` return type hint ([#8726](https://github.com/napari/napari/pull/8726))\n- Fix harvesting plugins from CLI ([#8728](https://github.com/napari/napari/pull/8728))\n- Fix `--plugin` startup args ([#8729](https://github.com/napari/napari/pull/8729))\n- Update box and position of text overlay on font size change ([#8759](https://github.com/napari/napari/pull/8759))\n- Fix welcome spacing ([#8760](https://github.com/napari/napari/pull/8760))\n- Fix: Fire world unit updates after removing layer ([#8772](https://github.com/napari/napari/pull/8772))\n- Do not emit warning about units if there is no layer in viewer ([#8779](https://github.com/napari/napari/pull/8779))\n- Fix colorbar box offset ([#8780](https://github.com/napari/napari/pull/8780))\n- Fix: Qt6 font error on Windows when adding layers or widgets ([#8782](https://github.com/napari/napari/pull/8782))\n- Fix: ValidationError in Drag to Zoom with data ndim>2 ([#8784](https://github.com/napari/napari/pull/8784))\n\n## Build Tools\n\n- Bump urllib3 from 2.6.2 to 2.6.3 in /resources ([#8544](https://github.com/napari/napari/pull/8544))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n\n## Documentation\n\n- Add colorbar and overlay tiling example ([#8433](https://github.com/napari/napari/pull/8433))\n- Create 3D_vectors_through_time.py ([#8461](https://github.com/napari/napari/pull/8461))\n- Fix and improve `dock_widgets` docstrings ([#8494](https://github.com/napari/napari/pull/8494))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n- Adding a new example of a multiplexed immunofluorescent image of a murine heart ([#8680](https://github.com/napari/napari/pull/8680))\n- Add sphinxext-rediraffe to docs requirements ([#8690](https://github.com/napari/napari/pull/8690))\n- Update examples gallery for 0.7.0 angles ([#8709](https://github.com/napari/napari/pull/8709))\n- Add 3D points to add_points_3d example ([#8746](https://github.com/napari/napari/pull/8746))\n- Update contributing info and include AI policy and guidelines ([#8754](https://github.com/napari/napari/pull/8754))\n- Fix `image_depth.py` example by setting `blending` to `translucent` ([#8764](https://github.com/napari/napari/pull/8764))\n- Update units rendering example for docs gallery ([#8767](https://github.com/napari/napari/pull/8767))\n- Remove deprecated `view_*` methods from docs materials ([docs#864](https://github.com/napari/docs/pull/864))\n- Proposed roadmap updates for Q3 ([docs#873](https://github.com/napari/docs/pull/873))\n- Enhance documentation build process with pixi integration and Windows… ([docs#876](https://github.com/napari/docs/pull/876))\n- Pixi cross platform support ([docs#879](https://github.com/napari/docs/pull/879))\n- Refactor contributor docs: prioritize pixi for local builds ([docs#880](https://github.com/napari/docs/pull/880))\n- Modernize type annotation to use builtins ([docs#883](https://github.com/napari/docs/pull/883))\n- Update dark mode colors ([docs#884](https://github.com/napari/docs/pull/884))\n- Remove outdated mentions about PySide2 in documentation ([docs#889](https://github.com/napari/docs/pull/889))\n- Explain accessing dock widget wrappers ([docs#892](https://github.com/napari/docs/pull/892))\n- Add v0.7.0 release notes ([docs#893](https://github.com/napari/docs/pull/893))\n- Add npe1 deprecation info to release notes ([docs#894](https://github.com/napari/docs/pull/894))\n- Overwrite pooch downloader to fix Zenodo access problems ([docs#895](https://github.com/napari/docs/pull/895))\n- Update docs ahead of 0.7.0 alpha ([docs#897](https://github.com/napari/docs/pull/897))\n- Update website to use new logos ([docs#901](https://github.com/napari/docs/pull/901))\n- Migrate and update hub customization from wiki to docs ([docs#906](https://github.com/napari/docs/pull/906))\n- Improve open image section ([docs#907](https://github.com/napari/docs/pull/907))\n- Remove mention of outdated plugin from quick start ([docs#908](https://github.com/napari/docs/pull/908))\n- Update governance documentation ([docs#911](https://github.com/napari/docs/pull/911))\n- increase stack size to solve import recursion problem ([docs#912](https://github.com/napari/docs/pull/912))\n- Update display text copy in shapes.md ([docs#914](https://github.com/napari/docs/pull/914))\n- Update release notes for 0.7.0a1 ([docs#915](https://github.com/napari/docs/pull/915))\n- Simplify titles in App installation instructions ([docs#918](https://github.com/napari/docs/pull/918))\n- Remove mention of double click in macOS app instructions ([docs#920](https://github.com/napari/docs/pull/920))\n- Update release notes for 0.7.0a2 ([docs#922](https://github.com/napari/docs/pull/922))\n- Move code for setting recursion limit ([docs#927](https://github.com/napari/docs/pull/927))\n- Update scripts to pydantic v2 ([docs#928](https://github.com/napari/docs/pull/928))\n- Remove npe1-related docs ([docs#929](https://github.com/napari/docs/pull/929))\n- Add intersphinx mapping for pydantic ([docs#930](https://github.com/napari/docs/pull/930))\n- Add policy on LLM contributions based on Zulip's ([docs#932](https://github.com/napari/docs/pull/932))\n- Expand on 0.7.0 highlights ([docs#933](https://github.com/napari/docs/pull/933))\n- Fix camera angles in handedness guide ([docs#940](https://github.com/napari/docs/pull/940))\n- Add guide explaining default axis names ([docs#942](https://github.com/napari/docs/pull/942))\n- Add info about new points/shapes layer button behavior ([docs#943](https://github.com/napari/docs/pull/943))\n- Add final? 0.7.0 highlights and group by topic ([docs#944](https://github.com/napari/docs/pull/944))\n- Add redirects to pages moved in Usage section ([docs#946](https://github.com/napari/docs/pull/946))\n- Fix typo in optional-dependencies ([docs#947](https://github.com/napari/docs/pull/947))\n- Update references to PyQt5 as default backend to PyQt6 ([docs#950](https://github.com/napari/docs/pull/950))\n- Update 0.7.0 highlights for rc0 ([docs#951](https://github.com/napari/docs/pull/951))\n- Restructure homepage and add rotating featured examples ([docs#953](https://github.com/napari/docs/pull/953))\n- Wayland Debug information ([docs#956](https://github.com/napari/docs/pull/956))\n- Update release notes for 0.7.0rc1 ([docs#957](https://github.com/napari/docs/pull/957))\n- Refresh installation guide, with focus on bundled app instructions ([docs#958](https://github.com/napari/docs/pull/958))\n- Update notes for 0.7.0rc2 ([docs#959](https://github.com/napari/docs/pull/959))\n\n## Other Pull Requests\n\n- TYP: overload for `labeled_particles` incorrectly notes `Literal[True]=...` as default for `return_density` ([#8114](https://github.com/napari/napari/pull/8114))\n- Decompose Layer code by move slicing to specialized class ([#8254](https://github.com/napari/napari/pull/8254))\n- Add information about pyside 6 in error information ([#8313](https://github.com/napari/napari/pull/8313))\n- Remove deprecated `napari.view_*` methods ([#8337](https://github.com/napari/napari/pull/8337))\n- [pre-commit.ci] pre-commit autoupdate ([#8354](https://github.com/napari/napari/pull/8354))\n- Remove string translation from PR checklist ([#8362](https://github.com/napari/napari/pull/8362))\n- Use coverage upload from shared workflows ([#8367](https://github.com/napari/napari/pull/8367))\n- Specify napari revision in build and deploy docs workflow ([#8368](https://github.com/napari/napari/pull/8368))\n- [pre-commit.ci] pre-commit autoupdate ([#8369](https://github.com/napari/napari/pull/8369))\n- Update citation file for 0.7.0 ([#8384](https://github.com/napari/napari/pull/8384))\n- [pre-commit.ci] pre-commit autoupdate ([#8386](https://github.com/napari/napari/pull/8386))\n- Add check if PR author is in citation.cff ([#8388](https://github.com/napari/napari/pull/8388))\n- skip check if author in citation.cff if bot created  PR ([#8392](https://github.com/napari/napari/pull/8392))\n- Explicitly turn on full checkout for CircleCI ([#8396](https://github.com/napari/napari/pull/8396))\n- Fix cff check for bots ([#8420](https://github.com/napari/napari/pull/8420))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `imageio`, `ipython`, `matplotlib`, `numpy`, `pandas`, `pillow`, `pint`, `psutil`, `psygnal`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `pytest-rerunfailures`, `pyyaml`, `rich`, `scipy`, `tensorstore`, `tifffile`, `toolz`, `virtualenv`, `wrapt`, `xarray` ([#8441](https://github.com/napari/napari/pull/8441))\n- [pre-commit.ci] pre-commit autoupdate ([#8442](https://github.com/napari/napari/pull/8442))\n- Stop updating python 3.10 docs constraints ([#8444](https://github.com/napari/napari/pull/8444))\n- Block problematic numba in docs constraints ([#8454](https://github.com/napari/napari/pull/8454))\n- Change link to getting started in Help menu ([#8455](https://github.com/napari/napari/pull/8455))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `tensorstore`, `tifffile`, `xarray` ([#8456](https://github.com/napari/napari/pull/8456))\n- [pre-commit.ci] pre-commit autoupdate ([#8458](https://github.com/napari/napari/pull/8458))\n- ci(dependabot): bump the actions group across 1 directory with 7 updates ([#8460](https://github.com/napari/napari/pull/8460))\n- Finish typing napari.layers.image ([#8462](https://github.com/napari/napari/pull/8462))\n- Bugfix: For FeatureTable `edit` test, check the QAbstractItemView.State and not isPersistentEditorOpen ([#8463](https://github.com/napari/napari/pull/8463))\n- Move Ashley Anderson citation to core team section ([#8467](https://github.com/napari/napari/pull/8467))\n- Change `exclude` to `extend-exclude` in ruff config ([#8468](https://github.com/napari/napari/pull/8468))\n- Maint: Update test_prereleases.yml to also test on pyside6 ([#8470](https://github.com/napari/napari/pull/8470))\n- Fix constraints upgrade scripts ([#8473](https://github.com/napari/napari/pull/8473))\n- Fix coverage upload in comprehensive tests ([#8474](https://github.com/napari/napari/pull/8474))\n- Remove building of npe1 menu items for Plugins and Sample menus ([#8476](https://github.com/napari/napari/pull/8476))\n- First emit warning, then replace projection mode when convert image to labels ([#8481](https://github.com/napari/napari/pull/8481))\n- Finish typing utils.progress ([#8485](https://github.com/napari/napari/pull/8485))\n- Maint: Update test_prereleases.yml to bump retries to 3 ([#8488](https://github.com/napari/napari/pull/8488))\n- Block numba 0.62.0 for docs constraints ([#8490](https://github.com/napari/napari/pull/8490))\n- [pre-commit.ci] pre-commit autoupdate ([#8491](https://github.com/napari/napari/pull/8491))\n- [pre-commit.ci] pre-commit autoupdate ([#8499](https://github.com/napari/napari/pull/8499))\n- Test on macos-15-intel without numba ([#8503](https://github.com/napari/napari/pull/8503))\n- Move constraints calculation to script, allow upgrade subset of packages ([#8505](https://github.com/napari/napari/pull/8505))\n- Workaround for Zenodo outage by downloading data from google drive.  ([#8508](https://github.com/napari/napari/pull/8508))\n- Migrate EventedModel to pydantic v2 and overlays to psygnal to support python 3.14  ([#8509](https://github.com/napari/napari/pull/8509))\n- Fix overlay tests ([#8513](https://github.com/napari/napari/pull/8513))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `jsonschema`, `pandas`, `pillow`, `psutil`, `psygnal`, `pyqt6`, `scikit-image`, `scipy`, `superqt`, `tifffile`, `virtualenv` ([#8518](https://github.com/napari/napari/pull/8518))\n- [pre-commit.ci] pre-commit autoupdate ([#8519](https://github.com/napari/napari/pull/8519))\n- Reduce noise in benchmark logs ([#8525](https://github.com/napari/napari/pull/8525))\n- Improve language in Citation PR Author check ([#8526](https://github.com/napari/napari/pull/8526))\n- ci(dependabot): bump the actions group with 4 updates ([#8533](https://github.com/napari/napari/pull/8533))\n- Remove `npe1` settings and theme loading ([#8540](https://github.com/napari/napari/pull/8540))\n- Enforce unix line endings ([#8541](https://github.com/napari/napari/pull/8541))\n- Add temporary tox plugin for fix installation of dependency groups ([#8545](https://github.com/napari/napari/pull/8545))\n- Revert: Add temporary tox plugin for fix installation of dependency groups (#8545) ([#8546](https://github.com/napari/napari/pull/8546))\n- Fix typing in layers.points and layers.labels utilities ([#8549](https://github.com/napari/napari/pull/8549))\n- Fix path to constraints update script  ([#8553](https://github.com/napari/napari/pull/8553))\n- [pre-commit.ci] pre-commit autoupdate ([#8554](https://github.com/napari/napari/pull/8554))\n- Stop using `get_settings` during import time ([#8556](https://github.com/napari/napari/pull/8556))\n- Remove 'axis' prefix from layer axis labels ([#8566](https://github.com/napari/napari/pull/8566))\n- [pre-commit.ci] pre-commit autoupdate ([#8571](https://github.com/napari/napari/pull/8571))\n- Remove npe1 code for reading and writing ([#8579](https://github.com/napari/napari/pull/8579))\n- Fix build constraints with circular napari dependency ([#8588](https://github.com/napari/napari/pull/8588))\n- Modify sphinx-external-toc version constraint to eliminate warnings ([#8591](https://github.com/napari/napari/pull/8591))\n- Switch logo URL used for reader test ([#8596](https://github.com/napari/napari/pull/8596))\n- Update `coverage`, `hypothesis`, `rich` ([#8597](https://github.com/napari/napari/pull/8597))\n- Move comment trigger of constraints update to a separate workflow ([#8600](https://github.com/napari/napari/pull/8600))\n- Fix running benchmarks by label by fix condition ([#8601](https://github.com/napari/napari/pull/8601))\n- [pre-commit.ci] pre-commit autoupdate ([#8602](https://github.com/napari/napari/pull/8602))\n- ci(dependabot): bump the actions group with 5 updates ([#8613](https://github.com/napari/napari/pull/8613))\n- Update `babel`, `dask`, `hypothesis`, `pooch`, `psutil`, `rich`, `tifffile`, `tqdm`, `wrapt`, `xarray` ([#8615](https://github.com/napari/napari/pull/8615))\n- Postpone QtViewer deprecation to 0.8.0 ([#8617](https://github.com/napari/napari/pull/8617))\n- Remove settings call on import in qt_event_loop ([#8619](https://github.com/napari/napari/pull/8619))\n- Remove remaining `npe1` usage ([#8622](https://github.com/napari/napari/pull/8622))\n- Add `uv.lock` and leak graphs to gitignore ([#8637](https://github.com/napari/napari/pull/8637))\n- Fix pint warning about deprecation of getitem ([#8638](https://github.com/napari/napari/pull/8638))\n- Update `coverage`, `fsspec`, `hypothesis`, `ipython`, `pillow`, `pyside6`, `qtconsole`, `tensorstore`, `tqdm`, `wrapt`, `xarray` ([#8641](https://github.com/napari/napari/pull/8641))\n- Bump superqt to 0.7.8 ([#8646](https://github.com/napari/napari/pull/8646))\n- Bump napari plugin manager ([#8647](https://github.com/napari/napari/pull/8647))\n- Add/unify background box for canvas overlays ([#8654](https://github.com/napari/napari/pull/8654))\n- [pre-commit.ci] pre-commit autoupdate ([#8655](https://github.com/napari/napari/pull/8655))\n- Upload triangulation artifacts if benchmarks fails ([#8664](https://github.com/napari/napari/pull/8664))\n- Maint: Have triangle only on py313 and lower ([#8668](https://github.com/napari/napari/pull/8668))\n- Update `pydantic-settings`, `tifffile` ([#8671](https://github.com/napari/napari/pull/8671))\n- [pre-commit.ci] pre-commit autoupdate ([#8675](https://github.com/napari/napari/pull/8675))\n- Add pregenerated data to stabilize shapes triangulation benchmarks ([#8676](https://github.com/napari/napari/pull/8676))\n- Update `hypothesis`, `numpy`, `pandas`, `pydantic-settings`, `rich`, `scipy`, `tifffile`, `virtualenv` ([#8692](https://github.com/napari/napari/pull/8692))\n- Add python 3.14 classifier to project metadata ([#8693](https://github.com/napari/napari/pull/8693))\n- [pre-commit.ci] pre-commit autoupdate ([#8697](https://github.com/napari/napari/pull/8697))\n- ci(dependabot): bump the actions group with 3 updates ([#8713](https://github.com/napari/napari/pull/8713))\n- Update `certifi`, `tifffile`, `virtualenv` ([#8716](https://github.com/napari/napari/pull/8716))\n- Update pyqt5 default references to pyqt6 ([#8732](https://github.com/napari/napari/pull/8732))\n- Remove usage of `partial` from `qt_viewer_buttons` ([#8741](https://github.com/napari/napari/pull/8741))\n- Update `numpy`, `superqt`, `tifffile`, `wrapt` ([#8748](https://github.com/napari/napari/pull/8748))\n- [pre-commit.ci] pre-commit autoupdate ([#8753](https://github.com/napari/napari/pull/8753))\n- Update `imageio`, `pydantic-extra-types`, `tensorstore`, `virtualenv` ([#8773](https://github.com/napari/napari/pull/8773))\n- [pre-commit.ci] pre-commit autoupdate ([#8774](https://github.com/napari/napari/pull/8774))\n- Update plugin manager constraint ([#8781](https://github.com/napari/napari/pull/8781))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#856](https://github.com/napari/docs/pull/856))\n- Allow to redeploy docs after merge new commits to main branch ([docs#874](https://github.com/napari/docs/pull/874))\n- Add mdformat to pre-commit config ([docs#878](https://github.com/napari/docs/pull/878))\n- Reorg of the Usage section of the docs ([docs#881](https://github.com/napari/docs/pull/881))\n- Explicitly turn on blobless checkout for CircleCI ([docs#882](https://github.com/napari/docs/pull/882))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#885](https://github.com/napari/docs/pull/885))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#890](https://github.com/napari/docs/pull/890))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#898](https://github.com/napari/docs/pull/898))\n- Allow to use local copy of napari when using pixi ([docs#900](https://github.com/napari/docs/pull/900))\n- Fix pixi tasks for different environments ([docs#904](https://github.com/napari/docs/pull/904))\n- Stop tracking `docs/release/index.md` so that it is ignored ([docs#905](https://github.com/napari/docs/pull/905))\n- Maint Update PIP_CONSTRAINT to UV_CONSTRAINT in config ([docs#909](https://github.com/napari/docs/pull/909))\n- Remove pixi configuration for macos intel ([docs#913](https://github.com/napari/docs/pull/913))\n- Prepare on migration to `sphinxcontrib-mermaid` ([docs#923](https://github.com/napari/docs/pull/923))\n- ci(dependabot): bump the github-actions group with 2 updates ([docs#925](https://github.com/napari/docs/pull/925))\n- ci(dependabot): bump actions/download-artifact from 7.0.0 to 8.0.0 in the github-actions group ([docs#948](https://github.com/napari/docs/pull/948))\n\n\n## 25 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Constantin Aronssohn](https://github.com/napari/napari/commits?author=cnstt) - @cnstt\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Neil Shephard](https://github.com/napari/docs/commits?author=ns-rse) - @ns-rse +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Qin Yu](https://github.com/napari/napari/commits?author=qin-yu) ([docs](https://github.com/napari/docs/commits?author=qin-yu))  - @qin-yu +\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) - @sdiebolt +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Johannes Soltwedel](https://github.com/napari/docs/commits?author=jo-mueller) - @jo-mueller\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/docs/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/299252102/reactions","total_count":1,"+1":0,"-1":0,"laugh":1,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"mentions_count":30},{"url":"https://api.github.com/repos/napari/napari/releases/298907581","assets_url":"https://api.github.com/repos/napari/napari/releases/298907581/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/298907581/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.0rc2","id":298907581,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84R0Pe9","tag_name":"v0.7.0rc2","target_commitish":"ed9027557d530b5b81be610c4e44eb1b580d96b6","name":"0.7.0rc2","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-03-19T11:14:07Z","updated_at":"2026-03-19T11:24:49Z","published_at":"2026-03-19T11:15:38Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/377113558","id":377113558,"node_id":"RA_kwDOCJ0aI84WekvW","name":"napari-0.7.0rc2-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44449,"digest":"sha256:4deba5a3f2ab80f2619a6ea81374863a56eab14f7f2e2f6a192be07ee9a5a0fc","download_count":1,"created_at":"2026-03-19T11:21:46Z","updated_at":"2026-03-19T11:21:46Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc2/napari-0.7.0rc2-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377113309","id":377113309,"node_id":"RA_kwDOCJ0aI84Wekrd","name":"napari-0.7.0rc2-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":575625331,"digest":"sha256:09f9925b623747937082fb8ebf56ea4304e4b251feaebe4e8e0658c0afc537b2","download_count":3,"created_at":"2026-03-19T11:21:21Z","updated_at":"2026-03-19T11:21:45Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc2/napari-0.7.0rc2-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377110350","id":377110350,"node_id":"RA_kwDOCJ0aI84Wej9O","name":"napari-0.7.0rc2-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3489563,"digest":"sha256:baebd07b1101710babaa998a2d195b934aeb4a8be6aef10f038f25abfdf413d8","download_count":3,"created_at":"2026-03-19T11:15:36Z","updated_at":"2026-03-19T11:15:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc2/napari-0.7.0rc2-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377114630","id":377114630,"node_id":"RA_kwDOCJ0aI84WelAG","name":"napari-0.7.0rc2-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":567511592,"digest":"sha256:243d4f875c16ca28e24e9ffb2a59a720ade7e181d8d2d2a271e15da866174f6b","download_count":3,"created_at":"2026-03-19T11:24:24Z","updated_at":"2026-03-19T11:24:48Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc2/napari-0.7.0rc2-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377114808","id":377114808,"node_id":"RA_kwDOCJ0aI84WelC4","name":"napari-0.7.0rc2-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":34229,"digest":"sha256:0790006840a78c67ba7427ef047ae4aad24a9253602bca70b22cfcb9edbfb09d","download_count":1,"created_at":"2026-03-19T11:24:49Z","updated_at":"2026-03-19T11:24:49Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc2/napari-0.7.0rc2-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/377110351","id":377110351,"node_id":"RA_kwDOCJ0aI84Wej9P","name":"napari-0.7.0rc2.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":3103301,"digest":"sha256:7b9bfe4dd66e569c9ee8e35521a59e37faa65f3dccb054dcae0a4836dbd36491","download_count":3,"created_at":"2026-03-19T11:15:36Z","updated_at":"2026-03-19T11:15:37Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc2/napari-0.7.0rc2.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.0rc2","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.0rc2","body":"# napari 0.7.0\n⚠️ *Note: these release notes are still in draft while 0.7.0 is in release candidate testing.* ⚠️\n\n*Fri, Mar 20, 2026*\n\nWe're happy to announce the release of napari 0.7.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Breaking Changes\n\n#### Transition to npe2 plugin engine 🔌\n\nIn 0.6.0 we began the process of deprecating npe1 (napari-plugin-engine).\nIn all 0.6.x releases, npe1 plugins were automatically converted to npe2 by default,\nand users could turn off the `use_npe2_adaptor` setting to continue using npe1 plugins\nwithout auto-conversion.\n\nIn 0.7.0 this setting is being removed ([PR #8448](https://github.com/napari/napari/pull/8448)),\nand plugins will *only* continue to function if\nthey can be auto-converted to npe2. Most plugins will be unaffected, but those that rely\non import-time behaviour may not work as expected. If a plugin is relying on import-time\nbehaviour, it may be able to replicate this using the new startup scripts functionality added\nin 0.6.5 ([#8188](https://github.com/napari/napari/pull/8188)).\n\nIf you encounter conversion issues in a plugin you rely on, please contact the\nplugin authors to encourage them to migrate their plugin to the npe2 system.\n\nThis change has been a long time coming, and it's allowed us to remove thousands\nof lines of tangled and confusing legacy code. Now that we have, it's unleashed\nthe potential for massive improvements to file opening and saving in `napari`,\nand exciting new features for our plugin infrastructure. Stay tuned!\n\nFor more details on this change and how it affects plugins, see the [detailed\nguide](adapted-plugin-guide). If you are a plugin author and your plugin is not\nyet npe2-compatible, please see our [npe2 migration\nguide](npe2-migration-guide), and, if you encounter any issues, get in touch in\nour [Plugins Zulip chat\nchannel](https://napari.zulipchat.com/#narrow/channel/309872-plugins) or by\ncoming to one of our [community meetings](meeting-schedule).\n\n#### Negative axis labels? A real positive\n\nIf you've ever loaded data of mixed dimensionality in napari, like a TYX volume\nalongside a YX segmentation, you may have noticed the default axis labels didn't\nquite line up:\n\n| axes   | 0 | 1 | 2 |\n|--------|---|---|---|\n| volume | 0 | 1 | 2 |\n| segmt  |   | 0 | 1 |\n\nThat's because napari used 0-based indexing for its viewer axis labels, which breaks\ndown when layers have different numbers of dimensions. With\n[#8565](https://github.com/napari/napari/pull/8565),\nviewer axis labels now use negative indexing by default, combining Python's negative indexing\nsemantics with NumPy's array broadcasting semantics. The last axis is always `-1`,\nthe second-to-last is always `-2`, and so on:\n\n| axes   | 0  | 1  | 2  |\n|--------|----|----|----|\n| volume | -3 | -2 | -1 |\n| segmt  |    | -2 | -1 |\n\nThis means axis labels stay consistent as you add or remove layers of different\ndimensionality -- axis `-1` is always your last axis. This also fixes\na long-standing bug where axis labels could end up duplicated when mixing layers of\ndifferent dimensionality ([#6569](https://github.com/napari/napari/issues/6569)).\n\nYou'll notice this change in the dims slider labels, the axis overlay, and the dims\npopup widget. If you already label your axes with your own names (e.g. `z`, `y`, `x`),\nnothing's changed. For everyone else, we have consistency at last!\n\n\n#### What's in an angle? The truth! Fixed camera angles 🎥\n\nIf you've ever set up the camera to take that perfect publication-worthy photo of\nyour data (and taken the time to query the camera angles), you may have noticed they seemed... off.\nThat's because they were! Very... off. This was due to a long-standing bug in how we calculated our\ncamera angles, fueled in part by some arcane vispy axis-swapping tomfoolery, and in part by napari's\nstarting position of `viewer.camera.angles = (0, 0, 90)`.\n\nGood news! With [#8281](https://github.com/napari/napari/pull/8281), angles make sense again. The default camera angles are `(0, 0, 0)`, and they\nmove intuitively -- so `viewer.camera.angles = (10, 0, 0)` actually represents a 10 degree\nrotation around the [-3rd](#negative-axis-labels-a-real-positive) dimension. What a time to be alive!\n\nOld versions of napari:\n\n![Image showing an old version of a napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console.](https://github.com/user-attachments/assets/9ae2040c-36f7-4c4c-8ef8-140202d7ccda)\n\nNew and sane:\n\n![Image showing the 0.7.0 napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console. The layer is rotated 10 degrees in its first dimension](https://github.com/user-attachments/assets/6b972b46-5c3c-439a-8b0a-fe8a293224e5)\n\nAll rotations are now right-handed (counterclockwise when the axis points towards the viewer),\nwith automatic sign-flipping for flipped camera views.\n\nNow for the bad news... After many (and we do [mean](https://github.com/napari/napari/pull/8537)\n[**many**](https://github.com/napari/napari/pull/8557)) attempts, we realized we couldn't\nprovide legacy conversion functions to get you to and from the original camera angles. Therefore,\nthis is a **breaking change**.\n\nIf you had scripts or notebooks setting up angles for screenshots, or if you've got workshop\nmaterials or tutorials with preset angles, they'll need to be updated. Any existing code\nusing `viewer.camera.angles = (z, y, x)` will now produce a different view than before.\n\n#### Limiting `self.events` callbacks\n\nIn [#8672](https://github.com/napari/napari/pull/8672), we changed how we emit events from\nthe parent `self.events` group.\n\nPreviously, connecting a callback to an `EventedModel`'s top-level event group\n(e.g. `model.events.connect(callback)`) would cause that callback to fire multiple times\nwhen a single assignment triggered multiple dependent fields. For example:\n\n```python\nclass MyModel(EventedModel):\n    a: int\n\n    @property\n    def b(self):\n        return self.a * 2\n\n    @b.setter\n    def b(self, value):\n        self.a = value // 2\n\nmodel = MyModel(a=1)\nmodel.events.connect(my_callback)\n\nmodel.a = 4  # previously called my_callback twice (once for 'a', once for 'b')\n             # now calls my_callback once\n```\n\nThe callback connected to `model.events` will now be called exactly once, with the event `type`\nset to the first changed field and `value` set to its new value. Callbacks connected to specific\nfield events (e.g. `model.events.a.connect(...)`) are unaffected and continue to work as before.\n\nIf you connect to `model.events` directly and relied on receiving one call per dependent field\nchange, you will need to connect to the individual field events instead.\n\n### New features & widgets\n\n#### What's my metadata? Where's my metadata? `napari-metadata` to the rescue\n\nWith a lot of work from our community contributor, Carlos Mario Rodriguez Reza\n(https://github.com/carlosmariorr), and\nour venerable community manager Tim Monko (https://github.com/timmonko),\n`napari` now has a metadata viewing and editing plugin\nincluded in our `napari[all]` installation and our bundle ([PR #8576](https://github.com/napari/napari/pull/8576)).\n\n![Screenshot of napari displaying an image of neurons, with the napari-metadata Layer Metadata widget across the bottom of the viewer.](https://raw.githubusercontent.com/napari/napari-metadata/main/docs/images/horizontal-widget.png)\n\nOpen the `Layer metadata` widget from the `Plugins` menu and you can view File information, and view and edit Axes metadata such as\naxis labels, translation and scale! You can also use the widget to copy specified metadata across to other layers.\n\nCheck out the [README](https://github.com/napari/napari-metadata) for some usage documentation, and feel\nfree to open an issue to request new features -- we're actively improving this plugin so, more to come!\n\n#### (Layer) Features galore\n\nPrior to 0.7.0, our Features table widget only supported showing individual selected layer features.\n\nWith [#8189](https://github.com/napari/napari/pull/8189), courtesy of Marcelo Zoccoler\n(https://github.com/zoccoler), the widget will display\nfeatures of all selected layers! The layer's name is displayed in an additional column, so you\nalways know what you're looking at, and you can choose to display only the shared feature columns\nacross all layers. Pretty slick!\n\n![GIF displaying the usage of the features table with multiple selected layers.](https://github.com/user-attachments/assets/e06fd403-ed03-4edd-9192-a4e287d25ff7)\n\n#### Smarter new layer buttons - inheriting from selected layers\n\nPrior to 0.7.0, creating a new layer Points, Shapes or Labels layer would give you a layer\nwith extent and dimensionality equal to the union of all currently open layers, and with\nnone of the other spatial information (scale, units, etc.) inherited.\n\nNow, with [#8357](https://github.com/napari/napari/pull/8357) and [#8702](https://github.com/napari/napari/pull/8702)\nyou can create new Shapes, Points or Labels layer that inherits from a selected layer\n(or a combination of selected layers).\n\n##### Shapes & Points\n\nIf you have one layer selected, your new `Shapes` or `Points` layer will copy\nall spatial information from its ancestor, ready for annotating!\nIf you have multiple layers selected, only scale is copied.\n\nIf you wish to recover the original behavior, select all existing layers before creating your new layer.\nDeselecting all layers gives you a layer with only the number of dimensions inherited,\nand no other properties.\n\n##### Labels\n\n`Labels` layers inherit all spatial information when a single `Image` or `Labels` layer is selected.\nWhen multiple `Image` or `Labels` layers are selected, or the selection includes any combination of\nother layer types, the new `Labels` layer will span their extent -- take note, this layer could be\nhuge!\n\nThe `Labels` button is disabled when layers are present in the viewer and none are selected.\n(You can still create a (512 x 512) `Labels` layer when there are no layers present).\n\n##### Visual cues\n\n[#8768](https://github.com/napari/napari/pull/8768) ensures this change is not invisible!\nWhen your selection will result in full inheritance of spatial information for the new layer,\nthe new layer buttons will be highlighted.\nThe highlight color will become dimmer when your selection will result in the new layer only\ninheriting the extent of your existing selection. If you're lost\nin the inheritance madness, you can also hover over the buttons to get details about the behavior.\n\n![GIF displaying the highlights on the Shapes, Points and Labels new layer buttons when one or more layers are selected in the layerlist](https://github.com/user-attachments/assets/17361e45-dbca-4770-be11-d74c882eedb5)\n\nPS -- You can now also create these new layers from the `File -> New Layer` menu!\n\n#### Better text overalys 🔡\n\nWith [#8236](https://github.com/napari/napari/pull/8236), we've not only refactored text overlays\nso they're easier to implement, but we've also introduced two new long-requested overlays:\nthe layer name overlay, and an overlay for the current slice. Together, they make generating\npublication-ready figures much easier!\n\n![Image showing the napari viewer with two layers in grid mode. Each layer has its name displayed in the top left, and the current slice displayed in the bottom right.](https://github.com/user-attachments/assets/3c96b38d-44c1-432b-b294-aa9c0934a553)\n\nTry it yourself:\n\n```python\nimport napari\nv = napari.Viewer()\nv.grid.enabled = True\nll = v.open_sample('napari', 'cells3d')\nfor l in ll:\n    l.name_overlay.visible = True\nv.scale_bar.visible = True\nv.scale_bar.gridded = True\nv._overlays['current_slice'].visible = True\nv._overlays['current_slice'].gridded = True\nv.dims.axis_labels = ['z', 'y', 'x']\n```\n\n**Note**: the `v._overlays` attribute is still private as we're working out the best API.\n\n### Rendering & display\n\n#### More pixels to play with - texture tiling\n\nEver loaded a large 2D image in napari just to zoom in and feel like you're not\nreally getting a lot of bang for your pixel bucks? That's because we were\ndownsampling images that were too large to send the whole thing to the GPU.\n\nCourtesy of Guillaume Witz (https://github.com/guiwitz), and his PR for\ntexture tiling ([PR #8395](https://github.com/napari/napari/pull/8395)) 2D\nimages that exceed OpenGL's maximum texture size will be split into multiple\ntiles, each small enough to fit on the GPU.\n\n![Image with a screenshot of napari 0.6.6 on the left and napari 0.7.0 on the right displaying a DeCAM image of the Milky Way. The image on the left is pixelated, while the image on the right is displayed at full resolution.](https://github.com/user-attachments/assets/d0a115a8-49d5-432c-b561-f29fe9ac8116)\n\n#### Rendering layers in physical space - units matter!\n\nIn 0.6.6 and below, units were stored in metadata, but not used for rendering.\nAdding two layers that represented the same physical space, but had different\nunits, e.g. a layer with `scale=500, units='nm'` and one with `scale=0.5, units='μm'`\nwouldn't overlap correctly, even though they should.\n\nThanks to [#7889](https://github.com/napari/napari/pull/8395), layers with\ncompatible units (i.e. those that share the same physical dimension per axis,\nlike all spatial), will make use of `units` and `scale` to overlap correctly,\nusing the smallest unit as the rendering space.\n\nUnits can also be set globally on the layer list using `viewer.layers.units = ('nm', 'nm')`,\nforcing layers to be rendered in this space. If a new layer is added with more dimensions\nthan the current layers, this global override is dropped with a warning.\n\n#### Points - any size you like 🟣\n\nOn macOS, the points layer has never been able to reach its full potential, as OpenGL\ndrivers limit the size of an individual marker to a certain number of screen pixels.\n\nWith [#8552](https://github.com/napari/napari/pull/8552) and the release of `vispy v0.16`,\nthis long-standing issue has finally been resolved. Across all operating systems, you can\nmake your points as big as you want!\n\nThis change has also propagated to the zoom behaviour on macOS -- points now zoom\nproportionally to the data, rather than staying the same size in screen pixels.\n\nHere's the behaviour pre 0.7.0:\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_066.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_066.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_066.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points stay the same size in screen pixels.\" \n    > \n  </video> \n</figure> \n``` \n\nAnd now:\n\n```{raw} html\n<figure> \n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_070.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_070.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_070.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points scale proportionally to the data.\" \n    > \n  </video> \n</figure> \n```\n\n### Performance\n\n#### Grid mode -- bigger, better, faster 📈\n\nIf you've been playing with our new grid mode since 0.6.5, you\nmay have stumbled into performance issues when progressively adding\nnew layers to the viewer. Stumble no longer! Our grid mode is now wicked fast and buttery smooth 🧈.\n\nWe've also fixed some issues with mouse interactions and deleting\nlayers, so you can tile to your heart's content. Try it out:\n\n```py\nimport napari\n\nviewer = napari.Viewer()\n\n# enable grid with stride 2 to get layers split two-by-two\nviewer.grid.enabled = True\nviewer.grid.stride = 2\n\n# set the scale bar to gridded mode so it appears in each grid box\nviewer.scale_bar.visible = True\nviewer.scale_bar.gridded = True\n\nlayers = viewer.open_sample('napari', 'lily')\n\n# enable color bars\nfor layer in layers:\n    layer.colorbar.visible = True\n```\n\n#### Add & delete layers without delay\n\n[#8479](https://github.com/napari/napari/pull/8479) and [#8443](https://github.com/napari/napari/pull/8443)\nmade a number of improvements to\nour layer and overlay clean-up, addressing a number of issues with large numbers of layers\nin the viewer - adding them, deleting them, and even closing the viewer is now snappy\nand smooth!\n\n#### Shapes layers -- select, zoom, delete, repeat\n\nIf you've ever tried working with thousands of shapes in napari, you'll know\nit could get... painful. Selecting 10,000 shapes with a box took over 50 seconds,\ndeleting 5,000 shapes took over a minute, and zooming with shapes selected\nwould lock up the viewer entirely. Not anymore!\n\n0.7.0 brings a flurry of performance improvements:\n\n- Box selection now uses bounding boxes and vectorized intersection tests,\n  delivering a more than 100x speedup ([#8378](https://github.com/napari/napari/pull/8378)).\n  Selecting 10,000 shapes goes from >50s to ~0.3s.\n- Batch deletion replaces one-by-one removal for another 100x speedup\n  ([#8375](https://github.com/napari/napari/pull/8375))! Deleting 50,000 shapes\n  now takes under half a second.\n- Outline computation is batched and cached, so zooming and panning with\n  selected shapes no longer blocks\n  ([#8403](https://github.com/napari/napari/pull/8403),\n  [#8536](https://github.com/napari/napari/pull/8536)).\n- Highlight updates are throttled for large layers, enabling smooth zoom\n  even with 200,000+ shapes ([#8404](https://github.com/napari/napari/pull/8404)).\n- Mode switching no longer triggers unnecessary redraws, giving another\n  ~3x speedup when many shapes are selected\n  ([#8551](https://github.com/napari/napari/pull/8551)).\n\nBeware: there's still more to do, because drawing and drag-moving large selections\nremain slow!\n\n#### Multiscale -- less to update, more to celebrate\n\nPR [#8678](https://github.com/napari/napari/pull/8678) introduced a small change\nwith a big effect! Now, zooming in (and panning while zoomed in), will only trigger\na data refresh if the multiscale level has changed **or** if the new view falls outside\nof already loaded data.\n\n#### Delete the launch codes -- no more macOS hacks on launch\n\nIn 0.6.6 and below, we had some macOS specific launch code that skirted around some\nissues (which are now no longer relevant), and hackily \"relaunched\" napari to make\nsure the application name was correct.\n\nThis code added up to a whole second to our launch time, as well as being potentially\nproblematic for some users. PR [#8705](https://github.com/napari/napari/pull/8705)\nremoved this code, making our start-up a little less hacky and a little more snappy.\nThe downside is that when launching napari on macOS, the app name may be listed as\nPython, instead of napari. We think the trade-off is worth it.\n\n\n### Infrastructure & dependencies\n\nA couple of notes on big changes in our dependencies:\n\n- With #8509 we improved our support for `pydantic v2`, allowing us to enable support for Python 3.14!\nThis brings us one step closer to fully adopting `psygnal` as our event library.\n- In [#8450](https://github.com/napari/napari/pull/8450) we dropped support for PySide2. If you\nwere using napari with PySide for your Qt bindings, you'll need to upgrade to PySide6. Good news\nis that PySide6 is looking pretty stable, while PySide2 had some compatibility issues with numpy2,\nand had to be built from source for Python 3.11+.\n- In ([#8665](https://github.com/napari/napari/pull/8665)) we updated the default qt\nbinding to PyQt6. PyQt6 will now be installed with `napari[all]` installations. Windows users\nshould see improvements to their display with better support for fractional scaling!\n- In [#8338](https://github.com/napari/napari/pull/8338) we replaced `numpydoc` with `docstring_parser`\nfor parsing our docstrings. This will be a pretty invisible change from a user's perspective, but\nit saves more than 50MB of disk space for a napari install!\n\n## New Features\n\n- Use information about units when calculate scale of layers when render ([#7889](https://github.com/napari/napari/pull/7889))\n- Welcome widget as an overlay ([#8117](https://github.com/napari/napari/pull/8117))\n- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189))\n- Better text overlay (and subclasses) ([#8236](https://github.com/napari/napari/pull/8236))\n- Allow create Shapes and Points per selected Layer ([#8357](https://github.com/napari/napari/pull/8357))\n- Use new logos! ([#8457](https://github.com/napari/napari/pull/8457))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n\n## Improvements\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- Add cell tracking example ([#8051](https://github.com/napari/napari/pull/8051))\n- Add a seed argument to built-in samples with random seeds ([#8317](https://github.com/napari/napari/pull/8317))\n- Enh: clarify Points selection keybinding behavior: select_in_slice not append by default, add new select_append_in_slice ([#8339](https://github.com/napari/napari/pull/8339))\n- Enh: Improve zarr reading by builtins ([#8355](https://github.com/napari/napari/pull/8355))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Reordering default colormap to split channels  ([#8383](https://github.com/napari/napari/pull/8383))\n- change default blending mode of images on split RGB ([#8385](https://github.com/napari/napari/pull/8385))\n- Texture tiling ([#8395](https://github.com/napari/napari/pull/8395))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Set viewer dimension based on number of axis labels ([#8436](https://github.com/napari/napari/pull/8436))\n- Enh: Add label value to the labels tooltip ([#8495](https://github.com/napari/napari/pull/8495))\n- Use 10x10 pixels rect around mouse position to invalidate tooltip ([#8500](https://github.com/napari/napari/pull/8500))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Enable antialiasing on all Lines ([#8515](https://github.com/napari/napari/pull/8515))\n- Avoid materializing property views when updating points highlight ([#8517](https://github.com/napari/napari/pull/8517))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Don't warn user when a Zarr array with channel axis is passed ([#8559](https://github.com/napari/napari/pull/8559))\n- Use negative indexing for viewer dims axis labels ([#8565](https://github.com/napari/napari/pull/8565))\n- Add colorbar & bounding box overlays to Layers menu ([#8611](https://github.com/napari/napari/pull/8611))\n- Add visual for new points/shapes button on selected layers ([#8649](https://github.com/napari/napari/pull/8649))\n- Limit `self.events` callbacks trigger to only once per assignment ([#8672](https://github.com/napari/napari/pull/8672))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- Warn users when features data looks categorical ([#8685](https://github.com/napari/napari/pull/8685))\n- Fix type annotation in viewer keybindings, use QtViewer for console ([#8694](https://github.com/napari/napari/pull/8694))\n- Do not inherit scale for points and shapes if no layer is selected ([#8701](https://github.com/napari/napari/pull/8701))\n- Inherit spatial information for new `Labels` layers when only one other `Labels` or `Image` layer is selected ([#8702](https://github.com/napari/napari/pull/8702))\n- [UI, UX] Make dock widget title bar icons bigger and text more legible ([#8714](https://github.com/napari/napari/pull/8714))\n- Perf, enh: defer dask.array loading by moving import into functions ([#8720](https://github.com/napari/napari/pull/8720))\n- Change look of new layer buttons to mark that there are 3 modes ([#8723](https://github.com/napari/napari/pull/8723))\n- If path arg is passed to CLI napari, don't show welcome overlay ([#8725](https://github.com/napari/napari/pull/8725))\n- UI: Add keybinding for Image layer reset_contrast_limits ([#8730](https://github.com/napari/napari/pull/8730))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n- Use capitalized name of source layer type when adding layer ([#8740](https://github.com/napari/napari/pull/8740))\n- Add scale example for anisotropic 3D data ([#8742](https://github.com/napari/napari/pull/8742))\n- Raise FileNotFoundError early when opening nonexistent paths ([#8747](https://github.com/napari/napari/pull/8747))\n- Ensure that layers are unlinked after deletion from layerlist  ([#8749](https://github.com/napari/napari/pull/8749))\n- Use custom Font manager to use Qt discovery mechanism ([#8751](https://github.com/napari/napari/pull/8751))\n- Restyle new_layer button creation state visuals ([#8768](https://github.com/napari/napari/pull/8768))\n\n## Performance\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Delay scipy imports until needed ([#8561](https://github.com/napari/napari/pull/8561))\n- Low hanging Labels painting performance improvement ([#8592](https://github.com/napari/napari/pull/8592))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- [Perf] Remove napari splash screen ([#8686](https://github.com/napari/napari/pull/8686))\n- [Maint] Remove all macOS specific launch code as it's out-dated or problematic (re-running with symlink) ([#8705](https://github.com/napari/napari/pull/8705))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n\n## Bug Fixes\n\n- Fix camera angles‽ ([#8281](https://github.com/napari/napari/pull/8281))\n- bugfix & refactor: Use events for shape multiselection ([#8332](https://github.com/napari/napari/pull/8332))\n- Fix conversion of vector images to coordinates of vectors ([#8366](https://github.com/napari/napari/pull/8366))\n- initialize label selection spinbox to a correct value ([#8382](https://github.com/napari/napari/pull/8382))\n- Bugfix: fix erratic Shape sorting ([#8408](https://github.com/napari/napari/pull/8408))\n- bugfix: Ensure that edge_width is accounted for when using polygon lasso ([#8414](https://github.com/napari/napari/pull/8414))\n- Fix Shapes thumbnail z ordering ([#8417](https://github.com/napari/napari/pull/8417))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Bugfix: update magicgui layer combobox if a layer is renamed using LayerList.renamed event ([#8429](https://github.com/napari/napari/pull/8429))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Bugfix: ensure triangle colors are updated properly when using polygon lasso ([#8469](https://github.com/napari/napari/pull/8469))\n- Speed up the deletion of layers by deduplicating the function calls  ([#8479](https://github.com/napari/napari/pull/8479))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Bugfix: recurse through sub-fields when making connections in EventedSettings Config ([#8520](https://github.com/napari/napari/pull/8520))\n- Fix dim order of rendering of 2D rgb data in 3D mode ([#8522](https://github.com/napari/napari/pull/8522))\n- Fix numpy warning for pure python edge triangulation ([#8523](https://github.com/napari/napari/pull/8523))\n- Do not use keyword argument when creating tooltip ([#8528](https://github.com/napari/napari/pull/8528))\n- Fix update of shape that lead to wrong rendering ([#8543](https://github.com/napari/napari/pull/8543))\n- Close proper window on Ctrl+W ([#8548](https://github.com/napari/napari/pull/8548))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Enable instanced markers if available. ([#8552](https://github.com/napari/napari/pull/8552))\n- Do not expose legacy angle ([#8557](https://github.com/napari/napari/pull/8557))\n- Fix test on PySide6 by change mocking of qt methods ([#8560](https://github.com/napari/napari/pull/8560))\n- Account for tile2data in the Labels polygon overlay ([#8563](https://github.com/napari/napari/pull/8563))\n- ensure overlays are reused properly when gridded mode is enabled ([#8569](https://github.com/napari/napari/pull/8569))\n- Stop welcome screen time on hiding of QtWiewer ([#8585](https://github.com/napari/napari/pull/8585))\n- Fix Labels layer controls contiguous checkbox to initialize to the layer state ([#8594](https://github.com/napari/napari/pull/8594))\n- Proper cleanup and reuse of existing overlays ([#8610](https://github.com/napari/napari/pull/8610))\n- [UI] Update the viewer button tooltips to use the new axis labels (-3, -2, -1) ([#8614](https://github.com/napari/napari/pull/8614))\n- Fix scale bar padding ([#8616](https://github.com/napari/napari/pull/8616))\n- Fix empty thumbnail ([#8620](https://github.com/napari/napari/pull/8620))\n- Reverse overlay tiling order ([#8623](https://github.com/napari/napari/pull/8623))\n- Fix welcome screen timer ([#8627](https://github.com/napari/napari/pull/8627))\n- Reinitialize welcome screen shortcuts in a less ugly way ([#8634](https://github.com/napari/napari/pull/8634))\n- Fix empty points tiny point ([#8639](https://github.com/napari/napari/pull/8639))\n- Fix labels of angle order of camera widget ([#8644](https://github.com/napari/napari/pull/8644))\n- Add a opaque background Rectangle to Welcome overlay ([#8645](https://github.com/napari/napari/pull/8645))\n- Do not start welcome widget timer until QtViewer is visible ([#8652](https://github.com/napari/napari/pull/8652))\n- Allow selection in feature table widget with empty features ([#8653](https://github.com/napari/napari/pull/8653))\n- Fix event triggering start of welcome screen ([#8660](https://github.com/napari/napari/pull/8660))\n- Fix `_disconnect_child_emitters` for `PsygnalModel` dict elements ([#8674](https://github.com/napari/napari/pull/8674))\n- Increase minimum version of pyopengl to allow start napari ([#8679](https://github.com/napari/napari/pull/8679))\n- Fix colorbar for int/bool dtypes ([#8684](https://github.com/napari/napari/pull/8684))\n- Correctly hide welcome screen when layers are present ([#8688](https://github.com/napari/napari/pull/8688))\n- Ensure that errors are propagated during async loading ([#8691](https://github.com/napari/napari/pull/8691))\n- Fix assign tuple of None to `layer.units` ([#8700](https://github.com/napari/napari/pull/8700))\n- Fix error raised when `out_of_slice_display = True` and update highlight ([#8717](https://github.com/napari/napari/pull/8717))\n- fix: fix `napari.imshow` return type hint ([#8726](https://github.com/napari/napari/pull/8726))\n- Fix harvesting plugins from CLI ([#8728](https://github.com/napari/napari/pull/8728))\n- Fix `--plugin` startup args ([#8729](https://github.com/napari/napari/pull/8729))\n- Update box and position of text overlay on font size change ([#8759](https://github.com/napari/napari/pull/8759))\n- Fix welcome spacing ([#8760](https://github.com/napari/napari/pull/8760))\n- Fix: Fire world unit updates after removing layer ([#8772](https://github.com/napari/napari/pull/8772))\n- Do not emit warning about units if there is no layer in viewer ([#8779](https://github.com/napari/napari/pull/8779))\n- Fix colorbar box offset ([#8780](https://github.com/napari/napari/pull/8780))\n\n## Build Tools\n\n- Bump urllib3 from 2.6.2 to 2.6.3 in /resources ([#8544](https://github.com/napari/napari/pull/8544))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n\n## Documentation\n\n- Add colorbar and overlay tiling example ([#8433](https://github.com/napari/napari/pull/8433))\n- Create 3D_vectors_through_time.py ([#8461](https://github.com/napari/napari/pull/8461))\n- Fix and improve `dock_widgets` docstrings ([#8494](https://github.com/napari/napari/pull/8494))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n- Adding a new example of a multiplexed immunofluorescent image of a murine heart ([#8680](https://github.com/napari/napari/pull/8680))\n- Add sphinxext-rediraffe to docs requirements ([#8690](https://github.com/napari/napari/pull/8690))\n- Update examples gallery for 0.7.0 angles ([#8709](https://github.com/napari/napari/pull/8709))\n- Add 3D points to add_points_3d example ([#8746](https://github.com/napari/napari/pull/8746))\n- Update contributing info and include AI policy and guidelines ([#8754](https://github.com/napari/napari/pull/8754))\n- Fix `image_depth.py` example by setting `blending` to `translucent` ([#8764](https://github.com/napari/napari/pull/8764))\n- Update units rendering example for docs gallery ([#8767](https://github.com/napari/napari/pull/8767))\n- Remove deprecated `view_*` methods from docs materials ([docs#864](https://github.com/napari/docs/pull/864))\n- Proposed roadmap updates for Q3 ([docs#873](https://github.com/napari/docs/pull/873))\n- Enhance documentation build process with pixi integration and Windows… ([docs#876](https://github.com/napari/docs/pull/876))\n- Pixi cross platform support ([docs#879](https://github.com/napari/docs/pull/879))\n- Refactor contributor docs: prioritize pixi for local builds ([docs#880](https://github.com/napari/docs/pull/880))\n- Modernize type annotation to use builtins ([docs#883](https://github.com/napari/docs/pull/883))\n- Update dark mode colors ([docs#884](https://github.com/napari/docs/pull/884))\n- Remove outdated mentions about PySide2 in documentation ([docs#889](https://github.com/napari/docs/pull/889))\n- Explain accessing dock widget wrappers ([docs#892](https://github.com/napari/docs/pull/892))\n- Add v0.7.0 release notes ([docs#893](https://github.com/napari/docs/pull/893))\n- Add npe1 deprecation info to release notes ([docs#894](https://github.com/napari/docs/pull/894))\n- Overwrite pooch downloader to fix Zenodo access problems ([docs#895](https://github.com/napari/docs/pull/895))\n- Update docs ahead of 0.7.0 alpha ([docs#897](https://github.com/napari/docs/pull/897))\n- Update website to use new logos ([docs#901](https://github.com/napari/docs/pull/901))\n- Migrate and update hub customization from wiki to docs ([docs#906](https://github.com/napari/docs/pull/906))\n- Improve open image section ([docs#907](https://github.com/napari/docs/pull/907))\n- Remove mention of outdated plugin from quick start ([docs#908](https://github.com/napari/docs/pull/908))\n- Update governance documentation ([docs#911](https://github.com/napari/docs/pull/911))\n- increase stack size to solve import recursion problem ([docs#912](https://github.com/napari/docs/pull/912))\n- Update display text copy in shapes.md ([docs#914](https://github.com/napari/docs/pull/914))\n- Update release notes for 0.7.0a1 ([docs#915](https://github.com/napari/docs/pull/915))\n- Simplify titles in App installation instructions ([docs#918](https://github.com/napari/docs/pull/918))\n- Remove mention of double click in macOS app instructions ([docs#920](https://github.com/napari/docs/pull/920))\n- Update release notes for 0.7.0a2 ([docs#922](https://github.com/napari/docs/pull/922))\n- Move code for setting recursion limit ([docs#927](https://github.com/napari/docs/pull/927))\n- Update scripts to pydantic v2 ([docs#928](https://github.com/napari/docs/pull/928))\n- Remove npe1-related docs ([docs#929](https://github.com/napari/docs/pull/929))\n- Add intersphinx mapping for pydantic ([docs#930](https://github.com/napari/docs/pull/930))\n- Add policy on LLM contributions based on Zulip's ([docs#932](https://github.com/napari/docs/pull/932))\n- Expand on 0.7.0 highlights ([docs#933](https://github.com/napari/docs/pull/933))\n- Fix camera angles in handedness guide ([docs#940](https://github.com/napari/docs/pull/940))\n- Add guide explaining default axis names ([docs#942](https://github.com/napari/docs/pull/942))\n- Add info about new points/shapes layer button behavior ([docs#943](https://github.com/napari/docs/pull/943))\n- Add final? 0.7.0 highlights and group by topic ([docs#944](https://github.com/napari/docs/pull/944))\n- Add redirects to pages moved in Usage section ([docs#946](https://github.com/napari/docs/pull/946))\n- Fix typo in optional-dependencies ([docs#947](https://github.com/napari/docs/pull/947))\n- Update references to PyQt5 as default backend to PyQt6 ([docs#950](https://github.com/napari/docs/pull/950))\n- Update 0.7.0 highlights for rc0 ([docs#951](https://github.com/napari/docs/pull/951))\n- Restructure homepage and add rotating featured examples ([docs#953](https://github.com/napari/docs/pull/953))\n- Wayland Debug information ([docs#956](https://github.com/napari/docs/pull/956))\n- Update release notes for 0.7.0rc1 ([docs#957](https://github.com/napari/docs/pull/957))\n- Refresh installation guide, with focus on bundled app instructions ([docs#958](https://github.com/napari/docs/pull/958))\n\n## Other Pull Requests\n\n- TYP: overload for `labeled_particles` incorrectly notes `Literal[True]=...` as default for `return_density` ([#8114](https://github.com/napari/napari/pull/8114))\n- Decompose Layer code by move slicing to specialized class ([#8254](https://github.com/napari/napari/pull/8254))\n- Add information about pyside 6 in error information ([#8313](https://github.com/napari/napari/pull/8313))\n- Remove deprecated `napari.view_*` methods ([#8337](https://github.com/napari/napari/pull/8337))\n- [pre-commit.ci] pre-commit autoupdate ([#8354](https://github.com/napari/napari/pull/8354))\n- Remove string translation from PR checklist ([#8362](https://github.com/napari/napari/pull/8362))\n- Use coverage upload from shared workflows ([#8367](https://github.com/napari/napari/pull/8367))\n- Specify napari revision in build and deploy docs workflow ([#8368](https://github.com/napari/napari/pull/8368))\n- [pre-commit.ci] pre-commit autoupdate ([#8369](https://github.com/napari/napari/pull/8369))\n- Update citation file for 0.7.0 ([#8384](https://github.com/napari/napari/pull/8384))\n- [pre-commit.ci] pre-commit autoupdate ([#8386](https://github.com/napari/napari/pull/8386))\n- Add check if PR author is in citation.cff ([#8388](https://github.com/napari/napari/pull/8388))\n- skip check if author in citation.cff if bot created  PR ([#8392](https://github.com/napari/napari/pull/8392))\n- Explicitly turn on full checkout for CircleCI ([#8396](https://github.com/napari/napari/pull/8396))\n- Fix cff check for bots ([#8420](https://github.com/napari/napari/pull/8420))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `imageio`, `ipython`, `matplotlib`, `numpy`, `pandas`, `pillow`, `pint`, `psutil`, `psygnal`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `pytest-rerunfailures`, `pyyaml`, `rich`, `scipy`, `tensorstore`, `tifffile`, `toolz`, `virtualenv`, `wrapt`, `xarray` ([#8441](https://github.com/napari/napari/pull/8441))\n- [pre-commit.ci] pre-commit autoupdate ([#8442](https://github.com/napari/napari/pull/8442))\n- Stop updating python 3.10 docs constraints ([#8444](https://github.com/napari/napari/pull/8444))\n- Block problematic numba in docs constraints ([#8454](https://github.com/napari/napari/pull/8454))\n- Change link to getting started in Help menu ([#8455](https://github.com/napari/napari/pull/8455))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `tensorstore`, `tifffile`, `xarray` ([#8456](https://github.com/napari/napari/pull/8456))\n- [pre-commit.ci] pre-commit autoupdate ([#8458](https://github.com/napari/napari/pull/8458))\n- ci(dependabot): bump the actions group across 1 directory with 7 updates ([#8460](https://github.com/napari/napari/pull/8460))\n- Finish typing napari.layers.image ([#8462](https://github.com/napari/napari/pull/8462))\n- Bugfix: For FeatureTable `edit` test, check the QAbstractItemView.State and not isPersistentEditorOpen ([#8463](https://github.com/napari/napari/pull/8463))\n- Move Ashley Anderson citation to core team section ([#8467](https://github.com/napari/napari/pull/8467))\n- Change `exclude` to `extend-exclude` in ruff config ([#8468](https://github.com/napari/napari/pull/8468))\n- Maint: Update test_prereleases.yml to also test on pyside6 ([#8470](https://github.com/napari/napari/pull/8470))\n- Fix constraints upgrade scripts ([#8473](https://github.com/napari/napari/pull/8473))\n- Fix coverage upload in comprehensive tests ([#8474](https://github.com/napari/napari/pull/8474))\n- Remove building of npe1 menu items for Plugins and Sample menus ([#8476](https://github.com/napari/napari/pull/8476))\n- First emit warning, then replace projection mode when convert image to labels ([#8481](https://github.com/napari/napari/pull/8481))\n- Finish typing utils.progress ([#8485](https://github.com/napari/napari/pull/8485))\n- Maint: Update test_prereleases.yml to bump retries to 3 ([#8488](https://github.com/napari/napari/pull/8488))\n- Block numba 0.62.0 for docs constraints ([#8490](https://github.com/napari/napari/pull/8490))\n- [pre-commit.ci] pre-commit autoupdate ([#8491](https://github.com/napari/napari/pull/8491))\n- [pre-commit.ci] pre-commit autoupdate ([#8499](https://github.com/napari/napari/pull/8499))\n- Test on macos-15-intel without numba ([#8503](https://github.com/napari/napari/pull/8503))\n- Move constraints calculation to script, allow upgrade subset of packages ([#8505](https://github.com/napari/napari/pull/8505))\n- Workaround for Zenodo outage by downloading data from google drive.  ([#8508](https://github.com/napari/napari/pull/8508))\n- Migrate EventedModel to pydantic v2 and overlays to psygnal to support python 3.14  ([#8509](https://github.com/napari/napari/pull/8509))\n- Fix overlay tests ([#8513](https://github.com/napari/napari/pull/8513))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `jsonschema`, `pandas`, `pillow`, `psutil`, `psygnal`, `pyqt6`, `scikit-image`, `scipy`, `superqt`, `tifffile`, `virtualenv` ([#8518](https://github.com/napari/napari/pull/8518))\n- [pre-commit.ci] pre-commit autoupdate ([#8519](https://github.com/napari/napari/pull/8519))\n- Reduce noise in benchmark logs ([#8525](https://github.com/napari/napari/pull/8525))\n- Improve language in Citation PR Author check ([#8526](https://github.com/napari/napari/pull/8526))\n- ci(dependabot): bump the actions group with 4 updates ([#8533](https://github.com/napari/napari/pull/8533))\n- Remove `npe1` settings and theme loading ([#8540](https://github.com/napari/napari/pull/8540))\n- Enforce unix line endings ([#8541](https://github.com/napari/napari/pull/8541))\n- Add temporary tox plugin for fix installation of dependency groups ([#8545](https://github.com/napari/napari/pull/8545))\n- Revert: Add temporary tox plugin for fix installation of dependency groups (#8545) ([#8546](https://github.com/napari/napari/pull/8546))\n- Fix typing in layers.points and layers.labels utilities ([#8549](https://github.com/napari/napari/pull/8549))\n- Fix path to constraints update script  ([#8553](https://github.com/napari/napari/pull/8553))\n- [pre-commit.ci] pre-commit autoupdate ([#8554](https://github.com/napari/napari/pull/8554))\n- Stop using `get_settings` during import time ([#8556](https://github.com/napari/napari/pull/8556))\n- Remove 'axis' prefix from layer axis labels ([#8566](https://github.com/napari/napari/pull/8566))\n- [pre-commit.ci] pre-commit autoupdate ([#8571](https://github.com/napari/napari/pull/8571))\n- Remove npe1 code for reading and writing ([#8579](https://github.com/napari/napari/pull/8579))\n- Fix build constraints with circular napari dependency ([#8588](https://github.com/napari/napari/pull/8588))\n- Modify sphinx-external-toc version constraint to eliminate warnings ([#8591](https://github.com/napari/napari/pull/8591))\n- Switch logo URL used for reader test ([#8596](https://github.com/napari/napari/pull/8596))\n- Update `coverage`, `hypothesis`, `rich` ([#8597](https://github.com/napari/napari/pull/8597))\n- Move comment trigger of constraints update to a separate workflow ([#8600](https://github.com/napari/napari/pull/8600))\n- Fix running benchmarks by label by fix condition ([#8601](https://github.com/napari/napari/pull/8601))\n- [pre-commit.ci] pre-commit autoupdate ([#8602](https://github.com/napari/napari/pull/8602))\n- ci(dependabot): bump the actions group with 5 updates ([#8613](https://github.com/napari/napari/pull/8613))\n- Update `babel`, `dask`, `hypothesis`, `pooch`, `psutil`, `rich`, `tifffile`, `tqdm`, `wrapt`, `xarray` ([#8615](https://github.com/napari/napari/pull/8615))\n- Postpone QtViewer deprecation to 0.8.0 ([#8617](https://github.com/napari/napari/pull/8617))\n- Remove settings call on import in qt_event_loop ([#8619](https://github.com/napari/napari/pull/8619))\n- Remove remaining `npe1` usage ([#8622](https://github.com/napari/napari/pull/8622))\n- Add `uv.lock` and leak graphs to gitignore ([#8637](https://github.com/napari/napari/pull/8637))\n- Fix pint warning about deprecation of getitem ([#8638](https://github.com/napari/napari/pull/8638))\n- Update `coverage`, `fsspec`, `hypothesis`, `ipython`, `pillow`, `pyside6`, `qtconsole`, `tensorstore`, `tqdm`, `wrapt`, `xarray` ([#8641](https://github.com/napari/napari/pull/8641))\n- Bump superqt to 0.7.8 ([#8646](https://github.com/napari/napari/pull/8646))\n- Bump napari plugin manager ([#8647](https://github.com/napari/napari/pull/8647))\n- Add/unify background box for canvas overlays ([#8654](https://github.com/napari/napari/pull/8654))\n- [pre-commit.ci] pre-commit autoupdate ([#8655](https://github.com/napari/napari/pull/8655))\n- Upload triangulation artifacts if benchmarks fails ([#8664](https://github.com/napari/napari/pull/8664))\n- Maint: Have triangle only on py313 and lower ([#8668](https://github.com/napari/napari/pull/8668))\n- Update `pydantic-settings`, `tifffile` ([#8671](https://github.com/napari/napari/pull/8671))\n- [pre-commit.ci] pre-commit autoupdate ([#8675](https://github.com/napari/napari/pull/8675))\n- Add pregenerated data to stabilize shapes triangulation benchmarks ([#8676](https://github.com/napari/napari/pull/8676))\n- Update `hypothesis`, `numpy`, `pandas`, `pydantic-settings`, `rich`, `scipy`, `tifffile`, `virtualenv` ([#8692](https://github.com/napari/napari/pull/8692))\n- Add python 3.14 classifier to project metadata ([#8693](https://github.com/napari/napari/pull/8693))\n- [pre-commit.ci] pre-commit autoupdate ([#8697](https://github.com/napari/napari/pull/8697))\n- ci(dependabot): bump the actions group with 3 updates ([#8713](https://github.com/napari/napari/pull/8713))\n- Update `certifi`, `tifffile`, `virtualenv` ([#8716](https://github.com/napari/napari/pull/8716))\n- Update pyqt5 default references to pyqt6 ([#8732](https://github.com/napari/napari/pull/8732))\n- Remove usage of `partial` from `qt_viewer_buttons` ([#8741](https://github.com/napari/napari/pull/8741))\n- Update `numpy`, `superqt`, `tifffile`, `wrapt` ([#8748](https://github.com/napari/napari/pull/8748))\n- [pre-commit.ci] pre-commit autoupdate ([#8753](https://github.com/napari/napari/pull/8753))\n- Update `imageio`, `pydantic-extra-types`, `tensorstore`, `virtualenv` ([#8773](https://github.com/napari/napari/pull/8773))\n- [pre-commit.ci] pre-commit autoupdate ([#8774](https://github.com/napari/napari/pull/8774))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#856](https://github.com/napari/docs/pull/856))\n- Allow to redeploy docs after merge new commits to main branch ([docs#874](https://github.com/napari/docs/pull/874))\n- Add mdformat to pre-commit config ([docs#878](https://github.com/napari/docs/pull/878))\n- Reorg of the Usage section of the docs ([docs#881](https://github.com/napari/docs/pull/881))\n- Explicitly turn on blobless checkout for CircleCI ([docs#882](https://github.com/napari/docs/pull/882))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#885](https://github.com/napari/docs/pull/885))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#890](https://github.com/napari/docs/pull/890))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#898](https://github.com/napari/docs/pull/898))\n- Allow to use local copy of napari when using pixi ([docs#900](https://github.com/napari/docs/pull/900))\n- Fix pixi tasks for different environments ([docs#904](https://github.com/napari/docs/pull/904))\n- Stop tracking `docs/release/index.md` so that it is ignored ([docs#905](https://github.com/napari/docs/pull/905))\n- Maint Update PIP_CONSTRAINT to UV_CONSTRAINT in config ([docs#909](https://github.com/napari/docs/pull/909))\n- Remove pixi configuration for macos intel ([docs#913](https://github.com/napari/docs/pull/913))\n- Prepare on migration to `sphinxcontrib-mermaid` ([docs#923](https://github.com/napari/docs/pull/923))\n- ci(dependabot): bump the github-actions group with 2 updates ([docs#925](https://github.com/napari/docs/pull/925))\n- ci(dependabot): bump actions/download-artifact from 7.0.0 to 8.0.0 in the github-actions group ([docs#948](https://github.com/napari/docs/pull/948))\n\n\n## 25 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Constantin Aronssohn](https://github.com/napari/napari/commits?author=cnstt) - @cnstt\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Neil Shephard](https://github.com/napari/docs/commits?author=ns-rse) - @ns-rse +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Qin Yu](https://github.com/napari/napari/commits?author=qin-yu) ([docs](https://github.com/napari/docs/commits?author=qin-yu))  - @qin-yu +\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) - @sdiebolt +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Johannes Soltwedel](https://github.com/napari/docs/commits?author=jo-mueller) - @jo-mueller\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/docs/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n","mentions_count":30},{"url":"https://api.github.com/repos/napari/napari/releases/298363590","assets_url":"https://api.github.com/repos/napari/napari/releases/298363590/assets","upload_url":"https://uploads.github.com/repos/napari/napari/releases/298363590/assets{?name,label}","html_url":"https://github.com/napari/napari/releases/tag/v0.7.0rc1","id":298363590,"author":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCJ0aI84RyKrG","tag_name":"v0.7.0rc1","target_commitish":"13891a6d126f708d35c8a60876bf5cab5edfa940","name":"0.7.0rc1","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-03-18T09:36:23Z","updated_at":"2026-03-18T10:15:07Z","published_at":"2026-03-18T10:06:29Z","assets":[{"url":"https://api.github.com/repos/napari/napari/releases/assets/376349116","id":376349116,"node_id":"RA_kwDOCJ0aI84WbqG8","name":"napari-0.7.0rc1-Linux-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":44443,"digest":"sha256:bda6bfb1934b6759f198f1fb8f415b08eae01e9aba988f9798d666b196490a91","download_count":1,"created_at":"2026-03-18T10:12:19Z","updated_at":"2026-03-18T10:12:19Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc1/napari-0.7.0rc1-Linux-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/376349037","id":376349037,"node_id":"RA_kwDOCJ0aI84WbqFt","name":"napari-0.7.0rc1-Linux-x86_64.sh","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":574785651,"digest":"sha256:9bdac7fb69af4215eac5d3a7d15e8a8475815b022078c9aec74e6ecbee96744b","download_count":3,"created_at":"2026-03-18T10:12:04Z","updated_at":"2026-03-18T10:12:18Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc1/napari-0.7.0rc1-Linux-x86_64.sh"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/376346737","id":376346737,"node_id":"RA_kwDOCJ0aI84Wbphx","name":"napari-0.7.0rc1-py3-none-any.whl","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":3489555,"digest":"sha256:d1f010e485c2b2f2b5df08969261f3cdb66b20e8d367bfbb58c779e4eaf56934","download_count":3,"created_at":"2026-03-18T10:06:28Z","updated_at":"2026-03-18T10:06:28Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc1/napari-0.7.0rc1-py3-none-any.whl"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/376350211","id":376350211,"node_id":"RA_kwDOCJ0aI84WbqYD","name":"napari-0.7.0rc1-Windows-x86_64.exe","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":566418832,"digest":"sha256:78579943b57940192007c018fc700c4ce75c9b420f35e23ed1e81000f25c52c0","download_count":4,"created_at":"2026-03-18T10:14:45Z","updated_at":"2026-03-18T10:15:06Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc1/napari-0.7.0rc1-Windows-x86_64.exe"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/376350360","id":376350360,"node_id":"RA_kwDOCJ0aI84WbqaY","name":"napari-0.7.0rc1-Windows-x86_64.lockfile.txt","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":34223,"digest":"sha256:44fd5d64b9b6d532319a2c8e1afbef5a08a8c2332bfac076913b185ef0819796","download_count":1,"created_at":"2026-03-18T10:15:07Z","updated_at":"2026-03-18T10:15:07Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc1/napari-0.7.0rc1-Windows-x86_64.lockfile.txt"},{"url":"https://api.github.com/repos/napari/napari/releases/assets/376346738","id":376346738,"node_id":"RA_kwDOCJ0aI84Wbphy","name":"napari-0.7.0rc1.tar.gz","label":"","uploader":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","user_view_type":"public","site_admin":false},"content_type":"application/gzip","state":"uploaded","size":3103181,"digest":"sha256:3bf54ee1fa24fb550171c5fddf3c914499de11e6e81dd1b01264618b76fcf983","download_count":3,"created_at":"2026-03-18T10:06:28Z","updated_at":"2026-03-18T10:06:28Z","browser_download_url":"https://github.com/napari/napari/releases/download/v0.7.0rc1/napari-0.7.0rc1.tar.gz"}],"tarball_url":"https://api.github.com/repos/napari/napari/tarball/v0.7.0rc1","zipball_url":"https://api.github.com/repos/napari/napari/zipball/v0.7.0rc1","body":"# napari 0.7.0\n⚠️ *Note: these release notes are still in draft while 0.7.0 is in release candidate testing.* ⚠️\n\n*Fri, Mar 20, 2026*\n\nWe're happy to announce the release of napari 0.7.0!\nnapari is a fast, interactive, multi-dimensional image viewer for Python.\nIt's designed for browsing, annotating, and analyzing large multi-dimensional\nimages. It's built on top of Qt (for the GUI), vispy (for performant GPU-based\nrendering), and the scientific Python stack (numpy, scipy).\n\nFor more information, examples, and documentation, please visit our website,\nhttps://napari.org.\n\nnapari follows [EffVer (Intended Effort Versioning)](https://effver.org/); this is a **Macro** release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.\n\n## Highlights\n\n### Breaking Changes\n\n#### Transition to npe2 plugin engine 🔌\n\nIn 0.6.0 we began the process of deprecating npe1 (napari-plugin-engine).\nIn all 0.6.x releases, npe1 plugins were automatically converted to npe2 by default,\nand users could turn off the `use_npe2_adaptor` setting to continue using npe1 plugins\nwithout auto-conversion.\n\nIn 0.7.0 this setting is being removed ([PR #8448](https://github.com/napari/napari/pull/8448)),\nand plugins will *only* continue to function if\nthey can be auto-converted to npe2. Most plugins will be unaffected, but those that rely\non import-time behaviour may not work as expected. If a plugin is relying on import-time\nbehaviour, it may be able to replicate this using the new startup scripts functionality added\nin 0.6.5 ([#8188](https://github.com/napari/napari/pull/8188)).\n\nIf you encounter conversion issues in a plugin you rely on, please contact the\nplugin authors to encourage them to migrate their plugin to the npe2 system.\n\nThis change has been a long time coming, and it's allowed us to remove thousands\nof lines of tangled and confusing legacy code. Now that we have, it's unleashed\nthe potential for massive improvements to file opening and saving in `napari`,\nand exciting new features for our plugin infrastructure. Stay tuned!\n\nFor more details on this change and how it affects plugins, see the [detailed\nguide](adapted-plugin-guide). If you are a plugin author and your plugin is not\nyet npe2-compatible, please see our [npe2 migration\nguide](npe2-migration-guide), and, if you encounter any issues, get in touch in\nour [Plugins Zulip chat\nchannel](https://napari.zulipchat.com/#narrow/channel/309872-plugins) or by\ncoming to one of our [community meetings](meeting-schedule).\n\n#### Negative axis labels? A real positive\n\nIf you've ever loaded data of mixed dimensionality in napari, like a TYX volume\nalongside a YX segmentation, you may have noticed the default axis labels didn't\nquite line up:\n\n| axes   | 0 | 1 | 2 |\n|--------|---|---|---|\n| volume | 0 | 1 | 2 |\n| segmt  |   | 0 | 1 |\n\nThat's because napari used 0-based indexing for its viewer axis labels, which breaks\ndown when layers have different numbers of dimensions. With\n[#8565](https://github.com/napari/napari/pull/8565),\nviewer axis labels now use negative indexing by default, combining Python's negative indexing\nsemantics with NumPy's array broadcasting semantics. The last axis is always `-1`,\nthe second-to-last is always `-2`, and so on:\n\n| axes   | 0  | 1  | 2  |\n|--------|----|----|----|\n| volume | -3 | -2 | -1 |\n| segmt  |    | -2 | -1 |\n\nThis means axis labels stay consistent as you add or remove layers of different\ndimensionality -- axis `-1` is always your last axis. This also fixes\na long-standing bug where axis labels could end up duplicated when mixing layers of\ndifferent dimensionality ([#6569](https://github.com/napari/napari/issues/6569)).\n\nYou'll notice this change in the dims slider labels, the axis overlay, and the dims\npopup widget. If you already label your axes with your own names (e.g. `z`, `y`, `x`),\nnothing's changed. For everyone else, we have consistency at last!\n\n\n#### What's in an angle? The truth! Fixed camera angles 🎥\n\nIf you've ever set up the camera to take that perfect publication-worthy photo of\nyour data (and taken the time to query the camera angles), you may have noticed they seemed... off.\nThat's because they were! Very... off. This was due to a long-standing bug in how we calculated our\ncamera angles, fueled in part by some arcane vispy axis-swapping tomfoolery, and in part by napari's\nstarting position of `viewer.camera.angles = (0, 0, 90)`.\n\nGood news! With [#8281](https://github.com/napari/napari/pull/8281), angles make sense again. The default camera angles are `(0, 0, 0)`, and they\nmove intuitively -- so `viewer.camera.angles = (10, 0, 0)` actually represents a 10 degree\nrotation around the [-3rd](#negative-axis-labels-a-real-positive) dimension. What a time to be alive!\n\nOld versions of napari:\n\n![Image showing an old version of a napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console.](https://github.com/user-attachments/assets/9ae2040c-36f7-4c4c-8ef8-140202d7ccda)\n\nNew and sane:\n\n![Image showing the 0.7.0 napari viewer with a layer opened and its camera angle (10, 0, 0) displayed in the console. The layer is rotated 10 degrees in its first dimension](https://github.com/user-attachments/assets/6b972b46-5c3c-439a-8b0a-fe8a293224e5)\n\nAll rotations are now right-handed (counterclockwise when the axis points towards the viewer),\nwith automatic sign-flipping for flipped camera views.\n\nNow for the bad news... After many (and we do [mean](https://github.com/napari/napari/pull/8537)\n[**many**](https://github.com/napari/napari/pull/8557)) attempts, we realized we couldn't\nprovide legacy conversion functions to get you to and from the original camera angles. Therefore,\nthis is a **breaking change**.\n\nIf you had scripts or notebooks setting up angles for screenshots, or if you've got workshop\nmaterials or tutorials with preset angles, they'll need to be updated. Any existing code\nusing `viewer.camera.angles = (z, y, x)` will now produce a different view than before.\n\n#### Limiting `self.events` callbacks\n\nIn [#8672](https://github.com/napari/napari/pull/8672), we changed how we emit events from\nthe parent `self.events` group.\n\nPreviously, connecting a callback to an `EventedModel`'s top-level event group\n(e.g. `model.events.connect(callback)`) would cause that callback to fire multiple times\nwhen a single assignment triggered multiple dependent fields. For example:\n\n```python\nclass MyModel(EventedModel):\n    a: int\n\n    @property\n    def b(self):\n        return self.a * 2\n\n    @b.setter\n    def b(self, value):\n        self.a = value // 2\n\nmodel = MyModel(a=1)\nmodel.events.connect(my_callback)\n\nmodel.a = 4  # previously called my_callback twice (once for 'a', once for 'b')\n             # now calls my_callback once\n```\n\nThe callback connected to `model.events` will now be called exactly once, with the event `type`\nset to the first changed field and `value` set to its new value. Callbacks connected to specific\nfield events (e.g. `model.events.a.connect(...)`) are unaffected and continue to work as before.\n\nIf you connect to `model.events` directly and relied on receiving one call per dependent field\nchange, you will need to connect to the individual field events instead.\n\n### New features & widgets\n\n#### What's my metadata? Where's my metadata? `napari-metadata` to the rescue\n\nWith a lot of work from our community contributor, Carlos Mario Rodriguez Reza\n(https://github.com/carlosmariorr), and\nour venerable community manager Tim Monko (https://github.com/timmonko),\n`napari` now has a metadata viewing and editing plugin\nincluded in our `napari[all]` installation and our bundle ([PR #8576](https://github.com/napari/napari/pull/8576)).\n\n![Screenshot of napari displaying an image of neurons, with the napari-metadata Layer Metadata widget across the bottom of the viewer.](https://raw.githubusercontent.com/napari/napari-metadata/main/docs/images/horizontal-widget.png)\n\nOpen the `Layer metadata` widget from the `Plugins` menu and you can view File information, and view and edit Axes metadata such as\naxis labels, translation and scale! You can also use the widget to copy specified metadata across to other layers.\n\nCheck out the [README](https://github.com/napari/napari-metadata) for some usage documentation, and feel\nfree to open an issue to request new features -- we're actively improving this plugin so, more to come!\n\n#### (Layer) Features galore\n\nPrior to 0.7.0, our Features table widget only supported showing individual selected layer features.\n\nWith [#8189](https://github.com/napari/napari/pull/8189), courtesy of Marcelo Zoccoler\n(https://github.com/zoccoler), the widget will display\nfeatures of all selected layers! The layer's name is displayed in an additional column, so you\nalways know what you're looking at, and you can choose to display only the shared feature columns\nacross all layers. Pretty slick!\n\n![GIF displaying the usage of the features table with multiple selected layers.](https://github.com/user-attachments/assets/e06fd403-ed03-4edd-9192-a4e287d25ff7)\n\n#### Smarter new layer buttons - inheriting from selected layers\n\nPrior to 0.7.0, creating a new layer Points, Shapes or Labels layer would give you a layer\nwith extent and dimensionality equal to the union of all currently open layers, and with\nnone of the other spatial information (scale, units, etc.) inherited.\n\nNow, with [#8357](https://github.com/napari/napari/pull/8357) and [#8702](https://github.com/napari/napari/pull/8702)\nyou can create new Shapes, Points or Labels layer that inherits from a selected layer\n(or a combination of selected layers).\n\n##### Shapes & Points\n\nIf you have one layer selected, your new `Shapes` or `Points` layer will copy\nall spatial information from its ancestor, ready for annotating!\nIf you have multiple layers selected, only scale is copied.\n\nIf you wish to recover the original behavior, select all existing layers before creating your new layer.\nDeselecting all layers gives you a layer with only the number of dimensions inherited,\nand no other properties.\n\n##### Labels\n\n`Labels` layers inherit all spatial information when a single `Image` or `Labels` layer is selected.\nWhen multiple `Image` or `Labels` layers are selected, or the selection includes any combination of\nother layer types, the new `Labels` layer will span their extent -- take note, this layer could be\nhuge!\n\nThe `Labels` button is disabled when layers are present in the viewer and none are selected.\n(You can still create a (512 x 512) `Labels` layer when there are no layers present).\n\n##### Visual cues\n\n[#8768](https://github.com/napari/napari/pull/8768) ensures this change is not invisible!\nWhen your selection will result in full inheritance of spatial information for the new layer,\nthe new layer buttons will be highlighted.\nThe highlight color will become dimmer when your selection will result in the new layer only\ninheriting the extent of your existing selection. If you're lost\nin the inheritance madness, you can also hover over the buttons to get details about the behavior.\n\n![GIF displaying the highlights on the Shapes, Points and Labels new layer buttons when one or more layers are selected in the layerlist](https://github.com/user-attachments/assets/17361e45-dbca-4770-be11-d74c882eedb5)\n\nPS -- You can now also create these new layers from the `File -> New Layer` menu!\n\n#### Better text overalys 🔡\n\nWith [#8236](https://github.com/napari/napari/pull/8236), we've not only refactored text overlays\nso they're easier to implement, but we've also introduced two new long-requested overlays:\nthe layer name overlay, and an overlay for the current slice. Together, they make generating\npublication-ready figures much easier!\n\n![Image showing the napari viewer with two layers in grid mode. Each layer has its name displayed in the top left, and the current slice displayed in the bottom right.](https://github.com/user-attachments/assets/3c96b38d-44c1-432b-b294-aa9c0934a553)\n\nTry it yourself:\n\n```python\nimport napari\nv = napari.Viewer()\nv.grid.enabled = True\nll = v.open_sample('napari', 'cells3d')\nfor l in ll:\n    l.name_overlay.visible = True\nv.scale_bar.visible = True\nv.scale_bar.gridded = True\nv._overlays['current_slice'].visible = True\nv._overlays['current_slice'].gridded = True\nv.dims.axis_labels = ['z', 'y', 'x']\n```\n\n**Note**: the `v._overlays` attribute is still private as we're working out the best API.\n\n### Rendering & display\n\n#### More pixels to play with - texture tiling\n\nEver loaded a large 2D image in napari just to zoom in and feel like you're not\nreally getting a lot of bang for your pixel bucks? That's because we were\ndownsampling images that were too large to send the whole thing to the GPU.\n\nCourtesy of Guillaume Witz (https://github.com/guiwitz), and his PR for\ntexture tiling ([PR #8395](https://github.com/napari/napari/pull/8395)) 2D\nimages that exceed OpenGL's maximum texture size will be split into multiple\ntiles, each small enough to fit on the GPU.\n\n![Image with a screenshot of napari 0.6.6 on the left and napari 0.7.0 on the right displaying a DeCAM image of the Milky Way. The image on the left is pixelated, while the image on the right is displayed at full resolution.](https://github.com/user-attachments/assets/d0a115a8-49d5-432c-b561-f29fe9ac8116)\n\n#### Rendering layers in physical space - units matter!\n\nIn 0.6.6 and below, units were stored in metadata, but not used for rendering.\nAdding two layers that represented the same physical space, but had different\nunits, e.g. a layer with `scale=500, units='nm'` and one with `scale=0.5, units='μm'`\nwouldn't overlap correctly, even though they should.\n\nThanks to [#7889](https://github.com/napari/napari/pull/8395), layers with\ncompatible units (i.e. those that share the same physical dimension per axis,\nlike all spatial), will make use of `units` and `scale` to overlap correctly,\nusing the smallest unit as the rendering space.\n\nUnits can also be set globally on the layer list using `viewer.layers.units = ('nm', 'nm')`,\nforcing layers to be rendered in this space. If a new layer is added with more dimensions\nthan the current layers, this global override is dropped with a warning.\n\n#### Points - any size you like 🟣\n\nOn macOS, the points layer has never been able to reach its full potential, as OpenGL\ndrivers limit the size of an individual marker to a certain number of screen pixels.\n\nWith [#8552](https://github.com/napari/napari/pull/8552) and the release of `vispy v0.16`,\nthis long-standing issue has finally been resolved. Across all operating systems, you can\nmake your points as big as you want!\n\nThis change has also propagated to the zoom behaviour on macOS -- points now zoom\nproportionally to the data, rather than staying the same size in screen pixels.\n\nHere's the behaviour pre 0.7.0:\n\n```{raw} html\n<figure>\n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_066.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_066.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_066.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points stay the same size in screen pixels.\" \n    > \n  </video> \n</figure> \n``` \n\nAnd now:\n\n```{raw} html\n<figure> \n  <video width=\"100%\" controls autoplay loop muted playsinline> \n    <source src=\"../_static/images/points_zoom_070.webm\" type=\"video/webm\" /> \n    <source src=\"../_static/images/points_zoom_070.mp4\" type=\"video/mp4\" /> \n    <img src=\"../_static/images/points_zoom_070.png\" \n      title=\"Your browser does not support the video tag\" \n      alt=\"Video with a points layer on a grid of white squares. When zooming, the points scale proportionally to the data.\" \n    > \n  </video> \n</figure> \n```\n\n### Performance\n\n#### Grid mode -- bigger, better, faster 📈\n\nIf you've been playing with our new grid mode since 0.6.5, you\nmay have stumbled into performance issues when progressively adding\nnew layers to the viewer. Stumble no longer! Our grid mode is now wicked fast and buttery smooth 🧈.\n\nWe've also fixed some issues with mouse interactions and deleting\nlayers, so you can tile to your heart's content. Try it out:\n\n```py\nimport napari\n\nviewer = napari.Viewer()\n\n# enable grid with stride 2 to get layers split two-by-two\nviewer.grid.enabled = True\nviewer.grid.stride = 2\n\n# set the scale bar to gridded mode so it appears in each grid box\nviewer.scale_bar.visible = True\nviewer.scale_bar.gridded = True\n\nlayers = viewer.open_sample('napari', 'lily')\n\n# enable color bars\nfor layer in layers:\n    layer.colorbar.visible = True\n```\n\n#### Add & delete layers without delay\n\n[#8479](https://github.com/napari/napari/pull/8479) and [#8443](https://github.com/napari/napari/pull/8443)\nmade a number of improvements to\nour layer and overlay clean-up, addressing a number of issues with large numbers of layers\nin the viewer - adding them, deleting them, and even closing the viewer is now snappy\nand smooth!\n\n#### Shapes layers -- select, zoom, delete, repeat\n\nIf you've ever tried working with thousands of shapes in napari, you'll know\nit could get... painful. Selecting 10,000 shapes with a box took over 50 seconds,\ndeleting 5,000 shapes took over a minute, and zooming with shapes selected\nwould lock up the viewer entirely. Not anymore!\n\n0.7.0 brings a flurry of performance improvements:\n\n- Box selection now uses bounding boxes and vectorized intersection tests,\n  delivering a more than 100x speedup ([#8378](https://github.com/napari/napari/pull/8378)).\n  Selecting 10,000 shapes goes from >50s to ~0.3s.\n- Batch deletion replaces one-by-one removal for another 100x speedup\n  ([#8375](https://github.com/napari/napari/pull/8375))! Deleting 50,000 shapes\n  now takes under half a second.\n- Outline computation is batched and cached, so zooming and panning with\n  selected shapes no longer blocks\n  ([#8403](https://github.com/napari/napari/pull/8403),\n  [#8536](https://github.com/napari/napari/pull/8536)).\n- Highlight updates are throttled for large layers, enabling smooth zoom\n  even with 200,000+ shapes ([#8404](https://github.com/napari/napari/pull/8404)).\n- Mode switching no longer triggers unnecessary redraws, giving another\n  ~3x speedup when many shapes are selected\n  ([#8551](https://github.com/napari/napari/pull/8551)).\n\nBeware: there's still more to do, because drawing and drag-moving large selections\nremain slow!\n\n#### Multiscale -- less to update, more to celebrate\n\nPR [#8678](https://github.com/napari/napari/pull/8678) introduced a small change\nwith a big effect! Now, zooming in (and panning while zoomed in), will only trigger\na data refresh if the multiscale level has changed **or** if the new view falls outside\nof already loaded data.\n\n#### Delete the launch codes -- no more macOS hacks on launch\n\nIn 0.6.6 and below, we had some macOS specific launch code that skirted around some\nissues (which are now no longer relevant), and hackily \"relaunched\" napari to make\nsure the application name was correct.\n\nThis code added up to a whole second to our launch time, as well as being potentially\nproblematic for some users. PR [#8705](https://github.com/napari/napari/pull/8705)\nremoved this code, making our start-up a little less hacky and a little more snappy.\nThe downside is that when launching napari on macOS, the app name may be listed as\nPython, instead of napari. We think the trade-off is worth it.\n\n\n### Infrastructure & dependencies\n\nA couple of notes on big changes in our dependencies:\n\n- With #8509 we improved our support for `pydantic v2`, allowing us to enable support for Python 3.14!\nThis brings us one step closer to fully adopting `psygnal` as our event library.\n- In [#8450](https://github.com/napari/napari/pull/8450) we dropped support for PySide2. If you\nwere using napari with PySide for your Qt bindings, you'll need to upgrade to PySide6. Good news\nis that PySide6 is looking pretty stable, while PySide2 had some compatibility issues with numpy2,\nand had to be built from source for Python 3.11+.\n- In ([#8665](https://github.com/napari/napari/pull/8665)) we updated the default qt\nbinding to PyQt6. PyQt6 will now be installed with `napari[all]` installations. Windows users\nshould see improvements to their display with better support for fractional scaling!\n- In [#8338](https://github.com/napari/napari/pull/8338) we replaced `numpydoc` with `docstring_parser`\nfor parsing our docstrings. This will be a pretty invisible change from a user's perspective, but\nit saves more than 50MB of disk space for a napari install!\n\n## New Features\n\n- Use information about units when calculate scale of layers when render ([#7889](https://github.com/napari/napari/pull/7889))\n- Welcome widget as an overlay ([#8117](https://github.com/napari/napari/pull/8117))\n- Multilayer features table ([#8189](https://github.com/napari/napari/pull/8189))\n- Better text overlay (and subclasses) ([#8236](https://github.com/napari/napari/pull/8236))\n- Allow create Shapes and Points per selected Layer ([#8357](https://github.com/napari/napari/pull/8357))\n- Use new logos! ([#8457](https://github.com/napari/napari/pull/8457))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n\n## Improvements\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- Add cell tracking example ([#8051](https://github.com/napari/napari/pull/8051))\n- Add a seed argument to built-in samples with random seeds ([#8317](https://github.com/napari/napari/pull/8317))\n- Enh: clarify Points selection keybinding behavior: select_in_slice not append by default, add new select_append_in_slice ([#8339](https://github.com/napari/napari/pull/8339))\n- Enh: Improve zarr reading by builtins ([#8355](https://github.com/napari/napari/pull/8355))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Reordering default colormap to split channels  ([#8383](https://github.com/napari/napari/pull/8383))\n- change default blending mode of images on split RGB ([#8385](https://github.com/napari/napari/pull/8385))\n- Texture tiling ([#8395](https://github.com/napari/napari/pull/8395))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Set viewer dimension based on number of axis labels ([#8436](https://github.com/napari/napari/pull/8436))\n- Enh: Add label value to the labels tooltip ([#8495](https://github.com/napari/napari/pull/8495))\n- Use 10x10 pixels rect around mouse position to invalidate tooltip ([#8500](https://github.com/napari/napari/pull/8500))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Enable antialiasing on all Lines ([#8515](https://github.com/napari/napari/pull/8515))\n- Avoid materializing property views when updating points highlight ([#8517](https://github.com/napari/napari/pull/8517))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Don't warn user when a Zarr array with channel axis is passed ([#8559](https://github.com/napari/napari/pull/8559))\n- Use negative indexing for viewer dims axis labels ([#8565](https://github.com/napari/napari/pull/8565))\n- Add colorbar & bounding box overlays to Layers menu ([#8611](https://github.com/napari/napari/pull/8611))\n- Add visual for new points/shapes button on selected layers ([#8649](https://github.com/napari/napari/pull/8649))\n- Limit `self.events` callbacks trigger to only once per assignment ([#8672](https://github.com/napari/napari/pull/8672))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- Warn users when features data looks categorical ([#8685](https://github.com/napari/napari/pull/8685))\n- Fix type annotation in viewer keybindings, use QtViewer for console ([#8694](https://github.com/napari/napari/pull/8694))\n- Do not inherit scale for points and shapes if no layer is selected ([#8701](https://github.com/napari/napari/pull/8701))\n- Inherit spatial information for new `Labels` layers when only one other `Labels` or `Image` layer is selected ([#8702](https://github.com/napari/napari/pull/8702))\n- [UI, UX] Make dock widget title bar icons bigger and text more legible ([#8714](https://github.com/napari/napari/pull/8714))\n- Perf, enh: defer dask.array loading by moving import into functions ([#8720](https://github.com/napari/napari/pull/8720))\n- Change look of new layer buttons to mark that there are 3 modes ([#8723](https://github.com/napari/napari/pull/8723))\n- If path arg is passed to CLI napari, don't show welcome overlay ([#8725](https://github.com/napari/napari/pull/8725))\n- UI: Add keybinding for Image layer reset_contrast_limits ([#8730](https://github.com/napari/napari/pull/8730))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n- Use capitalized name of source layer type when adding layer ([#8740](https://github.com/napari/napari/pull/8740))\n- Add scale example for anisotropic 3D data ([#8742](https://github.com/napari/napari/pull/8742))\n- Raise FileNotFoundError early when opening nonexistent paths ([#8747](https://github.com/napari/napari/pull/8747))\n- Ensure that layers are unlinked after deletion from layerlist  ([#8749](https://github.com/napari/napari/pull/8749))\n- Use custom Font manager to use Qt discovery mechanism ([#8751](https://github.com/napari/napari/pull/8751))\n- Restyle new_layer button creation state visuals ([#8768](https://github.com/napari/napari/pull/8768))\n\n## Performance\n\n- perf: reallocate instead of clearing and repopulating set of selected points ([#6895](https://github.com/napari/napari/pull/6895))\n- ENH: Speedup multiple shapes removal by concat'ing and np.deleting as a batch ([#8375](https://github.com/napari/napari/pull/8375))\n- Enh: Speed up shapes box selection by using bounding boxes and vectorization ([#8378](https://github.com/napari/napari/pull/8378))\n- Enh: simple speed up of Shapes `_extent_data` ([#8401](https://github.com/napari/napari/pull/8401))\n- Enh: performance optimizations to ShapeList outlines ([#8403](https://github.com/napari/napari/pull/8403))\n- Enh: Throttle shapes highlight ([#8404](https://github.com/napari/napari/pull/8404))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Add caching of outlines to reduce delay on Shapes zoom ([#8536](https://github.com/napari/napari/pull/8536))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Delay scipy imports until needed ([#8561](https://github.com/napari/napari/pull/8561))\n- Low hanging Labels painting performance improvement ([#8592](https://github.com/napari/napari/pull/8592))\n- [multiscale] Only update/refresh when level has changed or view is outside current corner_pixels ([#8678](https://github.com/napari/napari/pull/8678))\n- [Perf] Remove napari splash screen ([#8686](https://github.com/napari/napari/pull/8686))\n- [Maint] Remove all macOS specific launch code as it's out-dated or problematic (re-running with symlink) ([#8705](https://github.com/napari/napari/pull/8705))\n- Perf: Deferring pandas import to speedup napari startup ([#8733](https://github.com/napari/napari/pull/8733))\n- Perf: Instead of trying to import, check if IPython is already imported ([#8734](https://github.com/napari/napari/pull/8734))\n\n## Bug Fixes\n\n- Fix camera angles‽ ([#8281](https://github.com/napari/napari/pull/8281))\n- bugfix & refactor: Use events for shape multiselection ([#8332](https://github.com/napari/napari/pull/8332))\n- Fix conversion of vector images to coordinates of vectors ([#8366](https://github.com/napari/napari/pull/8366))\n- initialize label selection spinbox to a correct value ([#8382](https://github.com/napari/napari/pull/8382))\n- Bugfix: fix erratic Shape sorting ([#8408](https://github.com/napari/napari/pull/8408))\n- bugfix: Ensure that edge_width is accounted for when using polygon lasso ([#8414](https://github.com/napari/napari/pull/8414))\n- Fix Shapes thumbnail z ordering ([#8417](https://github.com/napari/napari/pull/8417))\n- Fix unnecessary overlay initialization on scenegraph update ([#8423](https://github.com/napari/napari/pull/8423))\n- Bugfix: update magicgui layer combobox if a layer is renamed using LayerList.renamed event ([#8429](https://github.com/napari/napari/pull/8429))\n- Fix overlay initialization and layer addition slowdown ([#8443](https://github.com/napari/napari/pull/8443))\n- Bugfix: ensure triangle colors are updated properly when using polygon lasso ([#8469](https://github.com/napari/napari/pull/8469))\n- Speed up the deletion of layers by deduplicating the function calls  ([#8479](https://github.com/napari/napari/pull/8479))\n- Bump to vispy 0.16 ([#8501](https://github.com/napari/napari/pull/8501))\n- Cap point highlight size ([#8504](https://github.com/napari/napari/pull/8504))\n- Bugfix: recurse through sub-fields when making connections in EventedSettings Config ([#8520](https://github.com/napari/napari/pull/8520))\n- Fix dim order of rendering of 2D rgb data in 3D mode ([#8522](https://github.com/napari/napari/pull/8522))\n- Fix numpy warning for pure python edge triangulation ([#8523](https://github.com/napari/napari/pull/8523))\n- Do not use keyword argument when creating tooltip ([#8528](https://github.com/napari/napari/pull/8528))\n- Fix update of shape that lead to wrong rendering ([#8543](https://github.com/napari/napari/pull/8543))\n- Close proper window on Ctrl+W ([#8548](https://github.com/napari/napari/pull/8548))\n- Fix the Shapes mode setter to use _is_creating for _finish_drawing and clear selection when going to ADD_* ([#8551](https://github.com/napari/napari/pull/8551))\n- Enable instanced markers if available. ([#8552](https://github.com/napari/napari/pull/8552))\n- Do not expose legacy angle ([#8557](https://github.com/napari/napari/pull/8557))\n- Fix test on PySide6 by change mocking of qt methods ([#8560](https://github.com/napari/napari/pull/8560))\n- Account for tile2data in the Labels polygon overlay ([#8563](https://github.com/napari/napari/pull/8563))\n- ensure overlays are reused properly when gridded mode is enabled ([#8569](https://github.com/napari/napari/pull/8569))\n- Stop welcome screen time on hiding of QtWiewer ([#8585](https://github.com/napari/napari/pull/8585))\n- Fix Labels layer controls contiguous checkbox to initialize to the layer state ([#8594](https://github.com/napari/napari/pull/8594))\n- Proper cleanup and reuse of existing overlays ([#8610](https://github.com/napari/napari/pull/8610))\n- [UI] Update the viewer button tooltips to use the new axis labels (-3, -2, -1) ([#8614](https://github.com/napari/napari/pull/8614))\n- Fix scale bar padding ([#8616](https://github.com/napari/napari/pull/8616))\n- Fix empty thumbnail ([#8620](https://github.com/napari/napari/pull/8620))\n- Reverse overlay tiling order ([#8623](https://github.com/napari/napari/pull/8623))\n- Fix welcome screen timer ([#8627](https://github.com/napari/napari/pull/8627))\n- Reinitialize welcome screen shortcuts in a less ugly way ([#8634](https://github.com/napari/napari/pull/8634))\n- Fix empty points tiny point ([#8639](https://github.com/napari/napari/pull/8639))\n- Fix labels of angle order of camera widget ([#8644](https://github.com/napari/napari/pull/8644))\n- Add a opaque background Rectangle to Welcome overlay ([#8645](https://github.com/napari/napari/pull/8645))\n- Do not start welcome widget timer until QtViewer is visible ([#8652](https://github.com/napari/napari/pull/8652))\n- Allow selection in feature table widget with empty features ([#8653](https://github.com/napari/napari/pull/8653))\n- Fix event triggering start of welcome screen ([#8660](https://github.com/napari/napari/pull/8660))\n- Fix `_disconnect_child_emitters` for `PsygnalModel` dict elements ([#8674](https://github.com/napari/napari/pull/8674))\n- Increase minimum version of pyopengl to allow start napari ([#8679](https://github.com/napari/napari/pull/8679))\n- Fix colorbar for int/bool dtypes ([#8684](https://github.com/napari/napari/pull/8684))\n- Correctly hide welcome screen when layers are present ([#8688](https://github.com/napari/napari/pull/8688))\n- Ensure that errors are propagated during async loading ([#8691](https://github.com/napari/napari/pull/8691))\n- Fix assign tuple of None to `layer.units` ([#8700](https://github.com/napari/napari/pull/8700))\n- Fix error raised when `out_of_slice_display = True` and update highlight ([#8717](https://github.com/napari/napari/pull/8717))\n- fix: fix `napari.imshow` return type hint ([#8726](https://github.com/napari/napari/pull/8726))\n- Fix harvesting plugins from CLI ([#8728](https://github.com/napari/napari/pull/8728))\n- Fix `--plugin` startup args ([#8729](https://github.com/napari/napari/pull/8729))\n- Update box and position of text overlay on font size change ([#8759](https://github.com/napari/napari/pull/8759))\n- Fix welcome spacing ([#8760](https://github.com/napari/napari/pull/8760))\n- Fix: Move world unit updates to LayerList add/remove events ([#8772](https://github.com/napari/napari/pull/8772))\n\n## Build Tools\n\n- Bump urllib3 from 2.6.2 to 2.6.3 in /resources ([#8544](https://github.com/napari/napari/pull/8544))\n- Add napari-metadata to napari dependencies ([#8576](https://github.com/napari/napari/pull/8576))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n\n## Documentation\n\n- Add colorbar and overlay tiling example ([#8433](https://github.com/napari/napari/pull/8433))\n- Create 3D_vectors_through_time.py ([#8461](https://github.com/napari/napari/pull/8461))\n- Fix and improve `dock_widgets` docstrings ([#8494](https://github.com/napari/napari/pull/8494))\n- Plugin dependencies for docs generation ([#8581](https://github.com/napari/napari/pull/8581))\n- Adding a new example of a multiplexed immunofluorescent image of a murine heart ([#8680](https://github.com/napari/napari/pull/8680))\n- Add sphinxext-rediraffe to docs requirements ([#8690](https://github.com/napari/napari/pull/8690))\n- Update examples gallery for 0.7.0 angles ([#8709](https://github.com/napari/napari/pull/8709))\n- Add 3D points to add_points_3d example ([#8746](https://github.com/napari/napari/pull/8746))\n- Update contributing info and include AI policy and guidelines ([#8754](https://github.com/napari/napari/pull/8754))\n- Fix `image_depth.py` example by setting `blending` to `translucent` ([#8764](https://github.com/napari/napari/pull/8764))\n- Update units rendering example for docs gallery ([#8767](https://github.com/napari/napari/pull/8767))\n- Remove deprecated `view_*` methods from docs materials ([docs#864](https://github.com/napari/docs/pull/864))\n- Proposed roadmap updates for Q3 ([docs#873](https://github.com/napari/docs/pull/873))\n- Enhance documentation build process with pixi integration and Windows… ([docs#876](https://github.com/napari/docs/pull/876))\n- Pixi cross platform support ([docs#879](https://github.com/napari/docs/pull/879))\n- Refactor contributor docs: prioritize pixi for local builds ([docs#880](https://github.com/napari/docs/pull/880))\n- Modernize type annotation to use builtins ([docs#883](https://github.com/napari/docs/pull/883))\n- Update dark mode colors ([docs#884](https://github.com/napari/docs/pull/884))\n- Remove outdated mentions about PySide2 in documentation ([docs#889](https://github.com/napari/docs/pull/889))\n- Explain accessing dock widget wrappers ([docs#892](https://github.com/napari/docs/pull/892))\n- Add v0.7.0 release notes ([docs#893](https://github.com/napari/docs/pull/893))\n- Add npe1 deprecation info to release notes ([docs#894](https://github.com/napari/docs/pull/894))\n- Overwrite pooch downloader to fix Zenodo access problems ([docs#895](https://github.com/napari/docs/pull/895))\n- Update docs ahead of 0.7.0 alpha ([docs#897](https://github.com/napari/docs/pull/897))\n- Update website to use new logos ([docs#901](https://github.com/napari/docs/pull/901))\n- Migrate and update hub customization from wiki to docs ([docs#906](https://github.com/napari/docs/pull/906))\n- Improve open image section ([docs#907](https://github.com/napari/docs/pull/907))\n- Remove mention of outdated plugin from quick start ([docs#908](https://github.com/napari/docs/pull/908))\n- Update governance documentation ([docs#911](https://github.com/napari/docs/pull/911))\n- increase stack size to solve import recursion problem ([docs#912](https://github.com/napari/docs/pull/912))\n- Update display text copy in shapes.md ([docs#914](https://github.com/napari/docs/pull/914))\n- Update release notes for 0.7.0a1 ([docs#915](https://github.com/napari/docs/pull/915))\n- Simplify titles in App installation instructions ([docs#918](https://github.com/napari/docs/pull/918))\n- Remove mention of double click in macOS app instructions ([docs#920](https://github.com/napari/docs/pull/920))\n- Update release notes for 0.7.0a2 ([docs#922](https://github.com/napari/docs/pull/922))\n- Move code for setting recursion limit ([docs#927](https://github.com/napari/docs/pull/927))\n- Update scripts to pydantic v2 ([docs#928](https://github.com/napari/docs/pull/928))\n- Remove npe1-related docs ([docs#929](https://github.com/napari/docs/pull/929))\n- Add intersphinx mapping for pydantic ([docs#930](https://github.com/napari/docs/pull/930))\n- Add policy on LLM contributions based on Zulip's ([docs#932](https://github.com/napari/docs/pull/932))\n- Expand on 0.7.0 highlights ([docs#933](https://github.com/napari/docs/pull/933))\n- Fix camera angles in handedness guide ([docs#940](https://github.com/napari/docs/pull/940))\n- Add guide explaining default axis names ([docs#942](https://github.com/napari/docs/pull/942))\n- Add info about new points/shapes layer button behavior ([docs#943](https://github.com/napari/docs/pull/943))\n- Add final? 0.7.0 highlights and group by topic ([docs#944](https://github.com/napari/docs/pull/944))\n- Add redirects to pages moved in Usage section ([docs#946](https://github.com/napari/docs/pull/946))\n- Fix typo in optional-dependencies ([docs#947](https://github.com/napari/docs/pull/947))\n- Update references to PyQt5 as default backend to PyQt6 ([docs#950](https://github.com/napari/docs/pull/950))\n- Update 0.7.0 highlights for rc0 ([docs#951](https://github.com/napari/docs/pull/951))\n- Restructure homepage and add rotating featured examples ([docs#953](https://github.com/napari/docs/pull/953))\n- Wayland Debug information ([docs#956](https://github.com/napari/docs/pull/956))\n\n## Other Pull Requests\n\n- TYP: overload for `labeled_particles` incorrectly notes `Literal[True]=...` as default for `return_density` ([#8114](https://github.com/napari/napari/pull/8114))\n- Decompose Layer code by move slicing to specialized class ([#8254](https://github.com/napari/napari/pull/8254))\n- Add information about pyside 6 in error information ([#8313](https://github.com/napari/napari/pull/8313))\n- Remove deprecated `napari.view_*` methods ([#8337](https://github.com/napari/napari/pull/8337))\n- [pre-commit.ci] pre-commit autoupdate ([#8354](https://github.com/napari/napari/pull/8354))\n- Remove string translation from PR checklist ([#8362](https://github.com/napari/napari/pull/8362))\n- Use coverage upload from shared workflows ([#8367](https://github.com/napari/napari/pull/8367))\n- Specify napari revision in build and deploy docs workflow ([#8368](https://github.com/napari/napari/pull/8368))\n- [pre-commit.ci] pre-commit autoupdate ([#8369](https://github.com/napari/napari/pull/8369))\n- Update citation file for 0.7.0 ([#8384](https://github.com/napari/napari/pull/8384))\n- [pre-commit.ci] pre-commit autoupdate ([#8386](https://github.com/napari/napari/pull/8386))\n- Add check if PR author is in citation.cff ([#8388](https://github.com/napari/napari/pull/8388))\n- skip check if author in citation.cff if bot created  PR ([#8392](https://github.com/napari/napari/pull/8392))\n- Explicitly turn on full checkout for CircleCI ([#8396](https://github.com/napari/napari/pull/8396))\n- Fix cff check for bots ([#8420](https://github.com/napari/napari/pull/8420))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `imageio`, `ipython`, `matplotlib`, `numpy`, `pandas`, `pillow`, `pint`, `psutil`, `psygnal`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `pytest-rerunfailures`, `pyyaml`, `rich`, `scipy`, `tensorstore`, `tifffile`, `toolz`, `virtualenv`, `wrapt`, `xarray` ([#8441](https://github.com/napari/napari/pull/8441))\n- [pre-commit.ci] pre-commit autoupdate ([#8442](https://github.com/napari/napari/pull/8442))\n- Stop updating python 3.10 docs constraints ([#8444](https://github.com/napari/napari/pull/8444))\n- Block problematic numba in docs constraints ([#8454](https://github.com/napari/napari/pull/8454))\n- Change link to getting started in Help menu ([#8455](https://github.com/napari/napari/pull/8455))\n- Update `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `matplotlib`, `pydantic`, `pyqt6`, `pyside6`, `pytest`, `tensorstore`, `tifffile`, `xarray` ([#8456](https://github.com/napari/napari/pull/8456))\n- [pre-commit.ci] pre-commit autoupdate ([#8458](https://github.com/napari/napari/pull/8458))\n- ci(dependabot): bump the actions group across 1 directory with 7 updates ([#8460](https://github.com/napari/napari/pull/8460))\n- Finish typing napari.layers.image ([#8462](https://github.com/napari/napari/pull/8462))\n- Bugfix: For FeatureTable `edit` test, check the QAbstractItemView.State and not isPersistentEditorOpen ([#8463](https://github.com/napari/napari/pull/8463))\n- Move Ashley Anderson citation to core team section ([#8467](https://github.com/napari/napari/pull/8467))\n- Change `exclude` to `extend-exclude` in ruff config ([#8468](https://github.com/napari/napari/pull/8468))\n- Maint: Update test_prereleases.yml to also test on pyside6 ([#8470](https://github.com/napari/napari/pull/8470))\n- Fix constraints upgrade scripts ([#8473](https://github.com/napari/napari/pull/8473))\n- Fix coverage upload in comprehensive tests ([#8474](https://github.com/napari/napari/pull/8474))\n- Remove building of npe1 menu items for Plugins and Sample menus ([#8476](https://github.com/napari/napari/pull/8476))\n- First emit warning, then replace projection mode when convert image to labels ([#8481](https://github.com/napari/napari/pull/8481))\n- Finish typing utils.progress ([#8485](https://github.com/napari/napari/pull/8485))\n- Maint: Update test_prereleases.yml to bump retries to 3 ([#8488](https://github.com/napari/napari/pull/8488))\n- Block numba 0.62.0 for docs constraints ([#8490](https://github.com/napari/napari/pull/8490))\n- [pre-commit.ci] pre-commit autoupdate ([#8491](https://github.com/napari/napari/pull/8491))\n- [pre-commit.ci] pre-commit autoupdate ([#8499](https://github.com/napari/napari/pull/8499))\n- Test on macos-15-intel without numba ([#8503](https://github.com/napari/napari/pull/8503))\n- Move constraints calculation to script, allow upgrade subset of packages ([#8505](https://github.com/napari/napari/pull/8505))\n- Workaround for Zenodo outage by downloading data from google drive.  ([#8508](https://github.com/napari/napari/pull/8508))\n- Migrate EventedModel to pydantic v2 and overlays to psygnal to support python 3.14  ([#8509](https://github.com/napari/napari/pull/8509))\n- Fix overlay tests ([#8513](https://github.com/napari/napari/pull/8513))\n- Update `certifi`, `coverage`, `dask`, `fsspec`, `hypothesis`, `ipython`, `jsonschema`, `pandas`, `pillow`, `psutil`, `psygnal`, `pyqt6`, `scikit-image`, `scipy`, `superqt`, `tifffile`, `virtualenv` ([#8518](https://github.com/napari/napari/pull/8518))\n- [pre-commit.ci] pre-commit autoupdate ([#8519](https://github.com/napari/napari/pull/8519))\n- Reduce noise in benchmark logs ([#8525](https://github.com/napari/napari/pull/8525))\n- Improve language in Citation PR Author check ([#8526](https://github.com/napari/napari/pull/8526))\n- ci(dependabot): bump the actions group with 4 updates ([#8533](https://github.com/napari/napari/pull/8533))\n- Remove `npe1` settings and theme loading ([#8540](https://github.com/napari/napari/pull/8540))\n- Enforce unix line endings ([#8541](https://github.com/napari/napari/pull/8541))\n- Add temporary tox plugin for fix installation of dependency groups ([#8545](https://github.com/napari/napari/pull/8545))\n- Revert: Add temporary tox plugin for fix installation of dependency groups (#8545) ([#8546](https://github.com/napari/napari/pull/8546))\n- Fix typing in layers.points and layers.labels utilities ([#8549](https://github.com/napari/napari/pull/8549))\n- Fix path to constraints update script  ([#8553](https://github.com/napari/napari/pull/8553))\n- [pre-commit.ci] pre-commit autoupdate ([#8554](https://github.com/napari/napari/pull/8554))\n- Stop using `get_settings` during import time ([#8556](https://github.com/napari/napari/pull/8556))\n- Remove 'axis' prefix from layer axis labels ([#8566](https://github.com/napari/napari/pull/8566))\n- [pre-commit.ci] pre-commit autoupdate ([#8571](https://github.com/napari/napari/pull/8571))\n- Remove npe1 code for reading and writing ([#8579](https://github.com/napari/napari/pull/8579))\n- Fix build constraints with circular napari dependency ([#8588](https://github.com/napari/napari/pull/8588))\n- Modify sphinx-external-toc version constraint to eliminate warnings ([#8591](https://github.com/napari/napari/pull/8591))\n- Switch logo URL used for reader test ([#8596](https://github.com/napari/napari/pull/8596))\n- Update `coverage`, `hypothesis`, `rich` ([#8597](https://github.com/napari/napari/pull/8597))\n- Move comment trigger of constraints update to a separate workflow ([#8600](https://github.com/napari/napari/pull/8600))\n- Fix running benchmarks by label by fix condition ([#8601](https://github.com/napari/napari/pull/8601))\n- [pre-commit.ci] pre-commit autoupdate ([#8602](https://github.com/napari/napari/pull/8602))\n- ci(dependabot): bump the actions group with 5 updates ([#8613](https://github.com/napari/napari/pull/8613))\n- Update `babel`, `dask`, `hypothesis`, `pooch`, `psutil`, `rich`, `tifffile`, `tqdm`, `wrapt`, `xarray` ([#8615](https://github.com/napari/napari/pull/8615))\n- Postpone QtViewer deprecation to 0.8.0 ([#8617](https://github.com/napari/napari/pull/8617))\n- Remove settings call on import in qt_event_loop ([#8619](https://github.com/napari/napari/pull/8619))\n- Remove remaining `npe1` usage ([#8622](https://github.com/napari/napari/pull/8622))\n- Add `uv.lock` and leak graphs to gitignore ([#8637](https://github.com/napari/napari/pull/8637))\n- Fix pint warning about deprecation of getitem ([#8638](https://github.com/napari/napari/pull/8638))\n- Update `coverage`, `fsspec`, `hypothesis`, `ipython`, `pillow`, `pyside6`, `qtconsole`, `tensorstore`, `tqdm`, `wrapt`, `xarray` ([#8641](https://github.com/napari/napari/pull/8641))\n- Bump superqt to 0.7.8 ([#8646](https://github.com/napari/napari/pull/8646))\n- Bump napari plugin manager ([#8647](https://github.com/napari/napari/pull/8647))\n- Add/unify background box for canvas overlays ([#8654](https://github.com/napari/napari/pull/8654))\n- [pre-commit.ci] pre-commit autoupdate ([#8655](https://github.com/napari/napari/pull/8655))\n- Upload triangulation artifacts if benchmarks fails ([#8664](https://github.com/napari/napari/pull/8664))\n- Maint: Have triangle only on py313 and lower ([#8668](https://github.com/napari/napari/pull/8668))\n- Update `pydantic-settings`, `tifffile` ([#8671](https://github.com/napari/napari/pull/8671))\n- [pre-commit.ci] pre-commit autoupdate ([#8675](https://github.com/napari/napari/pull/8675))\n- Add pregenerated data to stabilize shapes triangulation benchmarks ([#8676](https://github.com/napari/napari/pull/8676))\n- Update `hypothesis`, `numpy`, `pandas`, `pydantic-settings`, `rich`, `scipy`, `tifffile`, `virtualenv` ([#8692](https://github.com/napari/napari/pull/8692))\n- Add python 3.14 classifier to project metadata ([#8693](https://github.com/napari/napari/pull/8693))\n- [pre-commit.ci] pre-commit autoupdate ([#8697](https://github.com/napari/napari/pull/8697))\n- ci(dependabot): bump the actions group with 3 updates ([#8713](https://github.com/napari/napari/pull/8713))\n- Update `certifi`, `tifffile`, `virtualenv` ([#8716](https://github.com/napari/napari/pull/8716))\n- Update pyqt5 default references to pyqt6 ([#8732](https://github.com/napari/napari/pull/8732))\n- Remove usage of `partial` from `qt_viewer_buttons` ([#8741](https://github.com/napari/napari/pull/8741))\n- Update `numpy`, `superqt`, `tifffile`, `wrapt` ([#8748](https://github.com/napari/napari/pull/8748))\n- [pre-commit.ci] pre-commit autoupdate ([#8753](https://github.com/napari/napari/pull/8753))\n- Update `imageio`, `pydantic-extra-types`, `tensorstore`, `virtualenv` ([#8773](https://github.com/napari/napari/pull/8773))\n- [pre-commit.ci] pre-commit autoupdate ([#8774](https://github.com/napari/napari/pull/8774))\n- ci(dependabot): bump the github-actions group with 4 updates ([docs#856](https://github.com/napari/docs/pull/856))\n- Allow to redeploy docs after merge new commits to main branch ([docs#874](https://github.com/napari/docs/pull/874))\n- Add mdformat to pre-commit config ([docs#878](https://github.com/napari/docs/pull/878))\n- Reorg of the Usage section of the docs ([docs#881](https://github.com/napari/docs/pull/881))\n- Explicitly turn on blobless checkout for CircleCI ([docs#882](https://github.com/napari/docs/pull/882))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#885](https://github.com/napari/docs/pull/885))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#890](https://github.com/napari/docs/pull/890))\n- ci(dependabot): bump the github-actions group with 3 updates ([docs#898](https://github.com/napari/docs/pull/898))\n- Allow to use local copy of napari when using pixi ([docs#900](https://github.com/napari/docs/pull/900))\n- Fix pixi tasks for different environments ([docs#904](https://github.com/napari/docs/pull/904))\n- Stop tracking `docs/release/index.md` so that it is ignored ([docs#905](https://github.com/napari/docs/pull/905))\n- Maint Update PIP_CONSTRAINT to UV_CONSTRAINT in config ([docs#909](https://github.com/napari/docs/pull/909))\n- Remove pixi configuration for macos intel ([docs#913](https://github.com/napari/docs/pull/913))\n- Prepare on migration to `sphinxcontrib-mermaid` ([docs#923](https://github.com/napari/docs/pull/923))\n- ci(dependabot): bump the github-actions group with 2 updates ([docs#925](https://github.com/napari/docs/pull/925))\n- ci(dependabot): bump actions/download-artifact from 7.0.0 to 8.0.0 in the github-actions group ([docs#948](https://github.com/napari/docs/pull/948))\n\n\n## 25 authors added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Constantin Aronssohn](https://github.com/napari/napari/commits?author=cnstt) - @cnstt\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [LiudengZhang](https://github.com/napari/napari/commits?author=LiudengZhang) - @LiudengZhang +\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Neil Shephard](https://github.com/napari/docs/commits?author=ns-rse) - @ns-rse +\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Qin Yu](https://github.com/napari/napari/commits?author=qin-yu) ([docs](https://github.com/napari/docs/commits?author=qin-yu))  - @qin-yu +\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Samuel Le Meur-Diebolt](https://github.com/napari/napari/commits?author=sdiebolt) - @sdiebolt +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n\n## 25 reviewers added to this release (alphabetical)\n\n(+) denotes first-time contributors 🥳\n\n- [Ashley Anderson](https://github.com/napari/napari/commits?author=aganders3) - @aganders3\n- [Carlos Mario Rodriguez Reza](https://github.com/napari/docs/commits?author=carlosmariorr) - @carlosmariorr\n- [Carol Willing](https://github.com/napari/docs/commits?author=willingc) - @willingc\n- [Daniel Zhang](https://github.com/napari/napari/commits?author=DanGonite57) - @DanGonite57\n- [David Stansby](https://github.com/napari/napari/commits?author=dstansby) ([docs](https://github.com/napari/docs/commits?author=dstansby))  - @dstansby\n- [Draga Doncila Pop](https://github.com/napari/napari/commits?author=DragaDoncila) ([docs](https://github.com/napari/docs/commits?author=DragaDoncila))  - @DragaDoncila\n- [Edward Andò](https://github.com/napari/napari/commits?author=edwardando) - @edwardando +\n- [Grzegorz Bokota](https://github.com/napari/napari/commits?author=Czaki) ([docs](https://github.com/napari/docs/commits?author=Czaki))  - @Czaki\n- [Guillaume Witz](https://github.com/napari/napari/commits?author=guiwitz) ([docs](https://github.com/napari/docs/commits?author=guiwitz))  - @guiwitz\n- [hiroalchem](https://github.com/napari/napari/commits?author=hiroalchem) - @hiroalchem +\n- [Jacopo Abramo](https://github.com/napari/docs/commits?author=jacopoabramo) - @jacopoabramo\n- [Johannes Soltwedel](https://github.com/napari/docs/commits?author=jo-mueller) - @jo-mueller\n- [Juan Nunez-Iglesias](https://github.com/napari/napari/commits?author=jni) ([docs](https://github.com/napari/docs/commits?author=jni))  - @jni\n- [Kyle I. S. Harrington](https://github.com/napari/docs/commits?author=kephale) - @kephale\n- [Lorenzo Gaifas](https://github.com/napari/napari/commits?author=brisvag) ([docs](https://github.com/napari/docs/commits?author=brisvag))  - @brisvag\n- [Marcelo Zoccoler](https://github.com/napari/napari/commits?author=zoccoler) - @zoccoler\n- [Marco Edward Gorelli](https://github.com/napari/napari/commits?author=MarcoGorelli) - @MarcoGorelli +\n- [Margot Chazotte](https://github.com/napari/napari/commits?author=MargotCh) - @MargotCh +\n- [Melissa Weber Mendonça](https://github.com/napari/napari/commits?author=melissawm) ([docs](https://github.com/napari/docs/commits?author=melissawm))  - @melissawm\n- [Peter Sobolewski](https://github.com/napari/napari/commits?author=psobolewskiPhD) ([docs](https://github.com/napari/docs/commits?author=psobolewskiPhD))  - @psobolewskiPhD\n- [Rensu Theart](https://github.com/napari/docs/commits?author=rensutheart) - @rensutheart +\n- [Sesan](https://github.com/napari/napari/commits?author=Olusesan) - @Olusesan\n- [Tim Monko](https://github.com/napari/napari/commits?author=TimMonko) ([docs](https://github.com/napari/docs/commits?author=TimMonko))  - @TimMonko\n- [Yohsuke T. Fukai](https://github.com/napari/napari/commits?author=yfukai) - @yfukai +\n- [Zuzana Čočková](https://github.com/napari/napari/commits?author=cockovaz) - @cockovaz +\n","reactions":{"url":"https://api.github.com/repos/napari/napari/releases/298363590/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":1,"eyes":0},"mentions_count":30}]