👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to the Chemics Python package. Submitted code that does not conform to these guidelines will not be merged into the package. Feel free to propose changes to this document in a Pull Request or Issue.
Use the environment.yml
file to create a conda environment for developing the Chemics package. See the comments in the file for more details.
All Python code in the Chemics package should adhere to the PEP 8 style guide. All linting and formatting should be implemented with ruff. Configuration for ruff is defined in the pyproject.toml file.
All functions, classes, and other Python components should contain docstrings with syntax and best practices outlined by the NumPy docstring guide. Within the docstring, use the references section to list references used to develop that function or method. A simple example of how to use a function or class should be included in its docstring.
Along with an example in the docstring, please provide a complete example in the Sphinx documentation. Simple examples should also be provided in the docstrings.
New code for the Chemics package must include associated tests in the tests/
folder. The pytest framework is used to execute the test files.
Don't forget to edit the changelog based on your contributions. Follow the style on the Keep a Changelog website.
New source code along with examples should be documented in the Sphinx documentation located in the docs/
folder.
All pull requests should be submitted to the dev
branch; not to the main
branch. The dev
branch will be merged with the main
branch when a new version of Chemics is ready to be released.