- Name [username]/branchname
- Branch name should be all lowercase
- Words separated by “-”
- Code should address only one issue ideally, make a separate PR for each task
- Description
- Clear explanation of issues solved
- Describe why and how, when appropriate
- Call out specific areas you want extra attention in review (optional)
- If your PR requires more than one reviewer tag those people in the description or comments and let them know that you specifically require them
- Ensure that the PR updates tests and documentation and adds tests where appropriate
- Use github’s issue keywords when PR is addressing an issue https://help.github.com/articles/closing-issues-using-keywords/
- Tags (add at beginning of title)
- [EASY] - small non-controversial change, easy to review
- [DO NOT MERGE] - PR is in progress, do not merge changes
- Assign at least one reviewer to submitted PRs. Reviewers should be selected based on expertise in areas affected by the PR (eg, web UI: Colin), and should include Comp Bio and PM as needed.
- Reviewers should approve or request changes (not just comment) and put general and line level comments where appropriate
- As a PR submitter respond to all comments (eg, comment, commit a change, etc)
- External PRs
- For external PRs or PRs not from our core team, core team should assign a reviewer and make initial contact within 1 business day
- Build code on local environment and run smoke tests
- Travis CI Build passing
- At least one reviewer approved
- Exceptions:
- Release PRs where version is just bumped should not need review
- Complex PRs which touch multiple parts of the codebase should have reviews from all relevant parties
- Exceptions:
- License and Security checks (SNYK) passing. If their server is down and you didn’t add any new external npm or python packages, merge is OK
- Use "squash and merge" option when merging
- If you resolved conflicts, wait until the build passes to merge