Contributing How-to Guides#
We recommend having already gone over the Contributing overview page before reading the sections below.
Running the test suite locally#
This section covers how to run the test suite locally.
That is, without using tox
(as recommended on the Contributing overview
or triggering CI by opening a pull request on GitHub.
You should follow these steps for example if you want to reproduce and fix a bug
that depends on the NumPy version and therefore need to test xarray-einstats
on an environment that has a specific set of dependencies installed.
Install xarray-einstats in editable mode in the desired environment:
pip install -e ".[test,einops,numba]"
This will install xarray-einstats in editable mode together with all optional dependencies and all testing related dependencies.
Run pytest
pytest tests/ --cov --cov-report term
This will run the tests in the tests suite and coverage analysis and print all the results on the terminal.
Making a new release#
Release preparation#
Create a new branch
Check dependency version pins in
pyproject.toml
, they should follow SPEC 0 roughly.Review the change log (
docs/source/changelog.md
). The unreleased section should be updated to the current version and release date and not yet addedUpdate the version number in
__init__.py
. That is, remove thedev
flag, it should not be increased.Rerun the notebooks in
docs/source/tutorials
Open a PR, make sure docs build correctly and all tests pass. Once everything is green, merge the PR
Create a new release from GitHub, use as tag the version number prepended by
v
. i.e.v0.1.0
orv0.2.3
Post release tasks#
Check the new version appears on the readthedocs version switcher. If it doesn’t go to readthedocs and add it.
Bump the minor version, set the patch version to 0 and add the
dev
flag. It should look like0.2.0.dev0
.Update the changelog to add the unreleased section back. Here is a template to copy paste:
## v0.x.x (Unreleased) ### New features ### Maintenance and fixes ### Documentation
Check conda-forge. It will automatically send a PR with the updated recipe which will need to be reviewed (and modified if dependencies were updated).