# Contributing to pytest-mpi

We welcome contributions to pytest-mpi, subject to our code of conduct whether it is improvements to the documentation or examples, bug reports or code improvements.

## Reporting Bugs

Bugs should be reported to https://github.com/aragilar/pytest-mpi. Please include what version of Python this occurs on, as well as which operating system. Information about your h5py and HDF5 configuration is also helpful.

## Patches and Pull Requests

The main repository is https://github.com/aragilar/pytest-mpi, please make pull requests against that repository, and the branch that pull requests should be made on is master (backporting fixes will be done separately if necessary).

## Running the tests

pytest-mpi uses tox to run its tests. See https://tox.readthedocs.io/en/latest/ for more information about tox, but the simplest method is to run:

    tox

in the top level of the git repository.

Note

If you want to run pytest directly, remember to include `-p pytester`, as pytester needs to be manually activated.

## Making a release

Current minimal working method (this doesn’t produce a release commit, deal with DOIs needing to be preregistered, not automated, not signed etc.):

1. Checkout the latest commit on the `master` branch on the main repository locally. Ensure the work directory is clean (`git purge`/`git clean -xfd`).

2. Tag this commit with an annotated tag, with the format being `v*.*.*` (`git tag -a v*.*.*`; I should sign these…). The tag should mention the changes in this release.

3. Push tag to github.

4. Create a release on github using the web interface, copying the content of the tag.

5. Build sdist and wheel (`python setup.py sdist bdist_wheel`), and upload to PyPI (`twine upload dist/*`).