Read the blog post about the 3.0 release: https://zarr.dev/blog/zarr-python-3-release/
What's Changed
* Disable pre-commit.ci's PR autofixes by jakirkham in https://github.com/zarr-developers/zarr-python/pull/1506
* Bump redis from 4.5.5 to 4.6.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1446
* Bump ipywidgets from 8.0.7 to 8.1.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1510
* Bump actions/checkout from 3 to 4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1520
* Tiny tweak: Extend copyright notice to 2023 by JackKelly in https://github.com/zarr-developers/zarr-python/pull/1528
* Bump pytest from 7.3.2 to 7.4.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1445
* Allow black to be run on any Python version by dstansby in https://github.com/zarr-developers/zarr-python/pull/1549
* Unnecessary list literal → set literal by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1534
* Minor edits in docs by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1509
* Preserve dimension separator metadata when resizing arrays by ziw-liu in https://github.com/zarr-developers/zarr-python/pull/1540
* io.open → open by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1421
* Bump pymongo from 4.4.0 to 4.5.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1507
* Fix typo newly found by codespell by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1554
* Bump actions/setup-python from 4.6.0 to 4.7.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1541
* Bump pytest-doctestplus from 0.13.0 to 1.0.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1512
* Bump fasteners from 0.18 to 0.19 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1553
* Add links to numcodecs docs in tutorial by dstansby in https://github.com/zarr-developers/zarr-python/pull/1535
* Fail doc build on warnings by dstansby in https://github.com/zarr-developers/zarr-python/pull/1548
* DOC: Enable offline formats by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1560
* Remove dependency by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1563
* Bump setuptools-scm from 7.1.0 to 8.0.4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1562
* Bump redis from 4.6.0 to 5.0.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1561
* Update release.rst by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1574
* Automatically document Array members by dstansby in https://github.com/zarr-developers/zarr-python/pull/1547
* DOC: Minor tweak to advanced indexing example in tutorial by rossbar in https://github.com/zarr-developers/zarr-python/pull/1550
* Bump h5py from 3.9.0 to 3.10.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1571
* Bump fsspec from 2023.6.0 to 2023.10.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1570
* Bump pytest-timeout from 2.1.0 to 2.2.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1577
* Bump pytest from 7.4.0 to 7.4.3 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1576
* Bump conda-incubator/setup-miniconda from 2.2.0 to 2.3.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1575
* Remove `CODE_OF_CONDCUT.md` file from the Zarr-Python repo by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1572
* Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1586
* Bump conda-incubator/setup-miniconda from 2.3.0 to 3.0.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1587
* Bootstrap v3 branch with zarrita by jhamman in https://github.com/zarr-developers/zarr-python/pull/1584
* Cache result of FSStore._fsspec_installed() by ph03 in https://github.com/zarr-developers/zarr-python/pull/1581
* Extensible codecs for V3 by normanrz in https://github.com/zarr-developers/zarr-python/pull/1588
* Bump version of black in pre-commit by dstansby in https://github.com/zarr-developers/zarr-python/pull/1559
* Use list comprehension where applicable by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1555
* Bump numcodecs from 0.11.0 to 0.12.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1580
* Use format specification mini-language to format string by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1558
* Single startswith() call instead of multiple ones by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1556
* Bump pymongo from 4.5.0 to 4.6.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1585
* Move codespell options around by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1196
* Bump fsspec from 2023.10.0 to 2023.12.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1600
* Add type hints to zarr.create by dstansby in https://github.com/zarr-developers/zarr-python/pull/1536
* Remove unused mypy ignore comments by dstansby in https://github.com/zarr-developers/zarr-python/pull/1602
* Bump actions/setup-python from 4.7.1 to 5.0.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1605
* Bump github/codeql-action from 2 to 3 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1609
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1448
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1618
* Bump fsspec from 2023.12.1 to 2023.12.2 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1606
* Bump pytest-doctestplus from 1.0.0 to 1.1.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1619
* Bump pytest from 7.4.3 to 7.4.4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1622
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1626
* Create TEAM.md by jhamman in https://github.com/zarr-developers/zarr-python/pull/1628
* Drop python 3.8 and numpy 1.20 by joshmoore in https://github.com/zarr-developers/zarr-python/pull/1557
* Add Norman Rzepka to core-dev team by jhamman in https://github.com/zarr-developers/zarr-python/pull/1630
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1633
* Bump actions/download-artifact from 3 to 4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1611
* Update tutorial.rst to include section about accessing Zip Files on S3 by jeffpeck10x in https://github.com/zarr-developers/zarr-python/pull/1615
* doc(v3): add v3 roadmap and design document by jhamman in https://github.com/zarr-developers/zarr-python/pull/1583
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1636
* Don't import from tests by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1601
* [V3] Update minimum supported Python and Numpy versions by jhamman in https://github.com/zarr-developers/zarr-python/pull/1638
* use src layout and use `hatch` for packaging by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1592
* temporarily disable mypy in v3 directory by jhamman in https://github.com/zarr-developers/zarr-python/pull/1649
* create hatch test env by rabernat in https://github.com/zarr-developers/zarr-python/pull/1650
* removed unused environments and workflows by rabernat in https://github.com/zarr-developers/zarr-python/pull/1651
* Listable V3 Stores by jhamman in https://github.com/zarr-developers/zarr-python/pull/1634
* Codecs without array metadata by normanrz in https://github.com/zarr-developers/zarr-python/pull/1632
* Add env variables to sprint setup instructions by maxrjones in https://github.com/zarr-developers/zarr-python/pull/1654
* fix sync group class methods by jhamman in https://github.com/zarr-developers/zarr-python/pull/1652
* Specify docs hatch env for v3 branch by maxrjones in https://github.com/zarr-developers/zarr-python/pull/1655
* Add test matrix for V3 by maxrjones in https://github.com/zarr-developers/zarr-python/pull/1656
* Pyodide support: don't require fasteners on emscripten by hoodmane in https://github.com/zarr-developers/zarr-python/pull/1663
* Update release.rst by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1621
* Bump numpy from 1.24.3 to 1.26.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1543
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1642
* Bump ipywidgets from 8.1.0 to 8.1.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1538
* Proper argument for numpy.reshape by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1425
* Bump ipywidgets from 8.1.1 to 8.1.2 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1666
* docs: ZIP-related tweaks by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1641
* Bump numpy from 1.26.1 to 1.26.4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1669
* Change occurrences of % and format() to f-strings by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1423
* Remove attrs by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1660
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1672
* Bump pymongo from 4.6.1 to 4.6.2 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1674
* Bump conda-incubator/setup-miniconda from 3.0.1 to 3.0.2 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1677
* Add typing to dimension separator arguments by dstansby in https://github.com/zarr-developers/zarr-python/pull/1620
* Replace Gitter with new Zulip Chat link by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1685
* Bump redis from 5.0.1 to 5.0.2 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1688
* Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1691
* Bump pytest-doctestplus from 1.1.0 to 1.2.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1693
* Fix RTD build by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1694
* Update release.rst for v2.17.1 by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1673
* Bump pytest-timeout from 2.2.0 to 2.3.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1697
* Bump conda-incubator/setup-miniconda from 3.0.2 to 3.0.3 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1690
* docs(tutorial.rst): fix link to GCSMap by DahnJ in https://github.com/zarr-developers/zarr-python/pull/1689
* Update installation.rst stating version support policy by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1665
* Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1700
* Bump pytest-doctestplus from 1.2.0 to 1.2.1 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1699
* Bump redis from 5.0.2 to 5.0.3 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1698
* Add Python 3.12 to CI by jhamman in https://github.com/zarr-developers/zarr-python/pull/1719
* Bump pytest-cov from 4.1.0 to 5.0.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1722
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1708
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1723
* Fix release notes (following 1719) by jhamman in https://github.com/zarr-developers/zarr-python/pull/1725
* Override ipython repr methods. by dcherian in https://github.com/zarr-developers/zarr-python/pull/1724
* Bump pymongo from 4.6.2 to 4.6.3 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1729
* Remove v1 and v2 specification by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1582
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1738
* Optimize Array.info and Group.info by dcherian in https://github.com/zarr-developers/zarr-python/pull/1733
* Bump actions/setup-python from 5.0.0 to 5.1.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1736
* Couple fixes by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1737
* Fix tests with Pytest 8 by dstansby in https://github.com/zarr-developers/zarr-python/pull/1714
* Avoid redundant __contains__ by dcherian in https://github.com/zarr-developers/zarr-python/pull/1739
* Array & Group: Use already loaded attributes to populate cache. by dcherian in https://github.com/zarr-developers/zarr-python/pull/1734
* Optimize attribute setting by dcherian in https://github.com/zarr-developers/zarr-python/pull/1741
* Make sure fs exceptions are raised if not MissingFs exceptions (clone) by itcarroll in https://github.com/zarr-developers/zarr-python/pull/1604
* chore(release): update changelog for 2.17.2 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1775
* Resolve Mypy erorrs in `v3` branch by DahnJ in https://github.com/zarr-developers/zarr-python/pull/1692
* chore(docs): reset release notes as unreleased by jhamman in https://github.com/zarr-developers/zarr-python/pull/1776
* Specify hatch envs using GitHub actions matrix for v3 tests by maxrjones in https://github.com/zarr-developers/zarr-python/pull/1728
* black -> ruff format + cleanup by Saransh-cpp in https://github.com/zarr-developers/zarr-python/pull/1639
* Development installation/contributing docs updates by aldenks in https://github.com/zarr-developers/zarr-python/pull/1643
* Allow dmypy to be run on v3 branch by dstansby in https://github.com/zarr-developers/zarr-python/pull/1780
* Remove unused typing ignore comments by dstansby in https://github.com/zarr-developers/zarr-python/pull/1781
* Check untyped defs on v3 by dstansby in https://github.com/zarr-developers/zarr-python/pull/1784
* [v3] Enable some more strict mypy options by dstansby in https://github.com/zarr-developers/zarr-python/pull/1793
* implement __eq__ for LocalStore by Charoula-Kyriakides in https://github.com/zarr-developers/zarr-python/pull/1792
* Remove old v3 by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1742
* Bump codecov/codecov-action from 3 to 4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1647
* [v3] Disallow generic Any typing by dstansby in https://github.com/zarr-developers/zarr-python/pull/1794
* Update release.rst for v2.17.2 by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1778
* Deprecate the experimental v3 implementation by jhamman in https://github.com/zarr-developers/zarr-python/pull/1802
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1779
* Fix `is_total_slice` for size-1 dimensions by dcherian in https://github.com/zarr-developers/zarr-python/pull/1800
* V3 update pre commit by jhamman in https://github.com/zarr-developers/zarr-python/pull/1808
* V3 reorg by jhamman in https://github.com/zarr-developers/zarr-python/pull/1809
* [v3] Sync with futures by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1804
* implement `group.members` by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1726
* remove windows testing on v3 branch by jhamman in https://github.com/zarr-developers/zarr-python/pull/1817
* add note to the top of the release page noting the plan for 2.18.* and 3.0 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1816
* Bump conda-incubator/setup-miniconda from 3.0.3 to 3.0.4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1824
* dep(docs): deprecate experimental v3 support in docs by jhamman in https://github.com/zarr-developers/zarr-python/pull/1807
* Disallow incomplete type definitions by dstansby in https://github.com/zarr-developers/zarr-python/pull/1814
* fix: add mypy to test dependencies by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1789
* Bump h5py from 3.10.0 to 3.11.0 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1786
* Bump redis from 5.0.3 to 5.0.4 by dependabot in https://github.com/zarr-developers/zarr-python/pull/1810
* Disallow untyped calls by dstansby in https://github.com/zarr-developers/zarr-python/pull/1811
* chore(ci): add numpy 2 release candidate to test matrix by jhamman in https://github.com/zarr-developers/zarr-python/pull/1828
* deprecate(stores): add deprecation warnings to stores that we plan to remove in v3 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1801
* fix dependencies by normanrz in https://github.com/zarr-developers/zarr-python/pull/1840
* use np.inf instead of PINF/NINF by jhamman in https://github.com/zarr-developers/zarr-python/pull/1842
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1825
* Add pytest to mypy dependencies by dstansby in https://github.com/zarr-developers/zarr-python/pull/1846
* Enable ruff/bugbear rules (B) and fix issues by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1702
* chore(pre-commit): update pre-commit versions and remove attrs dep mypy section by jhamman in https://github.com/zarr-developers/zarr-python/pull/1848
* Remove implicit groups by jhamman in https://github.com/zarr-developers/zarr-python/pull/1827
* feature(store): list_* -> AsyncGenerators by jhamman in https://github.com/zarr-developers/zarr-python/pull/1844
* Release notes for 2.18.0 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1843
* Update release.rst by jhamman in https://github.com/zarr-developers/zarr-python/pull/1850
* Test codec entrypoints by normanrz in https://github.com/zarr-developers/zarr-python/pull/1835
* Remove extra v3 sync module by maxrjones in https://github.com/zarr-developers/zarr-python/pull/1856
* Use donfig for V3 configuration by maxrjones in https://github.com/zarr-developers/zarr-python/pull/1855
* Fix any generics in zarr.array by dstansby in https://github.com/zarr-developers/zarr-python/pull/1861
* Fix some untyped calls by dstansby in https://github.com/zarr-developers/zarr-python/pull/1865
* chore: update project settings per scientific python repo-review by jhamman in https://github.com/zarr-developers/zarr-python/pull/1863
* Group dependabot updates by jhamman in https://github.com/zarr-developers/zarr-python/pull/1854
* Disallow untyped defs by dstansby in https://github.com/zarr-developers/zarr-python/pull/1834
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1876
* Enable some ruff rules (RUF) and fix issues by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1869
* groundwork for V3 group tests by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1743
* Add more typing to `zarr.group` by dstansby in https://github.com/zarr-developers/zarr-python/pull/1870
* [v3] First step to generalizes ndarray and bytes by madsbk in https://github.com/zarr-developers/zarr-python/pull/1826
* Fix a regression with scalar indexing due to 1800 by dcherian in https://github.com/zarr-developers/zarr-python/pull/1875
* release notes for 2.18.1 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1885
* Reworked codec pipelines by normanrz in https://github.com/zarr-developers/zarr-python/pull/1670
* Configure Ruff to apply flake8-bugbear/isort/pyupgrade by normanrz in https://github.com/zarr-developers/zarr-python/pull/1890
* reset release notes by jhamman in https://github.com/zarr-developers/zarr-python/pull/1886
* chore(ci): remove mypy from test action in favor of pre-commit action by jhamman in https://github.com/zarr-developers/zarr-python/pull/1887
* Enable ruff/flake8-raise rules (RSE) and fix issues by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1872
* Apply assorted ruff/refurb rules (FURB) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1873
* Enable ruff/flake8-implicit-str-concat rules (ISC) and fix issues by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1868
* Remove some unused mypy overrides by dstansby in https://github.com/zarr-developers/zarr-python/pull/1894
* Finish typing zarr.metadata by dstansby in https://github.com/zarr-developers/zarr-python/pull/1880
* Followup on codecs by normanrz in https://github.com/zarr-developers/zarr-python/pull/1889
* Add numpy to mypy pre-commit check env by dstansby in https://github.com/zarr-developers/zarr-python/pull/1893
* remove fixture files from src by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1897
* Protocols for `Buffer` and `NDBuffer` by madsbk in https://github.com/zarr-developers/zarr-python/pull/1899
* Add zstd to old V3 supported codecs by rabernat in https://github.com/zarr-developers/zarr-python/pull/1914
* doc: update release notes for 2.18.2 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1915
* [V3] Expand store tests by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1900
* [v3] Feature: Store open mode by jhamman in https://github.com/zarr-developers/zarr-python/pull/1911
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1920
* Disallow implicit re-exports by dstansby in https://github.com/zarr-developers/zarr-python/pull/1908
* Make typing strict by dstansby in https://github.com/zarr-developers/zarr-python/pull/1879
* Enable extra mypy error codes by dstansby in https://github.com/zarr-developers/zarr-python/pull/1909
* fix(types): Group.info -> NotImplementedError by jhamman in https://github.com/zarr-developers/zarr-python/pull/1936
* Enable warn_unreachable for mypy by dstansby in https://github.com/zarr-developers/zarr-python/pull/1937
* Run sphinx directly on readthedocs by dstansby in https://github.com/zarr-developers/zarr-python/pull/1919
* Fix list of packages in mypy pre-commit environment by dstansby in https://github.com/zarr-developers/zarr-python/pull/1907
* Bump the actions group with 6 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/1904
* Fix final typing errors by dstansby in https://github.com/zarr-developers/zarr-python/pull/1939
* feature(typing): add py.typed file to package root by jhamman in https://github.com/zarr-developers/zarr-python/pull/1935
* Apply preview ruff rules by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1942
* Enable and apply ruff rule RUF009 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1941
* Support all indexing variants by normanrz in https://github.com/zarr-developers/zarr-python/pull/1917
* Feature: group and array name properties by jhamman in https://github.com/zarr-developers/zarr-python/pull/1940
* implement .chunks on v3 arrays by rabernat in https://github.com/zarr-developers/zarr-python/pull/1929
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1948
* Fixes bug in transpose by normanrz in https://github.com/zarr-developers/zarr-python/pull/1949
* Buffer Prototype Argument by madsbk in https://github.com/zarr-developers/zarr-python/pull/1910
* Feature: Top level V3 API by jhamman in https://github.com/zarr-developers/zarr-python/pull/1884
* Basic working FsspecStore by martindurant in https://github.com/zarr-developers/zarr-python/pull/1785
* doc: update release notes for 3.0.0.alpha by jhamman in https://github.com/zarr-developers/zarr-python/pull/1959
* Update release.rst by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/1960
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1957
* Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/1969
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1973
* [v3] add json indentation to config by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1952
* Clean up typing and docs for indexing by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/1961
* `parse_shapelike` allows 0 by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1979
* 0 dim arrays: indexing by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1980
* [v3] Elevate codec pipeline by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1932
* Update `RemoteStore.__str__` and add UPath tests by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1964
* Automatically generate API reference docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/1918
* Fix doc build warnings by dstansby in https://github.com/zarr-developers/zarr-python/pull/1985
* Fix doc build by dstansby in https://github.com/zarr-developers/zarr-python/pull/1987
* [v3] `Buffer` ensure correct subclass based on the `BufferPrototype` argument by madsbk in https://github.com/zarr-developers/zarr-python/pull/1974
* Allow 'chunks' as an alias for 'chunk_shape' in array creation by tomwhite in https://github.com/zarr-developers/zarr-python/pull/1991
* Use f-strings instead of legacy interpolation by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1995
* Unnecessary use of a comprehension by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1994
* Handle Path in `make_store_path` by tomwhite in https://github.com/zarr-developers/zarr-python/pull/1992
* Unnecessary comprehension by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1996
* Merge collapsible if statements by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1999
* Stop ignoring these ruff rules by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2001
* Unnecessary comprehension by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1997
* Fix string interpolation by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/1998
* Fix indexing with bools by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/1968
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/1989
* Bump NumPy to 2.0 by jhamman in https://github.com/zarr-developers/zarr-python/pull/1983
* build(ci): enable python 3.12 in github actions by jhamman in https://github.com/zarr-developers/zarr-python/pull/2005
* doc: copy 3.0.0.alpha changelog into release.rst by jhamman in https://github.com/zarr-developers/zarr-python/pull/2007
* make shardingcodec pickleable by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2011
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2017
* Cast fill value to array's dtype by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2020
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2039
* Redundant list comprehension by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2048
* Multiple imports for an import name by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2047
* Move fixtures to `tests` by d-v-b in https://github.com/zarr-developers/zarr-python/pull/1813
* Apply ruff/flake8-bandit rule B006 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2049
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2051
* [v2 / v3 compat] add `Group.array` and `data` kwarg to array creation by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2042
* fix file modes by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2000
* Use config to select implementation by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/1982
* Handle missing attributes key from metadata, and other fixes by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2058
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2057
* Add hypothesis property tests by dcherian in https://github.com/zarr-developers/zarr-python/pull/1746
* Fix low contrast in dark theme h3 headings by dstansby in https://github.com/zarr-developers/zarr-python/pull/2003
* Updated test dependencies in pyproject.toml by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2069
* Remove zstandard dependency in favor of numcodecs by normanrz in https://github.com/zarr-developers/zarr-python/pull/1838
* Update TEAM.md by jhamman in https://github.com/zarr-developers/zarr-python/pull/2071
* Enforce ruff/tryceratops rules (TRY) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2054
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2080
* [v2] Fix doctests with numpy 2.0 by dstansby in https://github.com/zarr-developers/zarr-python/pull/2073
* Fix version number in built docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2044
* [v3] reorganize package - move most modules to zarr.core by jhamman in https://github.com/zarr-developers/zarr-python/pull/2072
* Fix orthogonal indexing with a scalar by dcherian in https://github.com/zarr-developers/zarr-python/pull/1947
* Re-enable dependabot on main branch by dstansby in https://github.com/zarr-developers/zarr-python/pull/2082
* Stateful store tests by e-marshall in https://github.com/zarr-developers/zarr-python/pull/2070
* Bump the requirements group across 1 directory with 7 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2092
* Bump the actions group with 2 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2087
* [v2] Drop support for Python 3.9 by dstansby in https://github.com/zarr-developers/zarr-python/pull/2074
* Fix Array.__array__ for numpy 2.1 by dstansby in https://github.com/zarr-developers/zarr-python/pull/2106
* Bump test version of numcodecs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2114
* fix: numpy 1.24 compat for Array.__array__ by jhamman in https://github.com/zarr-developers/zarr-python/pull/2123
* Fixed MemoryStore.list_dir by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2117
* Deprecate N5Store by jhamman in https://github.com/zarr-developers/zarr-python/pull/2103
* Run tests on numpy 1.23 by dstansby in https://github.com/zarr-developers/zarr-python/pull/2124
* Bump the requirements group across 1 directory with 3 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2129
* chore: bump minimum numpy version to 1.24 by jhamman in https://github.com/zarr-developers/zarr-python/pull/2127
* Feature/recursive members by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2118
* Remove un-needed package installs in CI by dstansby in https://github.com/zarr-developers/zarr-python/pull/2095
* Fix dtype type error by dstansby in https://github.com/zarr-developers/zarr-python/pull/2136
* mypy fixes for NumPy 2.1.0 by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2139
* Initial GPU support by akshaysubr in https://github.com/zarr-developers/zarr-python/pull/1967
* [v3] clean up `create_array` signatures in group/asyncgroup classes by jhamman in https://github.com/zarr-developers/zarr-python/pull/2132
* Bump the actions group with 2 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2146
* Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2147
* Bump ruff version by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2148
* Bump numpy from 2.1.0 to 2.1.1 in the requirements group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2151
* [v3] h5py compat methods on Group by jhamman in https://github.com/zarr-developers/zarr-python/pull/2128
* chore(docs): update release notes ahead of 2.18.4 by jhamman in https://github.com/zarr-developers/zarr-python/pull/2152
* Enforce Repo-Review rules by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2075
* Enforce ruff/flake8-type-checking rules (TCH) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2110
* Add UPath dependency/type checking by dstansby in https://github.com/zarr-developers/zarr-python/pull/1955
* Check tests folder with mypy by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2150
* Fix new ruff/flake8-type-checking TCH003 error by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2154
* Autogenerate all API docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2002
* Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2161
* Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2160
* Ensure that store_dict used for empty dicts by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2162
* [docs] remove primary sidebar from tutorial by sneakers-the-rat in https://github.com/zarr-developers/zarr-python/pull/2142
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2165
* Fixed test warnings by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2168
* Fixed path segment duplication in open_array by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2167
* Simplify mypy config for tests by dstansby in https://github.com/zarr-developers/zarr-python/pull/2156
* Bump pytest from 8.3.2 to 8.3.3 in the requirements group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2172
* Accept dictionaries for `store` argument by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2164
* refactor: split metadata into v2 and v3 modules by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2163
* More typing fixes for tests by dstansby in https://github.com/zarr-developers/zarr-python/pull/2173
* feature(store): V3 ZipStore by jhamman in https://github.com/zarr-developers/zarr-python/pull/2078
* test: check that store, array, and group classes are serializable by jhamman in https://github.com/zarr-developers/zarr-python/pull/2006
* fix: opening a group with unspecified format finds either v2 or v3 by jhamman in https://github.com/zarr-developers/zarr-python/pull/2183
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2188
* fix: replace tests that went missing in 2006 by jhamman in https://github.com/zarr-developers/zarr-python/pull/2192
* Silence hypothesis complex warning by dcherian in https://github.com/zarr-developers/zarr-python/pull/2157
* Narrow JSON type, ensure that `to_dict` always returns a dict, and v2 filter / compressor parsing by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2179
* Fixed codec for v2 data with no fill value by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2207
* implement `store.list_prefix` and `store._set_many` by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2064
* [v3] Implement Group methods for empty, full, ones, and zeros by lindseynield in https://github.com/zarr-developers/zarr-python/pull/2210
* Make MemoryStore serializable by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2204
* Default to RemoteStore for fsspec URIs by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2198
* Typing fixes for test_indexing by dstansby in https://github.com/zarr-developers/zarr-python/pull/2193
* Make Group.arrays, groups compatible with v2 by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2213
* Basic Zarr-python 2.x compatibility changes by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2098
* fix typo in store integration test by dcherian in https://github.com/zarr-developers/zarr-python/pull/2223
* fix: validate v3 dtypes when loading/creating v3 metadata by jhamman in https://github.com/zarr-developers/zarr-python/pull/2209
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2222
* Added Attributes.asdict by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2221
* Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2219
* Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2220
* Fix/empty listdir by jhamman in https://github.com/zarr-developers/zarr-python/pull/2225
* remove outdated v2 source code and tests from v3 branch by jhamman in https://github.com/zarr-developers/zarr-python/pull/2182
* fix: selection with zarr arrays by jhamman in https://github.com/zarr-developers/zarr-python/pull/2137
* Adding Deepak and Tom to the core team by jhamman in https://github.com/zarr-developers/zarr-python/pull/2227
* Apply and enforce more ruff rules by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2053
* Update V2 codec pipeline to use concrete classes by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2244
* Fix fill_value handling for complex dtypes by dcherian in https://github.com/zarr-developers/zarr-python/pull/2200
* Enforce ruff/flynt rules (FLY) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2240
* Enforce ruff/flake8-return rules (RET) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2237
* Fix multiple identical imports by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2241
* Enforce ruff/flake8-pytest-style rules (PT) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2236
* Replace Gitter link with Zulip by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/2254
* Use `map(str, *)` in `test_accessed_chunks` by jakirkham in https://github.com/zarr-developers/zarr-python/pull/2229
* Enforce ruff/flake8-comprehensions rules (C4) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2239
* Remove unnecessary lambda expression by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2260
* No need to run DeepSource any more - we use ruff by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2261
* Apply ruff/flake8-annotations rule ANN204 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2258
* Add array storage helpers by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2065
* Apply assorted ruff/flake8-simplify rules (SIM) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2259
* feature(store): add LoggingStore wrapper by jhamman in https://github.com/zarr-developers/zarr-python/pull/2231
* chore(deps): drop support for python 3.10 and numpy 1.24 by jhamman in https://github.com/zarr-developers/zarr-python/pull/2217
* fix(async): set default concurrency to 10 tasks by jhamman in https://github.com/zarr-developers/zarr-python/pull/2256
* feat: metadata-only support for storage transformers metadata by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2180
* Default zarr.open to open_group if shape is not provided by agoodm in https://github.com/zarr-developers/zarr-python/pull/2158
* Generalize stateful store test by dcherian in https://github.com/zarr-developers/zarr-python/pull/2202
* Enforce ruff/flake8-annotations rules (ANN) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2264
* Added a new issue template for documentation issues by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/2255
* Apply new ruff rules (preview mode) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2235
* Ensure parents are created when creating a node by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2262
* Allow mode casting for `Store`s by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2249
* Bump verison of autoapi used to build docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2177
* Bump the actions group across 1 directory with 2 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2257
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2277
* [v3] fix: zarr v2 compatibility fixes for Dask by jhamman in https://github.com/zarr-developers/zarr-python/pull/2186
* Bump the requirements group across 1 directory with 3 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2284
* Fix low contrast box titles by dstansby in https://github.com/zarr-developers/zarr-python/pull/2287
* Bump pymongo from 4.10.0 to 4.10.1 in the requirements group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2288
* Backport 2287 to main by dstansby in https://github.com/zarr-developers/zarr-python/pull/2292
* Ignore extra keys in v2 metadata by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2297
* Remove acknowledgements page from docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2293
* Add maximum character length for signatures in docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2299
* Change ArrayV3Metadata.data_type to DataType by rabernat in https://github.com/zarr-developers/zarr-python/pull/2278
* Add BaseCodec to the docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2290
* Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.10.3 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2305
* Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.10.3 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2304
* fix: array creation prototype by jhamman in https://github.com/zarr-developers/zarr-python/pull/2306
* base64 encode fill value for some dtypes with `zarr_format=2` by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2286
* Bump the requirements group with 2 updates by dependabot in https://github.com/zarr-developers/zarr-python/pull/2303
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2307
* Add `string` and `bytes` dtypes plus `vlen-utf8` and `vlen-bytes` codecs by rabernat in https://github.com/zarr-developers/zarr-python/pull/2036
* fix: add get(key, default) method to Group APIs by jhamman in https://github.com/zarr-developers/zarr-python/pull/2311
* fix(storage): change StoreTests get/set methods to async by jhamman in https://github.com/zarr-developers/zarr-python/pull/2313
* fix(store): speed up Store.open by avoiding empty/clear calls unless needed by jhamman in https://github.com/zarr-developers/zarr-python/pull/2314
* Keyword argument defined before variable positional arguments by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2321
* Assigning the same variable to itself by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2320
* Apply ruff rules (RUF) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2319
* Unnecessary lambda expression by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2318
* Add some numpydoc validation checks by dstansby in https://github.com/zarr-developers/zarr-python/pull/2316
* Use implicit fill values for zarr v2 by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2274
* zarr.open should fall back to opening a group by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2310
* Bump numcodecs from 0.13.0 to 0.13.1 in the requirements group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2326
* Refactor/rename v2 metadata fields by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2301
* Zarr-v3 Consolidated Metadata by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2113
* feature(threading): use explicit/configurable thread pool executor by jhamman in https://github.com/zarr-developers/zarr-python/pull/2327
* fix(RemoteStore): avoid listing all objects in remote store in empty() method by jhamman in https://github.com/zarr-developers/zarr-python/pull/2312
* fix(attrs): update array attrs in place by jhamman in https://github.com/zarr-developers/zarr-python/pull/2329
* Use horizontal logo for docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2333
* Special case `str` dtype in array creation by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2323
* Add guide section to top level of docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2332
* Ensure path created for LocalStore when not in readonly mode. by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2337
* V3 main sync w/ merge by jhamman in https://github.com/zarr-developers/zarr-python/pull/2335
* Revert "V3 main sync w/ merge (2335)" by jhamman in https://github.com/zarr-developers/zarr-python/pull/2339
* V3 main sync merge by jhamman in https://github.com/zarr-developers/zarr-python/pull/2340
* document storage classes and some developer apis by jhamman in https://github.com/zarr-developers/zarr-python/pull/2279
* Fix/logging store improvements by jhamman in https://github.com/zarr-developers/zarr-python/pull/2355
* fix RemoteStore.empty by rabernat in https://github.com/zarr-developers/zarr-python/pull/2343
* fix(consolidated metadata): skip .zmetadata key in members search by jhamman in https://github.com/zarr-developers/zarr-python/pull/2356
* Update deprecated stage names by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2362
* Multiple imports for an import name by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2361
* Fix logo height in doc navbar by dstansby in https://github.com/zarr-developers/zarr-python/pull/2352
* Bump sphinx from 8.0.2 to 8.1.3 in the actions group across 1 directory by dependabot in https://github.com/zarr-developers/zarr-python/pull/2360
* Move V3 development to main by jhamman in https://github.com/zarr-developers/zarr-python/pull/2341
* test(ci): change branch name in v3 workflows by jhamman in https://github.com/zarr-developers/zarr-python/pull/2368
* Use lazy % formatting in logging functions by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2366
* Move roadmap and v3-design documument to docs by jhamman in https://github.com/zarr-developers/zarr-python/pull/2354
* Multiple imports for an import name by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2367
* Enforce ruff/pycodestyle warnings (W) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2369
* Enforce ruff/pycodestyle preview rules (E) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2370
* Fix typo by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2382
* Imported name is not used anywhere in the module by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2379
* Missing mandatory keyword argument `shape` by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2376
* Update ruff rules to ignore by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2374
* Docstrings for arraymodule by e-marshall in https://github.com/zarr-developers/zarr-python/pull/2276
* fix/normalize storage paths by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2384
* Enforce ruff/flake8-pyi rule PYI013 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2389
* deps: remove fasteners from list of dependencies by jhamman in https://github.com/zarr-developers/zarr-python/pull/2386
* Enforce ruff/flake8-annotations rule ANN003 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2388
* Enforce ruff/Perflint rules (PERF) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2372
* chore: update package maintainers by jhamman in https://github.com/zarr-developers/zarr-python/pull/2387
* Fixed consolidated Group getitem with multi-part key by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2363
* chore: add python 3.13 to ci / pyproject.toml by jhamman in https://github.com/zarr-developers/zarr-python/pull/2385
* move v3/tests to tests by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2396
* Fix reading partial shards by normanrz in https://github.com/zarr-developers/zarr-python/pull/2397
* sharding with empty inner chunk and index location start by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2336
* Add some more numpydoc rules/associated fixes by dstansby in https://github.com/zarr-developers/zarr-python/pull/2399
* Enforce ruff/refurb rules (FURB) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2373
* chore(ci): removed unused codeql action by jhamman in https://github.com/zarr-developers/zarr-python/pull/2414
* fix(group): deprecate positional args in Group.{zeros,ones,etc.} by jhamman in https://github.com/zarr-developers/zarr-python/pull/2416
* Get rid of pep8speaks - replaced by ruff by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2421
* test(ci): add test environment for upstream dependencies by jhamman in https://github.com/zarr-developers/zarr-python/pull/2418
* fix(array): thread order parameter through to Array.__init__ by jhamman in https://github.com/zarr-developers/zarr-python/pull/2417
* test(ci): Add CI for minimum supported dependency versions by jhamman in https://github.com/zarr-developers/zarr-python/pull/2423
* fix(remotestore): raise error if path includes scheme by jhamman in https://github.com/zarr-developers/zarr-python/pull/2348
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2427
* [v3] Array.append by jhamman in https://github.com/zarr-developers/zarr-python/pull/2413
* Fix JSON encoding of complex fill values by dcherian in https://github.com/zarr-developers/zarr-python/pull/2432
* support zero-sized chunks by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2434
* Refactors v2 codec handling by normanrz in https://github.com/zarr-developers/zarr-python/pull/2425
* feature(group): add group setitem api by jhamman in https://github.com/zarr-developers/zarr-python/pull/2393
* test(ci): test on windows and osx by jhamman in https://github.com/zarr-developers/zarr-python/pull/2431
* Bump sphinx-autoapi from 3.3.2 to 3.3.3 in the requirements group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2441
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2443
* Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2457
* Make AsyncArray.nchunks_initialized async by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2449
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2462
* Feature: store learns to delete prefixes when overwriting/creating hierarchy nodes by jhamman in https://github.com/zarr-developers/zarr-python/pull/2430
* Move BatchedCodecPipeline to zarr.core by normanrz in https://github.com/zarr-developers/zarr-python/pull/2086
* Apply assorted ruff/Pylint rules (PLR) by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2371
* Zarr.save argument check by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2446
* Add more ruff rules by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2460
* `AsyncGenerator` should not yield `None` by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2464
* use as_posix correctly for str and for listdir by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2467
* Missing mandatory keyword argument by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2465
* Remove useless `{...!s}` by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2471
* Add docstrings for array module by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/2281
* AsyncGenerator → AsyncIterator by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2381
* Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2479
* Stateful tests for array/group manipulation by dcherian in https://github.com/zarr-developers/zarr-python/pull/2189
* Added info for Group and Array by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2400
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2482
* Explicitly clear store in hypothesis strategy by dcherian in https://github.com/zarr-developers/zarr-python/pull/2481
* Assorted small fixes for f-strings by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2477
* Unreachable code by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2483
* Refactor: store mode and initialization by jhamman in https://github.com/zarr-developers/zarr-python/pull/2442
* Added Group.tree method by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2433
* Bump numcodecs by normanrz in https://github.com/zarr-developers/zarr-python/pull/2488
* Added Store.getsize by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2426
* fix open_array for mode r+ by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2494
* don't normalize paths in StorePath.delete_dir by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2493
* handle empty string prefix in zipstore delete dir by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2492
* Add documentation for `zarr.core.group` by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2452
* Add CZI Badge to README by MSanKeys963 in https://github.com/zarr-developers/zarr-python/pull/2489
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2502
* [v3] Import crc32c through numcodecs by normanrz in https://github.com/zarr-developers/zarr-python/pull/2510
* Remove asciitree dependency by normanrz in https://github.com/zarr-developers/zarr-python/pull/2511
* Refactor/narrow array name type by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2499
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2517
* Multiple imports for an import name by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2504
* Added Array.info_complete by TomAugspurger in https://github.com/zarr-developers/zarr-python/pull/2514
* Fix iterating over sharding index by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2392
* Imported name is not used anywhere in the module by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2520
* Update ruff and associated changes by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2522
* [v3] Makes data contiguous in v2 codec by normanrz in https://github.com/zarr-developers/zarr-python/pull/2515
* Error when attempting to set with an array of incompatible shape. by dcherian in https://github.com/zarr-developers/zarr-python/pull/2512
* Bump sphinx-autoapi from 3.3.3 to 3.4.0 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2525
* `zarr.store` → `zarr.storage` by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2523
* Move stateful tests to public testing API by dcherian in https://github.com/zarr-developers/zarr-python/pull/2531
* add a complete step to the test CI by normanrz in https://github.com/zarr-developers/zarr-python/pull/2521
* DOC: Proposed updates to contributor guide. by rossbar in https://github.com/zarr-developers/zarr-python/pull/2513
* Parse chunk shape to check for float values by faymanns in https://github.com/zarr-developers/zarr-python/pull/2535
* chore(deps): make fsspec and upath optional dependencies by jhamman in https://github.com/zarr-developers/zarr-python/pull/2534
* [v3] implement / deprecate zarr.tree by jhamman in https://github.com/zarr-developers/zarr-python/pull/2537
* Improve installation page by dstansby in https://github.com/zarr-developers/zarr-python/pull/2538
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2547
* Improve pre-commit configuration by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2551
* Apply ruff preview rule RUF036 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2524
* rename exists_ok to overwrite by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2548
* Feat/latency store by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2474
* rename RemoteStore -> FsspecStore by jhamman in https://github.com/zarr-developers/zarr-python/pull/2557
* Bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3 in the actions group by dependabot in https://github.com/zarr-developers/zarr-python/pull/2562
* Clean up optional dependency groups by dstansby in https://github.com/zarr-developers/zarr-python/pull/2541
* add warnings when using non-spec features with v3 by normanrz in https://github.com/zarr-developers/zarr-python/pull/2556
* Shorten contributing page title by dstansby in https://github.com/zarr-developers/zarr-python/pull/2565
* Remove specs pages from docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2555
* Trim trailing whitespace using pre-commit by dstansby in https://github.com/zarr-developers/zarr-python/pull/2563
* Remove config warning if only one implementation exists by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2571
* Remove license page from docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2570
* docs/add docstrings to synchronous API by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2549
* deps: add packaging to required deps by jhamman in https://github.com/zarr-developers/zarr-python/pull/2573
* correct array.nbytes, and add tests by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2576
* Add default compressors to config by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2470
* Remove temporary doc specific to branch V3 by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2578
* Feat/write empty chunks by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2429
* Multiple imports for an import name by DimitriPapadopoulos in https://github.com/zarr-developers/zarr-python/pull/2580
* test and fix indexing for scalar arrays by brokkoli71 in https://github.com/zarr-developers/zarr-python/pull/2583
* Un-mark memory store as "for testing" by dstansby in https://github.com/zarr-developers/zarr-python/pull/2601
* remove test.py by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2612
* Note that whole directories can be deleted in LocalStore by dstansby in https://github.com/zarr-developers/zarr-python/pull/2606
* fix: run-coverage command now tracks src directory by jhamman in https://github.com/zarr-developers/zarr-python/pull/2615
* Don't document zarr.codec submodules by dstansby in https://github.com/zarr-developers/zarr-python/pull/2605
* Improve deprecation of zarr.creation and zarr.convenience by dstansby in https://github.com/zarr-developers/zarr-python/pull/2609
* top-level functions for reading, creating data by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2463
* Improve docstrings of zarr.api.synchronous by dstansby in https://github.com/zarr-developers/zarr-python/pull/2610
* Improve exception docs by dstansby in https://github.com/zarr-developers/zarr-python/pull/2624
* docs: split tutorial into multiple user guide sections by jhamman in https://github.com/zarr-developers/zarr-python/pull/2589
* show pprint import by normanrz in https://github.com/zarr-developers/zarr-python/pull/2632
* Fix open(..., mode='w') to create a group by jni in https://github.com/zarr-developers/zarr-python/pull/2629
* Clean up public store API by dstansby in https://github.com/zarr-developers/zarr-python/pull/2603
* docs: add migration page to user guide by jhamman in https://github.com/zarr-developers/zarr-python/pull/2596
* Move 'about' to end of table of contents by dstansby in https://github.com/zarr-developers/zarr-python/pull/2636
* docs: replace getting_started page with quickstart by jhamman in https://github.com/zarr-developers/zarr-python/pull/2590
* docs: consolidate developer docs + update contributing page for v3 by jhamman in https://github.com/zarr-developers/zarr-python/pull/2593
* docs: update doc homepage by jhamman in https://github.com/zarr-developers/zarr-python/pull/2594
* Fix create_dataset with data kwarg by jni in https://github.com/zarr-developers/zarr-python/pull/2638
* Align lines for improved rendering by rtobar in https://github.com/zarr-developers/zarr-python/pull/2648
* Adds documentation for sharding and sharding in Array.info by normanrz in https://github.com/zarr-developers/zarr-python/pull/2644
* Move deprecation notices to the top of docstrings by dstansby in https://github.com/zarr-developers/zarr-python/pull/2637
* Improve API reference doc structure by dstansby in https://github.com/zarr-developers/zarr-python/pull/2635
* Consistent use of 'Zarr format 2 or 3' by normanrz in https://github.com/zarr-developers/zarr-python/pull/2645
* Adds filters, compressors and serializer props to Array by normanrz in https://github.com/zarr-developers/zarr-python/pull/2652
* Don't draw invalid shapes in `test_vindex` by dstansby in https://github.com/zarr-developers/zarr-python/pull/2651
* Separate defaults for filters, serializers and compressors in v3 by normanrz in https://github.com/zarr-developers/zarr-python/pull/2653
* Add moto[server] to test deps for FsspecStore by maxrjones in https://github.com/zarr-developers/zarr-python/pull/2657
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/zarr-developers/zarr-python/pull/2660
* Zarr v2 + Zstd: Don't persist the checksum param if false by normanrz in https://github.com/zarr-developers/zarr-python/pull/2655
* Feat/concurrent members by d-v-b in https://github.com/zarr-developers/zarr-python/pull/2519
* Fix `Group.array()` with `data` argument by tomwhite in https://github.com/zarr-developers/zarr-python/pull/2668
* Make make_store_path private by jhamman in https://github.com/zarr-developers/zarr-python/pull/2628
* add known bugs to work in progress section of the v3 migration guide by jhamman in https://github.com/zarr-developers/zarr-python/pull/2670
* Fix json indent by will-moore in https://github.com/zarr-developers/zarr-python/pull/2546
* fix: threadpool configuration by jhamman in https://github.com/zarr-developers/zarr-python/pull/2671
* api: hide zarr.core from api docs by jhamman in https://github.com/zarr-developers/zarr-python/pull/2669
* Clean up release notes in preparation for v3 by dstansby in https://github.com/zarr-developers/zarr-python/pull/2634
* Use dataclasses for ByteRangeRequests by maxrjones in https://github.com/zarr-developers/zarr-python/pull/2585
New Contributors
* JackKelly made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1528
* ziw-liu made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1540
* rossbar made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1550
* ph03 made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1581
* jeffpeck10x made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1615
* maxrjones made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1654
* hoodmane made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1663
* DahnJ made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1689
* dcherian made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1724
* itcarroll made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1604
* aldenks made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1643
* Charoula-Kyriakides made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1792
* brokkoli71 made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1961
* e-marshall made their first contribution in https://github.com/zarr-developers/zarr-python/pull/2070
* akshaysubr made their first contribution in https://github.com/zarr-developers/zarr-python/pull/1967
* sneakers-the-rat made their first contribution in https://github.com/zarr-developers/zarr-python/pull/2142
* lindseynield made their first contribution in https://github.com/zarr-developers/zarr-python/pull/2210
* agoodm made their first contribution in https://github.com/zarr-developers/zarr-python/pull/2158
* rtobar made their first contribution in https://github.com/zarr-developers/zarr-python/pull/2648
* will-moore made their first contribution in https://github.com/zarr-developers/zarr-python/pull/2546
**Full Changelog**: https://github.com/zarr-developers/zarr-python/compare/v2.16.1...v3.0.0