When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
For manual formatting, please adhere to the following guidelines.
- Use a style conformant to PEP8 with the following exceptions.
- Add 3 lines of whitespace between classes and free functions.
- Prefer 2 lines of whitespace between methods within classes.
- Prefer all methods in classes should have an explicit
return
statement. - All
pytest
tests shoudreturn 0
if the test is successful. - Conform to Google-style docstrings except for where it might break Sphinx formatting.
- PEP8 line length limitations are a bit too tight and can cause code to be harder to read than it should be due to unnecessary breaks. Given the prevalance of wide-format displays it's reasonable to extend this lenghth. Lines should not exceed 120 columns except in cases where it really is needed for readability.
We also use the YAPF tool to perform auto-formatting. The .style.yapf file provides the rules for the formatting scheme we use. This formatter will override some of the settings listed above and is preferred.
This project uses Semantic Versioning.
- Ensure any unapproved install or build dependencies are removed before submitting a merge request.
- Update the CHANGELOG.md file with details of the changes you are making.
- Update relevant documentation in the
doc/
folder and any appropriate docstrings. - Update unit tests to fully test your additions. We aim for 100% coverage on this project.
- Ensure unit tests and documentation build cleanly by running
exec-tests.sh
,exec-makedoc.sh
and the example applications in the repository.
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting