Skip to content

3.0.9 release notes #3183

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion changes/2774.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/2921.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3021.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3066.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3081.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3082.feature.rst

This file was deleted.

3 changes: 0 additions & 3 deletions changes/3100.bugfix.rst

This file was deleted.

7 changes: 0 additions & 7 deletions changes/3103.bugfix.rst

This file was deleted.

2 changes: 0 additions & 2 deletions changes/3127.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3128.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3130.feature.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3138.feature.rst

This file was deleted.

8 changes: 0 additions & 8 deletions changes/3140.bugfix.rst

This file was deleted.

1 change: 0 additions & 1 deletion changes/3156.bugfix.rst

This file was deleted.

43 changes: 43 additions & 0 deletions docs/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,49 @@ Release notes

.. towncrier release notes start

3.0.9 (2025-06-30)
------------------

Features
~~~~~~~~

- Add `zarr.storage.FsspecStore.from_mapper()` so that `zarr.open()` supports stores of type `fsspec.mapping.FSMap`. (:issue:`2774`)
- Implemented ``move`` for ``LocalStore`` and ``ZipStore``. This allows users to move the store to a different root path. (:issue:`3021`)
- Added `~zarr.errors.GroupNotFoundError`, which is raised when attempting to open a group that does not exist. (:issue:`3066`)
- Adds ``fill_value`` to the list of attributes displayed in the output of the ``AsyncArray.info()`` method. (:issue:`3081`)
- Use :py:func:`numpy.zeros` instead of :py:func:`np.full` for a performance speedup when creating a `zarr.core.buffer.NDBuffer` with `fill_value=0`. (:issue:`3082`)
- Port more stateful testing actions from `Icechunk <https://icechunk.io>`_. (:issue:`3130`)
- Adds a `with_read_only` convenience method to the `Store` abstract base class (raises `NotImplementedError`) and implementations to the `MemoryStore`, `ObjectStore`, `LocalStore`, and `FsspecStore` classes. (:issue:`3138`)


Bugfixes
~~~~~~~~

- Ignore stale child metadata when reconsolidating metadata. (:issue:`2921`)
- For Zarr format 2, allow fixed-length string arrays to be created without automatically inserting a
``Vlen-UT8`` codec in the array of filters. Fixed-length string arrays do not need this codec. This
change fixes a regression where fixed-length string arrays created with Zarr Python 3 could not be read with Zarr Python 2.18. (:issue:`3100`)
- When creating arrays without explicitly specifying a chunk size using `zarr.create` and other
array creation routines, the chunk size will now set automatically instead of defaulting to the data shape.
For large arrays this will result in smaller default chunk sizes.
To retain previous behaviour, explicitly set the chunk shape to the data shape.

This fix matches the existing chunking behaviour of
`zarr.save_array` and `zarr.api.asynchronous.AsyncArray.create`. (:issue:`3103`)
- When `zarr.save` has an argument `path=some/path/` and multiple arrays in `args`, the path resulted in `some/path/some/path` due to using the `path`
argument twice while building the array path. This is now fixed. (:issue:`3127`)
- Fix `zarr.open` default for argument `mode` when `store` is `read_only` (:issue:`3128`)
- Suppress `FileNotFoundError` when deleting non-existent keys in the `obstore` adapter.

When writing empty chunks (i.e. chunks where all values are equal to the array's fill value) to a zarr array, zarr
will delete those chunks from the underlying store. For zarr arrays backed by the `obstore` adapter, this will potentially
raise a `FileNotFoundError` if the chunk doesn't already exist.
Since whether or not a delete of a non-existing object raises an error depends on the behavior of the underlying store,
suppressing the error in all cases results in consistent behavior across stores, and is also what `zarr` seems to expect
from the store. (:issue:`3140`)
- Trying to open a StorePath/Array with ``mode='r'`` when the store is not read-only creates a read-only copy of the store. (:issue:`3156`)


3.0.8 (2025-05-19)
------------------

Expand Down