Thank you for your interest in contributing!
Please feel free to contribute code, ideas, improvements, and patches - we've added some general guidelines and information below, and you can propose changes to this document in a pull request.
By contributing to this project, you:
- Agree that you have authored 100% of the content
- Agree that you have the necessary rights to the content
- Agree that you have received the necessary permissions from your employer to make the contributions (if applicable)
- Agree that the content you contribute may be provided under the Project license(s)
- Agree that, if you did not author 100% of the content, the appropriate licenses and copyrights have been added along with any other necessary attribution.
This project, and people participating in it, are governed by our code of conduct. By taking part, we expect you to try your best to uphold this code of conduct. If you have concerns about unacceptable behaviour, please contact one of the project maintainers - right now, either Chris or Fergus.
We're using the standard GitHub workflow, and asking our contributors to use semantic commits to support their contributions.
Please document changes as you go in the the documentation directory.
This repository uses Commitizen to support the use of semantic commits, which requires you to have node and commitizen installed, as well as the plugin we're using. Note, there are two similar projects called Commitizen. We're using the Node package, not the Python package.
We use cz-customizable to enforce a standard commit approach.
You will need node installed on your local machine, or in your dev container.
npm install -g commitizen
npm install -g cz-customizable
echo '{ "path": "cz-customizable" }' > ~/.czrc
This might clash if you use other cz plugins on other projects, like cz-conventional-changelog
.
Run git cz
when creating commits.
Create a branch, based on the GitHub issue you're working on; making sure the issue number and title are correctly updated.
You can update your VS Code settings and use the GitHub Pull Requests plugin to handle this automatically for you.
"githubIssues.issueBranchTitle": "${issueNumber}-${sanitizedIssueTitle}"
- Create a fork.
- Create a branch
git checkout -b feature/featurename
with [a descriptive name].(https://guides.github.com/introduction/flow/), possibly including an issue you want to reference. - Commit your changes
git commit -am 'Bug (scope): Fixed a bug'
with enough information to describe the commit. - Push to the branch
git push
. - Create a new pull request for review when ready, relating to an issue.
- By raising a pull request, you agree you have the rights to contribute your changes.
We'll try to review all pull requests, and we'll try to follow this approach ourselves as a project.
Please check any issues raised on the pull request, like licensing issues for example.
We may add more information here over time.