Contributing guidelines

As an in-progress project, vestacrystparser welcomes contributions. In particular, because VESTA’s UI is extensive, we always need new methods in vestacrystparser.parser.VestaFile to fill out the API. Additionally, any new discoveries on VESTA’s file format should be added to docs/source/file_format.md. Extensions to vestacrystparser.convert to allow reading other file formats are also wanted.

If you spot an issue or have a feature request, open a report using GitHub Issues.

Contributions are managed through GitHub. To make a contribution, create your own branch or fork of the repository, make your changes, then make a pull request. There, a code maintainer shall review your request and, if appropriate, merge it into the repository. (No guarantees are given for the timeliness of code reviews or maintenance, as this is a project managed in spare time.)

By contributing code to this repository, you agree to license all contributions under the license attached to this repository.

If developing code, you will likely want the [dev] optional dependencies.

Any new functions, methods, and classes need to contain docstrings. Docstrings should follow the Google style guidelines. Docstrings may include reStructuredText and Sphinx directives.

Code should follow PEP8 guidelines. autopep8 (with default arguments) can be used to ensure consistency.

All new functions must include tests, ideally with full (or at least high) code coverage. Tests are included under tests/ and use the pytest framework. Additionally, the test suite must pass before any pull requests will be accepted.

(N.B. To test vestacrystparser.export, which requires VESTA to be installed, call pytest --vesta. This module is independent of the other modules, so further testing should not be required if it is not modified. However, it is also environment dependent, so maybe you’ll find a new bug.)