Thank you for your interest in contributing! This guide details how to contribute in a way that is easy for everyone.
The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgement, and feel free to propose changes to this document in a merge request.
We want to create a welcoming environment for everyone who is interested in contributing. Please see the Contributor Covenant Code of Conduct file to learn more about our commitment to an open and welcoming environment.
Found a problem? Want to propose a new feature? First of all see if your issue or idea has already been reported. If not, just open a new clear and descriptive issue.
The general flow of making a contribution to this project, such as a bug fix, documentation update or feature implementation is:
- Create a fork of the project in your own personal namespace.
- Make your changes in your fork, as one or more commits.
- When you're ready, create a new merge request. In the merge request's description, ensure you provide complete and accurate information.
- Assign the merge request (if possible) to, or mention, one of the project owners for the relevant project, and explain that your changes are ready for review.
A consistent style makes the job of reading code and changes easier, allowing the reader to concentrate on the content of the change. A style guide ensures consistency of style, particularly when used with an automated style checking program.
Follow the git commit message best practices, which boil down to:
- Separate subject from body with a blank line
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
Plain text or markdown documents are preferred.
Each of the tools below check for adherence to a particular, widely adopted coding style:
- For Bash shell scripts, use ShellCheck
- For Python code, use Black
- For R code, use Lintr