Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
060d121
Add V2 backward-compatibility to Zarr v3 implementation
alejoe91 Apr 2, 2026
d31c9a9
fix ruff
alejoe91 Apr 2, 2026
1e5efad
feat: support ZarrV2 in read mode with NWBZarrV2IO
alejoe91 May 29, 2026
bbbccee
fix: ruff
alejoe91 May 29, 2026
c05d039
feat: add convert_to_v3 helper function
alejoe91 Jun 23, 2026
312eb6e
fix: conflicts
alejoe91 Jun 24, 2026
60b51c9
fix: rename v2_backend->backend_v2; docstrings; static methods
alejoe91 Jun 24, 2026
0fb9d13
fix: v2 check for remote assets
alejoe91 Jun 24, 2026
7cda419
refac: rename v2 files to zarrv2
alejoe91 Jun 25, 2026
3498950
refac: rename v2 files to zarrv2 2
alejoe91 Jun 25, 2026
6bce5f3
refac: rename v2 files to zarrv2 3
alejoe91 Jun 25, 2026
67afc56
docs: convert numpy to sphynx-style
alejoe91 Jun 25, 2026
523e9c5
fix: fallback for remote v2 data
alejoe91 Jun 25, 2026
f007f28
fix: monkey-patch zarr.Array.__iter__
alejoe91 Jun 25, 2026
393cb66
Merge branch 'zarr-v3-migration' into nwb-zarr-v2-io
alejoe91 Jun 25, 2026
5e56808
Apply suggestions from code review
alejoe91 Jun 26, 2026
c32aa25
suggestions from code review
alejoe91 Jun 26, 2026
d0eef2d
fix: zarrv2 renaming in tests
alejoe91 Jun 26, 2026
77381ed
fix: remove zarr version dispatc in NWBZarrIO.read_nwb and more docs
alejoe91 Jun 26, 2026
0675eb0
test: remove sniffer test
alejoe91 Jun 26, 2026
4908eb7
fix: codespell
alejoe91 Jun 26, 2026
0c0538f
docs: update streaming example
alejoe91 Jun 26, 2026
3743564
test: add nwb zarrv2 test files
alejoe91 Jun 30, 2026
0dc34d9
fix: bump up minimal to pynwb 3.0 and fix windows relpath
alejoe91 Jun 30, 2026
ed13100
fix: test file and expected json
alejoe91 Jun 30, 2026
ae7f535
build: bump up minimal to 3.1.0
alejoe91 Jun 30, 2026
f5b5ac9
build: revert minimal to 2.8.3 and regenerate test files
alejoe91 Jun 30, 2026
e0e325a
Fix v2 backend docs/naming and add clear error for v2-on-v3 reads
rly Jul 19, 2026
493eda4
Keep the Zarr v2 read-error message within the HDMF layer
rly Jul 19, 2026
4c13a69
Merge branch 'zarr-v3-migration' into nwb-zarr-v2-io
rly Jul 20, 2026
17378f2
Capture the intermittent py3.14 CI deadlock instead of spinning for 6…
rly Jul 22, 2026
56e269e
Revert "Capture the intermittent py3.14 CI deadlock instead of spinni…
rly Jul 22, 2026
9c14265
Document anonymous S3 read behavior in NWBZarrV2IO helpers
rly Jul 24, 2026
d32ca77
Fix and harden the Zarr v2 read-error hint on the read_builder path
rly Jul 24, 2026
3c901c9
Apply black formatting to files flagged by the pinned black hook
rly Jul 24, 2026
b9f6a4a
Add changelog entry for the zarr Array __iter__ patch
rly Jul 24, 2026
4001cf0
Point the eager-load docstring at the tracking issue #356
rly Jul 24, 2026
e7d2111
Document the 1-D assumption in the v2 object-array chunk decode
rly Jul 24, 2026
f0c963d
Restore the #348 changelog entry to the released 0.13.0 section
rly Jul 24, 2026
7236877
Clean up ZarrV2IO open fallbacks
rly Jul 24, 2026
efc70e5
Clean up tutorial text
rly Jul 24, 2026
3c5bb28
Correct consolidated-metadata and pynwb read references in the S3 tut…
rly Jul 24, 2026
2bf250b
Correct zarr.copy comment and align v2 legacy-version references to 0.14
rly Jul 24, 2026
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
54 changes: 54 additions & 0 deletions .github/workflows/test_backward_compat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Test zarr v2 backward compatibility
on:
push:
branches:
- dev
pull_request:

jobs:
test-v2-backward-compat:
name: zarr v2 → v3 backward compat
runs-on: ubuntu-latest
defaults:
run:
shell: bash

steps:
- name: Checkout repo
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

# --- Step 1: generate a zarr v2 NWB file with old deps ---
- name: Create zarr v2 environment
run: |
python -m venv /tmp/zarr_v2_env
/tmp/zarr_v2_env/bin/pip install --upgrade pip
/tmp/zarr_v2_env/bin/pip install "hdmf-zarr<1.0" "zarr>=2.18,<3" pynwb

- name: Generate zarr v2 NWB test file
run: |
/tmp/zarr_v2_env/bin/python tests/unit/helpers/generate_v2_nwb_zarr.py \
--nwb-output-path tests/unit/helpers/v2_test_file.nwb.zarr \
--expectations-output-path tests/unit/helpers/v2_expected.json
echo "--- generated file tree ---"
find tests/unit/helpers/v2_test_file.nwb.zarr -maxdepth 2 -type d | head -30
echo "--- expected metadata ---"
cat tests/unit/helpers/v2_expected.json
Comment thread
oruebel marked this conversation as resolved.
Outdated

# --- Step 2: read the v2 file with current code + zarr v3 ---
- name: Install current hdmf-zarr + zarr v3
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[full]"
python -m pip install pytest
python -m pip list

- name: Run backward compatibility tests
run: |
pytest tests/unit/test_v2_backward_compat.py -v
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -150,3 +150,6 @@ _version.py
.ruff_cache
zarr_test*.zarr
*.nwb.zarr

# Generated backward compat test artifacts
tests/unit/helpers/v2_expected.json
4 changes: 3 additions & 1 deletion src/hdmf_zarr/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from .backend import ZarrIO
from .utils import ZarrDataIO
from .nwb import NWBZarrIO
from .v2_backend import ZarrV2IO, is_zarr_v2_file
from .nwb_v2 import NWBZarrV2IO

try:
# see https://effigies.gitlab.io/posts/python-packaging-2023/
Expand All @@ -12,7 +14,7 @@
__version__ = version("hdmf")
del version

__all__ = ["ZarrIO", "ZarrDataIO", "NWBZarrIO"]
__all__ = ["ZarrIO", "ZarrDataIO", "NWBZarrIO", "ZarrV2IO", "NWBZarrV2IO", "is_zarr_v2_file"]
Comment thread
oruebel marked this conversation as resolved.

# Duecredit definitions
from ._due import due, BibTeX # noqa: E402
Expand Down
Loading
Loading