PR review guidelines
The key words “MUST”, “MUST NOT”, “SHOULD”, etc. are to be interpreted as described in RFC 2119.
1 Actively request reviewers and feedback
- Authors/Reviewers SHOULD request help for review at nf-core Slack
#request-review
channel. - We encourage collaboration in PR, other contributors are welcome to fix linting errors (you can mention relevant bot commands) or make improvements to the code if necessary.
2 Pull Request Rapid Merge After Review
Authors/Reviewers SHOULD merge after one positive review and with no obvious open questions.
2.1 Exceptions
- Pull requests to master for releases MUST receive two positive reviews before merging.
- (Pseudo) pull requests to master for first releases MUST receive at least one review from core or maintainer team.
2.2 Addressing Major Change Reviews
- If there is a major change in any type of PR during review (from modules to pipelines) then developers SHOULD request a second review - either the author or reviewer can do this.
- If the reviewer has strong reservations about proposed changes, a reviewer SHOULD NOT leave only a comment or approval, but SHOULD leave a request-changes review.
3 Review Process Scope
- Request changes reviews MAY be dismissed by the PR author if considered out of date and resolved.
- PRs that have approving reviews but remaining open questions MAY be merged by the author after addressing the questions to a common-sense level of satisfaction.
- If a PR has comments from one reviewer with open questions, and they request to re-review but does not perform the re-review, the PR MAY be merged if the first reviewer does not finish the review after 3 months if the PR gets an independent approval from someone else.
4 Commit strategy
We prefer to use merge commits to merge. This is to avoid merge conflicts when multiple people are pulling with overlapping feature branches.
- We prefer verbose commit histories but easy merges.
- Feature branches SHOULD be immediately deleted after merge. Ideally by selecting the new feature on GitHub repo settings
- Note: squashing commits in a PR and merging after is fine, that is up to the individuals.