First and foremost, we’d like to express our gratitude to you for taking the time to contribute. We welcome and appreciate any and all contributions via Pull Requests along the GitHub Flow.
- Open a GitHub issue
- Fork the repository on GitHub
- Install the pre-commit hooks
- Update the documentation
- Update the tests
- Update the code
- Create a pull request
- Merge and release
For bug reports or requests, please submit your issue in the appropriate repository.
We advise that you open an issue and ask the CODEOWNERS and community prior to starting a contribution. This is your chance to ask questions and receive feedback before writing (potentially wrong) code. We value the direct contact with our community a lot, so don't hesitate to ask any questions.
Fork the repository into your own GitHub account and create a new branch as described in the GitHub Flow.
If the repository you're working on ships with a
.pre-commit-config.yaml
,
make sure the necessary hooks have been installed before you begin working
(e.g. a pre-commit install
).
We encourage you to update the documentation before writing any code (please see Readme Driven Development. This ensures the documentation stays up to date and allows you to think through the problem fully before you begin implementing any changes.
We also recommend updating the automated tests before updating any code (see Test Driven Development).
That means that you should add or update a test case, run all tests and verify that the new test fails with a clear error message and then start implementing the code changes to get that test to pass.
The test folder in every repository will have documentation on how to run the tests locally.
At this point, make your code changes and constantly test again your new test case to make sure that everything working properly. Do commit early and often and make useful commit messages.
If a backwards incompatible change cannot be avoided, please make sure to call that out when you submit a pull request, explaining why the change is absolutely necessary.
Create a pull request with your changes. Please make sure to include the following:
- A description of the change, including a link to your GitHub issue.
- Any notes on backwards incompatibility or downtime.
The CODEOWNERS of the repository will review your code and provide feedback. If everything looks good, they will merge the code and release a new version while following the principles of Semantic Versioning (SemVer).