zarr-python icon indicating copy to clipboard operation
zarr-python copied to clipboard

[WIP]: Add Pyodide support and CI jobs for Zarr

Open agriyakhetarpal opened this issue 9 months ago • 3 comments

Description

[!TIP] This PR is a rework of #1902, which targeted the main branch. This one targets the v3 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.

agriyakhetarpal avatar May 23 '24 19:05 agriyakhetarpal