zarr-python
zarr-python copied to clipboard
[WIP]: Add Pyodide support and CI jobs for Zarr
Description
[!TIP] This PR is a rework of #1902, which targeted the
main
branch. This one targets thev3
branch, as suggested by @jhamman.
This description is a stub and will be updated in due course.
TODO:
- [ ] Add unit tests and/or doctests in docstrings
- [ ] Add docstrings and API docs for any new/modified user-facing classes and functions
- [ ] New/modified features documented in docs/tutorial.rst
- [ ] Changes documented in docs/release.rst
- [ ] GitHub Actions have all passed
- [ ] Test coverage is 100% (Codecov passes)
Additional context
Here are a few xrefs to some other PRs that have been implemented for packages in the Scientific Python ecosystem:
- NumPy's Pyodide job: https://github.com/numpy/numpy/pull/25894, by courtesy of @rgommers
- The same for PyWavelets (which is an optional dependency for
scikit-image
): https://github.com/PyWavelets/pywt/pull/701 and https://github.com/PyWavelets/pywt/pull/714 - For the
pandas
repository https://github.com/pandas-dev/pandas/pull/57896 - https://github.com/scikit-image/scikit-image/pull/7350
- and so on
The greater, long-term goal towards this change is to implement Sphinx-based interactive documentation via JupyterLite and WASM-powered, in-browser kernels, as referenced in Quansight-Labs/czi-scientific-python-mgmt#19, see also: Quansight-Labs/czi-scientific-python-mgmt#18. A pilot that can be readily tried out is available for the "API reference" pages under the PyWavelets documentation. This will be preceded by configuring a place to publish these WebAssembly/Emscripten wheels nightly or on a scheduled cadence for Zarr (which could be a third-party, PyPI-like index such as Anaconda.org) and then integrating Sphinx extensions such as jupyterlite-sphinx
for hosted documentation.