Contributions are welcomed! Here's a few things to know:
TL;DR for contributing: We use the staging branch to land all new features and fixes. To make a contribution, please create a branch from staging, make a modification in the code and create a PR to staging.
Here are the basic steps to get started with your first contribution. Please reach out with any questions.
- Use open issues to discuss the proposed changes. Create an issue describing changes if necessary to collect feedback. Also, please use provided labels to tag issues so everyone can easily sort issues of interest.
- Fork the repo so you can make and test local changes.
- Create a new branch from staging branch for the issue (please do not create a branch from main). We suggest prefixing the branch with your username and then a descriptive title: (e.g. gramhagen/update_contributing_docs)
- Create a test that replicates the issue.
- Make code changes.
- When adding code to the repo, make sure you sign the commits, otherwise the tests will fail (see how to sign the commits).
- Create a pull request against main branch.
We strive to maintain high quality code to make the utilities in the repository easy to understand, use, and extend. We also work hard to maintain a friendly and constructive environment. We've found that having clear expectations on the development process and consistent style helps to ensure everyone can contribute and collaborate effectively.
Let’s be constructive.
Click here to see some examples
"This method is missing docstrings" instead of "YOU forgot to put docstrings".
When making code reviews, try to support your ideas based on evidence (papers, library documentation, stackoverflow, etc) rather than your personal preferences.
Click here to see some examples
"When reviewing this code, I saw that the Python implementation the metrics are based on classes, however, scikit-learn and tensorflow use functions. We should follow the standard in the industry."
Try to be empathic.
Click here to see some examples
- Would it make more sense if ...?
- Have you considered this ... ?