Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
84a1dd6
Enable tests on 3.0.x branch (#3135)
dstansby Jun 17, 2025
8028645
Changelog for 3.0.9
dstansby Jun 18, 2025
5c10a4f
Backport PR #3149: Add GroupNotFound error to API docs (#3179)
meeseeksmachine Jun 30, 2025
e6bb1ae
Backport PR #3140: Suppress FileNotFoundError when deleting keys in t…
meeseeksmachine Jun 30, 2025
04a4c5f
Backport PR #3138: Add with_read_only() convenience method to store (…
meeseeksmachine Jun 30, 2025
19900e1
Create read only copy if needed when opening a store path (#3156)
maxrjones Jun 24, 2025
1064262
Create read only copy if needed when opening a store path (#3156) (#3…
d-v-b Jun 30, 2025
d01eced
Merge branch '3.0.9' of github.com:zarr-developers/zarr-python into 3…
d-v-b Jun 30, 2025
8d51dd3
Remove breaking check about `auto_mkdir` for FSSpecStore (#3193)
maxrjones Jul 3, 2025
1e66c40
Remove breaking check about `auto_mkdir` for FSSpecStore (#3193) (#3203)
d-v-b Jul 3, 2025
6f2cbb2
Merge branch '3.0.10' of github.com:zarr-developers/zarr-python into …
d-v-b Jul 3, 2025
c7218a3
Add missing import for AsyncFileSystemWrapper for `_make_async` in `_…
tasansal Jul 3, 2025
e0ba359
Auto backport of pr 3195 on 3.0.10 (#3204)
d-v-b Jul 3, 2025
5b456f9
Merge branch '3.0.10' of github.com:zarr-developers/zarr-python into …
d-v-b Jul 3, 2025
025f6ae
3.0.9 release notes (#3183)
d-v-b Jun 30, 2025
cff70a3
release notes
d-v-b Jul 3, 2025
7bf7176
Merge branch '3.0.10' into merge-up-3.0.10
dstansby Jul 9, 2025
7ae77b5
Merge branch '3.0.9' into merge-up-3.0.10
dstansby Jul 9, 2025
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
6 changes: 2 additions & 4 deletions .github/workflows/hypothesis.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
name: Slow Hypothesis CI
on:
push:
branches:
- "main"
branches: [main, 3.0.x]
pull_request:
branches:
- "main"
branches: [main, 3.0.x]
types: [opened, reopened, synchronize, labeled]
schedule:
- cron: "0 0 * * *" # Daily “At 00:00” UTC
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ name: Test

on:
push:
branches: [ main ]
branches: [ main, 3.0.x ]
pull_request:
branches: [ main ]
branches: [ main, 3.0.x ]
workflow_dispatch:

concurrency:
Expand Down
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.

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

.. towncrier release notes start

3.0.10 (2025-07-03)
-------------------

Bugfixes
~~~~~~~~

- Removed an unnecessary check from ``_fsspec._make_async`` that would raise an exception when
creating a read-only store backed by a local file system with ``auto_mkdir`` set to ``False``. (:issue:`3193`)
- Add missing import for AsyncFileSystemWrapper for _make_async in _fsspec.py (:issue:`3195`)


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