What’s New in Iris#

v3.17 (30 Oct 2026)#

This document explains the changes made to Iris for this release (View all changes.)

v3.17 Release Highlights

The highlights for this major/minor release of Iris include:

  • Added native Zarr support. Iris can now read Zarr versions 2 and 3, and write version 3.

  • Iris’s AGENTS.md files have been rewritten from a month’s experience of AI-assisted development: a new source-code style guide, an architecture map, a shared writing guide, and testing rules that record what the suite does not cover.

  • We also want to thank @syahra712, @mo-AndrewCreswick, @rcomer and @01luyicheng for their contributions that have gone into this release.

And finally, get in touch with us on GitHub if you have any issues or feature requests for improving Iris. Enjoy!

✨ Features#

🐛 Bugs Fixed#

🔥 Deprecations#

🔗 Dependencies#

  • #7270: @trexfeathers modernised the Iris gallery tests, and set several to skip if using the incompatible combination of PROJ>=9.8 and Cartopy<0.26.

  • #7309: @claude, @trexfeathers, @stephenworsley, @pp-mo, @bjlittle, and OpenAI’s Codex added zarr (>=3.1.0) as an optional dependency, needed only to read or write a Zarr store, and xarray as a test dependency, used to check that stores Iris writes are readable by another Zarr reader.

💼 Internal#

  • #7198: @01luyicheng added unit tests for coord_dims(). ( #4552)

  • #7254: @trexfeathers made CI compatible with PROJ 9.8, including known incompatibilities with Cartopy <0.26 when plotting coastlines.

  • #7267: @rcomer moved the developers’ conda yaml file. It is now environment.yml in the repository root directory. ( #7205)

  • #7269: @rcomer updated the scipy intersphinx mapping to make documentation builds more reliable.

  • #7278: @claude fixed a race between the release-tooling tests, which under pytest-xdist could share a nothing progress file and so read one that another worker was part way through writing. Each test now runs in its own working directory, which also stops the test suite writing .nothing/ into the working copy. ( #7278)

  • #7299: Fix 1d-plot adjustment for line directions, for cartopy >= 0.26.

  • #7299: Fix shape-masking test for more stable results.

  • #7303: @trexfeathers removed iris.fileformats.netcdf.saver.VariableEmulator.

  • #7309: @claude, @trexfeathers, @stephenworsley, @pp-mo, @bjlittle, and OpenAI’s Codex split the CF loading and saving code out of iris.fileformats.netcdf into iris.fileformats.cf, so that it is shared by the netCDF and Zarr backends rather than owned by one of them. Both backends reach their storage through one abstraction, iris.fileformats.cf.dataset.CFDataset. The public netCDF names are unchanged.

  • #7312: @trexfeathers tightened the AGENTS.md agent instructions: comment and docstring rules are regrouped, lazy data has its own section, citations that decay silently - line numbers in other files, counts of call sites - are banned, and a new section covers a review comment that contradicts a written rule.