Touch Develop is currently accepting contributions in the form of bug fixes, features or design changes.
A bug must have an issue tracking it in the issue tracker that has been approved ("Milestone == Community") by the Touch Develop team. Your pull request should include a link to the bug that you are fixing. If you've submitted a PR for a bug, please post a comment in the issue clearly stating that you've submitted a PR request, to avoid anyone else doing the same.
Features or design changes (things that add new or improved functionality to Touch Develop) may be accepted, but will need to first be approved (marked as "Milestone == Community" by a Touch Develop coordinator with the message "Approved") in the suggestion issue.
Before we can accept your pull-request you'll need to sign a Contribution License Agreement (CLA). You can download ours here.
However, you don't have to do this up-front. You can simply clone, fork, and submit your pull-request as usual.
When your pull-request is created, we classify it. If the change is trivial, i.e. you just fixed a typo, then the PR is labelled with cla-not-required
.
Otherwise it's classified as cla-required
. In that case, the system will also also tell you how you can sign the CLA.
Once you signed a CLA, the current and all future pull-requests will be labelled as cla-signed.
Signing the CLA might sound scary but it's actually super simple and can be done in less than a minute.
Your pull request should:
- Include a description of what your change intends to do
- Be a child commit of a reasonably recent commit in the master branch
- Requests need not be a single commit, but should be a linear sequence of commits (i.e. no merge commits in your PR)
- It is desirable, but not necessary, for the tests to pass at each commit
- Have clear commit messages
- e.g. "Refactor feature", "Fix issue", "Add tests for issue"
- Follow the TypeScript code conventions descriped in Coding guidlines
- To avoid line ending issues, set
autocrlf = input
andwhitespace = cr-at-eol
in your git configuration