Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
34859c4
use the result of the broadcasted array to check the contents (#3629)
hmaarrfk Dec 29, 2025
8207dd3
docs: Correct grammar issues in a/an usage (#3634)
star1327p Dec 31, 2025
6cc2b0d
Bump the actions group across 1 directory with 5 updates (#3630)
dependabot[bot] Jan 8, 2026
034cd20
ci: align pre-commit Python with tooling config (#3633)
ramanbansal1 Jan 8, 2026
79d864e
chore: update pre-commit hooks (#3610)
pre-commit-ci[bot] Jan 8, 2026
884a8c9
adjust docstrings (#3615)
melonora Jan 8, 2026
87d2041
Add experimental section to the API docs (#3642)
maxrjones Jan 8, 2026
acdd892
Add instructions to contributing guide about executable docs (#3645)
maxrjones Jan 8, 2026
e67935a
Fix deprecation of setting shape on a numpy array in 2.5+ (#3648)
mscheltienne Jan 12, 2026
7166a8d
Bump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group (#3646)
dependabot[bot] Jan 12, 2026
1c05c1a
Set copy=False in reshape operation (#3649)
mscheltienne Jan 12, 2026
c7b166e
Bump mimimum supported version of numpy (#3636)
dstansby Jan 15, 2026
7eba7f1
add benchmarks using pytest-benchmark and codspeed (#3562)
d-v-b Jan 15, 2026
4cddcf5
Simplify testing of different numpy versions (#3654)
dstansby Jan 15, 2026
e94504e
Clean up test extra dependencies (#3656)
dstansby Jan 16, 2026
c06923d
docs: Correct some typos in documentation (#3661)
star1327p Jan 19, 2026
68359bc
Bump actions/checkout from 5 to 6 in the actions group (#3659)
dependabot[bot] Jan 20, 2026
3fa19d2
chore/use prek (#3658)
d-v-b Jan 23, 2026
b30ae18
Add benchmarks for sharded + local store indexing (#3663)
aldenks Jan 25, 2026
0e61449
Add methods for getting bytes + json to store abc (#3638)
d-v-b Jan 26, 2026
20d04d2
Bump astral-sh/setup-uv from 5 to 7 in the actions group (#3669)
dependabot[bot] Jan 26, 2026
d44baf6
only run codspeed benchmarks on PRs labelled 'benchmark' (#3673)
d-v-b Jan 26, 2026
9c47b6d
Improve the usability of array runtime config (#3668)
d-v-b Jan 30, 2026
b712f96
chore: update pre-commit hooks (#3689)
pre-commit-ci[bot] Feb 2, 2026
22ea09f
Fix HTML syntax errors in README.md table (#3694)
DimitriPapadopoulos Feb 8, 2026
229a690
Fix grammar, typos, and clarity issues in documentation (#1) (#3693)
DimitriPapadopoulos Feb 11, 2026
f4d1221
fix: raise error when encountering nullable string dtype (#3695)
flying-sheep Feb 11, 2026
74a248d
lift async array methods to stand-alone functions (#3676)
d-v-b Feb 11, 2026
2a032a8
don't use depdendabot for the support/v2 branch (#3701)
d-v-b Feb 12, 2026
1ed266d
Support with read only in wrappers (#3700)
BorisTheBrave Feb 12, 2026
3e7d24d
perf:improve performance of morton order iter (#3705)
d-v-b Feb 12, 2026
a06318e
allow numpy ints in shapelike (#3706)
d-v-b Feb 12, 2026
e03cfc8
🐛 Fix obstore listdir method using _relativize_path (#3657)
antoinegaston Feb 13, 2026
23596c1
perf:remove isinstance check (#3704)
d-v-b Feb 13, 2026
306e480
Skip chunk coordinate enumeration in resize when array is only growin…
jakenotjay Feb 17, 2026
36caf1f
perf:Add additional sharding benchmarks (#3712)
mkitti Feb 18, 2026
d45f846
perf: Optimize Morton order with hypercube and vectorization (#3708)
mkitti Feb 19, 2026
f8b3d38
fix/nested shard reads (#3655)
d-v-b Feb 19, 2026
2f9b0b3
perf: Vectorize get_chunk_slice for faster sharded writes (#3713)
mkitti Feb 20, 2026
efed3a4
TEST: fix group selection for delete (#3707)
ianhi Feb 21, 2026
32c7ab9
Add non-power-of-2 shapes for Morton coding to benchmarks (#3717)
mkitti Feb 24, 2026
879e1ce
perf: Fix near-miss penalty in _morton_order with hybrid ceiling+args…
mkitti Feb 25, 2026
974c06c
chore/update hatch + use dependency groups (#3728)
d-v-b Feb 28, 2026
d926e43
perf: add sync methods to codecs (#3721)
d-v-b Feb 28, 2026
b8094d8
fix: implement separate cache for byte-range-requests (#3710)
d-v-b Mar 1, 2026
faec389
chore: update ruff and fix new ruff issues (#3739)
DimitriPapadopoulos Mar 3, 2026
ca53f8e
chore: update pre-commit hooks (#3738)
pre-commit-ci[bot] Mar 3, 2026
c50668b
Use the prek GitHub Action (#3745)
DimitriPapadopoulos Mar 6, 2026
266f2bb
Limit privilege escalation and token theft in workflows (#3742)
DimitriPapadopoulos Mar 6, 2026
b6d3ae2
No need to check reST files (#3743)
DimitriPapadopoulos Mar 6, 2026
8d01860
chore: Pre-commit hook for multi-character lstrip/rstrip (#3756)
maxrjones Mar 10, 2026
a89b927
docs: use dark text color on light mode search bar (#3760)
maxrjones Mar 11, 2026
1cb1cce
docs: add example of creating uncompressed arrays (#3464) (#3752)
abishop1990 Mar 11, 2026
fa61ed8
fix: BaseFloat._check_scalar rejects invalid string values (#3586) (#…
abishop1990 Mar 11, 2026
a02d996
docs: fix docstring for Array.cdata_shape (#3768)
maxrjones Mar 12, 2026
93dbf78
fix: apply drop_axes squeeze in partial decode path for sharding (#36…
abishop1990 Mar 13, 2026
1bfa53f
docs: add favicon (#3775)
maxrjones Mar 13, 2026
fccf372
fix: validate that dask-style chunks have regular shapes (#3779)
maxrjones Mar 16, 2026
7c78574
docs: add glossary (#3767)
maxrjones Mar 16, 2026
46654ad
docs: fix search color (#3777)
maxrjones Mar 16, 2026
03355b8
perf/store sync (#3725)
d-v-b Mar 16, 2026
65e1375
Remove `rich` as required for `tree()` (#3778)
ianhi Mar 17, 2026
536ce9d
chore: less frequent codspeed runs (#3784)
maxrjones Mar 17, 2026
4acebeb
Add missing slash character to towncrier issue format (#3788)
d-v-b Mar 19, 2026
a323ac7
doc: add ai use policy to contributing guide (#3769)
jhamman Mar 19, 2026
9a71d59
chore/towncrier header (#3789)
d-v-b Mar 19, 2026
8116454
chore: Use OIDC for publishing (#3791)
maxrjones Mar 19, 2026
25ee087
chore/3.1.6 release notes (#3790)
d-v-b Mar 19, 2026
420f11c
Rename the `DimensionNames` type to `DimensionNamesLike`. (#3800)
d-v-b Mar 20, 2026
427df3b
docs: remove incorrect redirect (#3801)
maxrjones Mar 21, 2026
93dd0e4
fix: handle special uint32 arrays on Windows correctly (#3797)
radoering Mar 21, 2026
9fa1016
add release trigger that takes a tag as input (#3821)
d-v-b Mar 23, 2026
46843be
Removes testpypi as a target for the workflow-dispatch-triggered rele…
d-v-b Mar 23, 2026
b76e006
perf: full shard write fast path (#3793)
slevang Mar 24, 2026
79d552a
Revert the changes applied in #3821 + #3822 (#3825)
d-v-b Mar 24, 2026
690c5bb
Fix needs_release_notes.yml workflow (#3824)
d-v-b Mar 24, 2026
3a2ce2f
feat: return a useful value from `CodecPipeline.read()` (#3828)
d-v-b Mar 25, 2026
8ca385a
docs: fix the docstring for `CodecPipeline.write` (#3836)
d-v-b Mar 26, 2026
8dc7854
fix: Metadata (v2) for nested Structured dtypes
sehoffmann Nov 19, 2025
5e954ae
feat: experimental support for Subarray dtypes and backported support…
sehoffmann Nov 20, 2025
6d496e9
fix: np.bool -> bool
sehoffmann Nov 21, 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
11 changes: 0 additions & 11 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,6 @@ updates:
actions:
patterns:
- "*"

# Updates for support/v2 branch
- package-ecosystem: "pip"
directory: "/"
target-branch: "support/v2"
schedule:
interval: "weekly"
groups:
requirements:
patterns:
- "*"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "support/v2"
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/check_changelogs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,21 @@ name: Check changelog entries

on:
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
check-changelogs:
name: Check changelog entries
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Install uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0

- name: Check changelog entries
run: uv run --no-sync python ci/check_changelog_entries.py
37 changes: 37 additions & 0 deletions .github/workflows/codspeed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: CodSpeed Benchmarks

on:
schedule:
- cron: '0 9 * * 1' # Every Monday at 9am UTC
pull_request:
types: [labeled]
workflow_dispatch:

permissions:
contents: read

jobs:
benchmarks:
name: Run benchmarks
runs-on: codspeed-macro
if: |
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'benchmark'))
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install Hatch
uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc
with:
version: '1.16.5'
- name: Run the benchmarks
uses: CodSpeedHQ/action@v4
with:
mode: walltime
run: hatch run test.py3.11-minimal:pytest tests/benchmarks --codspeed
21 changes: 11 additions & 10 deletions .github/workflows/gpu_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,21 @@ on:
env:
LD_LIBRARY_PATH: /usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: py=${{ matrix.python-version }}, np=${{ matrix.numpy-version }}, deps=${{ matrix.dependency-set }}
name: py=${{ matrix.python-version }}

runs-on: gpu-runner
strategy:
matrix:
python-version: ['3.11']
numpy-version: ['2.2']
dependency-set: ["minimal"]

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -55,17 +56,17 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install Hatch and CuPy
run: |
python -m pip install --upgrade pip
pip install hatch
- name: Install Hatch
uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc
with:
version: '1.16.5'
- name: Set Up Hatch Env
run: |
hatch env create gputest.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }}
hatch env run -e gputest.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} list-env
hatch env create gputest.py${{ matrix.python-version }}
hatch env run -e gputest.py${{ matrix.python-version }} list-env
- name: Run Tests
run: |
hatch env run --env gputest.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} run-coverage-gpu
hatch env run --env gputest.py${{ matrix.python-version }} run-coverage

- name: Upload coverage
uses: codecov/codecov-action@13ce06bfc6bbe3ecf90edbbf1bc32fe5978ca1d3 # v5.3.1
Expand Down
20 changes: 11 additions & 9 deletions .github/workflows/hypothesis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ on:
- cron: "0 0 * * *" # Daily “At 00:00” UTC
workflow_dispatch: # allows you to trigger manually

permissions:
contents: read

env:
FORCE_COLOR: 3

Expand All @@ -24,7 +27,6 @@ jobs:
strategy:
matrix:
python-version: ['3.12']
numpy-version: ['2.2']
dependency-set: ["optional"]

steps:
Expand All @@ -42,17 +44,17 @@ jobs:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install Hatch
run: |
python -m pip install --upgrade pip
pip install hatch
uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc
with:
version: '1.16.5'
- name: Set Up Hatch Env
run: |
hatch env create test.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }}
hatch env run -e test.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} list-env
hatch env create test.py${{ matrix.python-version }}-${{ matrix.dependency-set }}
hatch env run -e test.py${{ matrix.python-version }}-${{ matrix.dependency-set }} list-env
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
- name: Restore cached hypothesis directory
id: restore-hypothesis-cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: .hypothesis/
key: cache-hypothesis-${{ runner.os }}-${{ github.run_id }}
Expand All @@ -64,13 +66,13 @@ jobs:
id: status
run: |
echo "Using Hypothesis profile: $HYPOTHESIS_PROFILE"
hatch env run --env test.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} run-hypothesis
hatch env run --env test.py${{ matrix.python-version }}-${{ matrix.dependency-set }} run-hypothesis

# explicitly save the cache so it gets updated, also do this even if it fails.
- name: Save cached hypothesis directory
id: save-hypothesis-cache
if: always() && steps.status.outcome != 'skipped'
uses: actions/cache/save@v4
uses: actions/cache/save@v5
with:
path: .hypothesis/
key: cache-hypothesis-${{ runner.os }}-${{ github.run_id }}
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Lint

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

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: j178/prek-action@v1
3 changes: 2 additions & 1 deletion .github/workflows/needs_release_notes.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: "Pull Request Labeler"

on:
- pull_request_target
pull_request_target:
types: [opened, reopened, synchronize]

jobs:
labeler:
Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/nightly_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
- cron: '0 2 * * *'
workflow_dispatch:

permissions:
contents: read

jobs:
build_and_upload_nightly:
name: Build and upload nightly wheels
Expand All @@ -22,16 +25,16 @@ jobs:
with:
python-version: '3.13'

- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install hatch
- name: Install Hatch
uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc
with:
version: '1.16.5'

- name: Build wheel and sdist
run: hatch build

- name: Upload nightly wheels
uses: scientific-python/upload-nightly-action@b36e8c0c10dbcfd2e05bf95f17ef8c14fd708dbf
uses: scientific-python/upload-nightly-action@5748273c71e2d8d3a61f3a11a16421c8954f9ecf
with:
artifacts_path: dist
anaconda_nightly_upload_token: ${{ secrets.ANACONDA_ORG_UPLOAD_TOKEN }}
46 changes: 33 additions & 13 deletions .github/workflows/releases.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
name: Wheels

on: [push, pull_request]
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

Expand All @@ -21,13 +33,13 @@ jobs:
with:
python-version: '3.11'

- name: Install PyBuild
run: |
python -m pip install --upgrade pip
pip install hatch
- name: Install Hatch
uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc
with:
version: '1.16.5'
- name: Build wheel and sdist
run: hatch build
- uses: actions/upload-artifact@v5
- uses: actions/upload-artifact@v7
with:
name: releases
path: dist
Expand All @@ -36,7 +48,7 @@ jobs:
needs: [build_artifacts]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v6
- uses: actions/download-artifact@v7
with:
name: releases
path: dist
Expand All @@ -47,16 +59,24 @@ jobs:
ls dist

upload_pypi:
needs: [build_artifacts]
needs: [build_artifacts, test_dist_pypi]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
environment:
name: releases
url: https://pypi.org/p/zarr
permissions:
id-token: write
attestations: write
artifact-metadata: write
steps:
- uses: actions/download-artifact@v6
- uses: actions/download-artifact@v7
with:
name: releases
path: dist
- uses: pypa/[email protected]
- name: Generate artifact attestation
uses: actions/attest@v4
with:
user: __token__
password: ${{ secrets.pypi_password }}
# To test: repository_url: https://test.pypi.org/legacy/
subject-path: dist/*
- name: Publish package to PyPI
uses: pypa/gh-action-pypi[email protected]
Loading