From 143ff137e61ca07ef58444167f07afa477eb9802 Mon Sep 17 00:00:00 2001 From: Davis Bennett Date: Thu, 18 Sep 2025 20:29:08 +0200 Subject: [PATCH] 3.1.3 release notes (#3472) --- changes/1798.feature.rst | 2 -- changes/2582.bugfix.rst | 2 -- changes/2859.removal.rst | 2 -- changes/2992.bugfix.rst | 3 --- changes/3310.feature.rst | 1 - changes/3376.misc.rst | 3 --- changes/3390.misc.rst | 1 - changes/3403.misc.rst | 6 ----- changes/3411.bugfix.rst | 1 - changes/3422.bugfix.rst | 4 ---- changes/3425.bugfix.rst | 1 - changes/3428.bugfix.rst | 1 - changes/3431.bugfix.rst | 2 -- changes/3436.feature.rst | 2 -- changes/3444.feature.rst | 1 - changes/3448.bugfix.rst | 3 --- changes/3449.misc.rst | 1 - docs/release-notes.rst | 49 ++++++++++++++++++++++++++++++++++++++++ 18 files changed, 49 insertions(+), 36 deletions(-) delete mode 100644 changes/1798.feature.rst delete mode 100644 changes/2582.bugfix.rst delete mode 100644 changes/2859.removal.rst delete mode 100644 changes/2992.bugfix.rst delete mode 100644 changes/3310.feature.rst delete mode 100644 changes/3376.misc.rst delete mode 100644 changes/3390.misc.rst delete mode 100644 changes/3403.misc.rst delete mode 100644 changes/3411.bugfix.rst delete mode 100644 changes/3422.bugfix.rst delete mode 100644 changes/3425.bugfix.rst delete mode 100644 changes/3428.bugfix.rst delete mode 100644 changes/3431.bugfix.rst delete mode 100644 changes/3436.feature.rst delete mode 100644 changes/3444.feature.rst delete mode 100644 changes/3448.bugfix.rst delete mode 100644 changes/3449.misc.rst diff --git a/changes/1798.feature.rst b/changes/1798.feature.rst deleted file mode 100644 index 64d4efdf08..0000000000 --- a/changes/1798.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add a command-line interface to migrate v2 Zarr metadata to v3. Corresponding functions are also -provided under zarr.metadata. diff --git a/changes/2582.bugfix.rst b/changes/2582.bugfix.rst deleted file mode 100644 index 1c8c7fab5c..0000000000 --- a/changes/2582.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Prevents creation of groups (.create_group) or arrays (.create_array) as children -of an existing array. diff --git a/changes/2859.removal.rst b/changes/2859.removal.rst deleted file mode 100644 index bd417855f3..0000000000 --- a/changes/2859.removal.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``Store.set_partial_writes`` method, which was not used by Zarr-Python, has been removed. -``store.supports_partial_writes`` is now always ``False``. diff --git a/changes/2992.bugfix.rst b/changes/2992.bugfix.rst deleted file mode 100644 index 7e4211cdde..0000000000 --- a/changes/2992.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a bug preventing ``ones_like``, ``full_like``, ``empty_like``, ``zeros_like`` and ``open_like`` functions from accepting -an explicit specification of array attributes like shape, dtype, chunks etc. The functions ``full_like``, -``empty_like``, and ``open_like`` now also more consistently infer a ``fill_value`` parameter from the provided array. diff --git a/changes/3310.feature.rst b/changes/3310.feature.rst deleted file mode 100644 index b21d3219fc..0000000000 --- a/changes/3310.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Add obstore implementation of delete_dir. diff --git a/changes/3376.misc.rst b/changes/3376.misc.rst deleted file mode 100644 index 68b0d9d855..0000000000 --- a/changes/3376.misc.rst +++ /dev/null @@ -1,3 +0,0 @@ -Define Zarr V3-specific codecs from numcodecs inside this repo. These codecs can be found in -:mod:`zarr.codecs.numcodecs`. This is necessary to resolve a circular dependency between Zarr -and Numcodecs. \ No newline at end of file diff --git a/changes/3390.misc.rst b/changes/3390.misc.rst deleted file mode 100644 index fa229a3ad8..0000000000 --- a/changes/3390.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Improve documentation consistency across API functions and remove outdated references to deprecated configuration values that no longer work. \ No newline at end of file diff --git a/changes/3403.misc.rst b/changes/3403.misc.rst deleted file mode 100644 index 2ad4821d73..0000000000 --- a/changes/3403.misc.rst +++ /dev/null @@ -1,6 +0,0 @@ -Moves some indexing-specific exceptions to ``zarr.errors``, and ensures that all Zarr-specific -exception classes accept a pre-formatted string as a single argument. This is a breaking change to -the following exceptions classes: :class:`zarr.errors.BoundsCheckError`, :class:`zarr.errors.NegativeStepError` -:class:`zarr.errors.VindexInvalidSelectionError`. These classes previously generated internally -formatted error messages when given a single argument. After this change, formatting of the error -message is up to the routine invoking the error. \ No newline at end of file diff --git a/changes/3411.bugfix.rst b/changes/3411.bugfix.rst deleted file mode 100644 index b9303b9666..0000000000 --- a/changes/3411.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -LocalStore now uses atomic writes, which should prevent some cases of corrupted data. diff --git a/changes/3422.bugfix.rst b/changes/3422.bugfix.rst deleted file mode 100644 index ed4b8c266d..0000000000 --- a/changes/3422.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a potential race condition when using :func:`zarr.create_array` with the ``data`` parameter -set to a NumPy array. Previously Zarr was iterating over the newly created array with a granularity -that was too low. Now Zarr chooses a granularity that matches the size of the stored objects for -that array. \ No newline at end of file diff --git a/changes/3425.bugfix.rst b/changes/3425.bugfix.rst deleted file mode 100644 index 71cc147287..0000000000 --- a/changes/3425.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ChunkGrid definition (broken in 3.1.2) diff --git a/changes/3428.bugfix.rst b/changes/3428.bugfix.rst deleted file mode 100644 index d15a3db3ba..0000000000 --- a/changes/3428.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Ensure syntax like ``root['/subgroup']`` works equivalently to ``root['subgroup']`` when using consolidated metadata. diff --git a/changes/3431.bugfix.rst b/changes/3431.bugfix.rst deleted file mode 100644 index cdf166ddd5..0000000000 --- a/changes/3431.bugfix.rst +++ /dev/null @@ -1,2 +0,0 @@ -Creating a new group with `zarr.group` no longer errors. -This fixes a regression introduced in version 3.1.2. diff --git a/changes/3436.feature.rst b/changes/3436.feature.rst deleted file mode 100644 index 85e28bb8b1..0000000000 --- a/changes/3436.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Adds a registry for chunk key encodings for extensibility. -This allows users to implement a custom `ChunkKeyEncoding`, which can be registered via `register_chunk_key_encoding` or as an entry point under `zarr.chunk_key_encoding`. diff --git a/changes/3444.feature.rst b/changes/3444.feature.rst deleted file mode 100644 index d621c428b6..0000000000 --- a/changes/3444.feature.rst +++ /dev/null @@ -1 +0,0 @@ -Trying to open a group at a path were a array already exists now raises a helpful error. diff --git a/changes/3448.bugfix.rst b/changes/3448.bugfix.rst deleted file mode 100644 index 6c8b106153..0000000000 --- a/changes/3448.bugfix.rst +++ /dev/null @@ -1,3 +0,0 @@ -Setting ``fill_value`` to a float like ``0.0`` when the data type of the array is an integer is a common -mistake. This change lets Zarr Python read arrays with this erroneous metadata, although Zarr Python -will not create such arrays. \ No newline at end of file diff --git a/changes/3449.misc.rst b/changes/3449.misc.rst deleted file mode 100644 index df17bf582e..0000000000 --- a/changes/3449.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Publish nightly wheels to https://anaconda.org/scientific-python-nightly-wheels/. diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 45401caa2e..8a6061b40e 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -3,6 +3,55 @@ Release notes .. towncrier release notes start +zarr 3.1.3 (2025-09-18) +----------------------- + +Features +~~~~~~~~ + +- Add a command-line interface to migrate v2 Zarr metadata to v3. Corresponding functions are also + provided under zarr.metadata. (:issue:`1798`) +- Add obstore implementation of delete_dir. (:issue:`3310`) +- Adds a registry for chunk key encodings for extensibility. + This allows users to implement a custom `ChunkKeyEncoding`, which can be registered via `register_chunk_key_encoding` or as an entry point under `zarr.chunk_key_encoding`. (:issue:`3436`) +- Trying to open a group at a path were a array already exists now raises a helpful error. (:issue:`3444`) + + +Bugfixes +~~~~~~~~ + +- Prevents creation of groups (.create_group) or arrays (.create_array) as children + of an existing array. (:issue:`2582`) +- Fix a bug preventing ``ones_like``, ``full_like``, ``empty_like``, ``zeros_like`` and ``open_like`` functions from accepting + an explicit specification of array attributes like shape, dtype, chunks etc. The functions ``full_like``, + ``empty_like``, and ``open_like`` now also more consistently infer a ``fill_value`` parameter from the provided array. (:issue:`2992`) +- LocalStore now uses atomic writes, which should prevent some cases of corrupted data. (:issue:`3411`) +- Fix a potential race condition when using :func:`zarr.create_array` with the ``data`` parameter + set to a NumPy array. Previously Zarr was iterating over the newly created array with a granularity + that was too low. Now Zarr chooses a granularity that matches the size of the stored objects for + that array. (:issue:`3422`) +- Fix ChunkGrid definition (broken in 3.1.2) (:issue:`3425`) +- Ensure syntax like ``root['/subgroup']`` works equivalently to ``root['subgroup']`` when using consolidated metadata. (:issue:`3428`) +- Creating a new group with `zarr.group` no longer errors. + This fixes a regression introduced in version 3.1.2. (:issue:`3431`) +- Setting ``fill_value`` to a float like ``0.0`` when the data type of the array is an integer is a common + mistake. This change lets Zarr Python read arrays with this erroneous metadata, although Zarr Python + will not create such arrays. (:issue:`3448`) + + +Deprecations and Removals +~~~~~~~~~~~~~~~~~~~~~~~~~ + +- The ``Store.set_partial_writes`` method, which was not used by Zarr-Python, has been removed. + ``store.supports_partial_writes`` is now always ``False``. (:issue:`2859`) + + +Misc +~~~~ + +- :issue:`3376`, :issue:`3390`, :issue:`3403`, :issue:`3449` + + 3.1.2 (2025-08-25) ------------------