🎉 First off, thank you for taking the time to contribute! 🎉
Everyone is welcome to contribute and all types of contributions are encouraged and valued. This includes code reviews, bug fixes, new features, examples, documentation, community participation, etc.
This document outlines the guidelines for contributing to the various aspects of the project.
If you find a bug in the code, a mistake in the documentation, or would like to see a new feature, please help us by creating an issue in our repository, or even creating a pull request.
And if you like the project, but just don't have time to contribute, there are other ways to support the project and show your appreciation, which we would also be very happy about:
- Star the project
- Tweet about it
- Refer this project in your project's readme
- Tell your friends/colleagues about the project
-
To work on the rfbzero.py package, you should first fork the rfbzero repository.
-
You can then clone the fork to your computer.
git clone https://github.com/<GitHubUsername>/rfbzero.py
-
Make your changes and commit them to your fork.
-
Submit a Pull Request (make sure to write an informative message so the reviewer can understand what you're adding!) via GitHub.
rfbzero.py
uses GitHub Actions for Continuous Integration testing. Every time you submit a pull request, a series of tests will be run to make sure the changes don’t accidentally introduce any bugs 🐛. Your PR will not be accepted until it passes all of these tests. You can also run tests locally to speed up the review process.
We use Pylint to test for PEP 8 conformance. To run the Pylint code analysis locally:
pip install pylint
pylint src/
We use mypy to type check code with type hints conforming to PEP 484. To run the mypy code analysis locally:
pip install mypy
mypy src/
rfbzero.py
aims to have complete test coverage of our package code. If you're adding a new feature, consider writing the test first and then the code to ensure it passes. PRs which decrease code coverage will need to add tests before they can be merged.
We use pytest with pytest-cov to test code and determine code coverage. To run tests:
pip install pytest pytest-cov
pytest --cov
This CONTRIBUTING.md file was adapted from the impedance.py GitHub repo