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).