Skip to content

Latest commit

 

History

History
64 lines (51 loc) · 4.18 KB

CONTRIBUTING.md

File metadata and controls

64 lines (51 loc) · 4.18 KB

Contributing to the Labs

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.

Rights to your contributions

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.

Code of Conduct

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.

What should I know before I get started?

Workflow

We're using the standard GitHub workflow, and asking our contributors to use semantic commits to support their contributions.

Documentation

When we make changes to the project, including design changes, but also changes which require instructions, please consider you should add to the documentation directory.

More information

Semantic Commits and Commitizen

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.

Setting up Commitizen

You will need node installed on your local machine, or in your dev container.

Install the required node packages globally

npm install -g commitizen
npm install -g cz-customizable

Create a global commitizen file

echo '{ "path": "cz-customizable" }' > ~/.czrc This might clash if you use other cz plugins on other projects, like cz-conventional-changelog.

Usage

Run git cz when creating commits.

Workflow

Project Members

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}"

External Contributors

  • 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.

Pull Requests and Issues

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.