Development Guide¶
versioned-hdf5 workflows are based on pixi.
The full list of tasks and environments available can be seen in pyproject.toml.
Run tests¶
To run the full test suite in the default environment:
pixi r test
You can also select a different test environment:
pixi r -e <environment> test
You can choose among the following:
Environment |
Python |
NumPy |
libhdf5 |
h5py |
ndindex |
notes |
|---|---|---|---|---|---|---|
|
3.10 |
1.24.4 |
1.10 ~ 1.14 |
3.8 ~ 3.9 |
1.5.1 |
Versions depend on platform; pinned build stack |
|
3.10 |
1.24.4 |
1.12 |
3.8 |
latest |
Not available on Windows |
|
3.10 |
1.26 |
latest |
latest |
latest |
|
|
3.10 |
2.0 |
latest |
latest |
latest |
|
|
3.10 |
2.2 |
latest |
latest |
latest |
|
|
3.11 |
latest |
latest |
latest |
latest |
|
|
3.12 |
latest |
latest |
latest |
latest |
|
|
3.13 |
latest |
latest |
latest |
latest |
|
|
3.14 |
latest |
latest |
latest |
latest |
|
|
latest |
latest |
latest |
latest |
latest |
|
|
latest |
latest |
latest |
git tip |
latest |
Editable install¶
All pixi environments use a editable install of versioned-hdf5. This means that after
changing any file, including Cython ones, in the versioned_hdf5/ directory, changes
will be immediately reflected in all commands (such as pixi r test).
Interactive terminal¶
pixi r ipython opens an interactive IPython terminal with versioned-hdf5 (editable
install from versioned_hdf5/) and all dependencies available.
Documentation¶
pixi r -e docs docsbuilds the documentation for the current version indocs/_build/html.pixi r -e docs docs-multiversionbuilds the documentation for all versions, present and past, indocs/_build/html/<version>. This is what is published to the public documentation page.
Linting¶
versioned-hdf5 uses static type checkers, enforced by CI.
You should run them with pixi r lint before submitting a PR.
Alternatively, you may run once pixi r install-git-hooks to have the static type
checkers run on every commit.
Benchmarks¶
versioned-hdf5 uses ASV for performance benchmarks. At the moment, historical benchmarking is not configured.
To initialise ASV:
pixi r asv-machineTo run ASV:
pixi r asv-run
These commands are available in the default and mindeps environments.