<aside>
đźš§ THIS IS UNDER CONSTRUCTION
</aside>
PRs should be merged with “Squash & Merge”
Why should I test?
By definition, any Pull Request (PR) being merged to the main branch of the Public Health Bioinformatics repository must go through a revision process, and be approved by someone other than the original author. This ensures a few things:
- The PR works, is functionally correct, and produces the intended outcome, as described by the author.
- The code changes have been reviewed and are up to standard with our style guide and best practices for code development. This helps us keep the code readable and usable by the Public Health community.
- Any changes seen in outputs/metrics/etc. are expected, given the intentional changes made to the codebase. This requires evaluating the changes in the outputs produced by the code. The author is responsible for defining what those changes should be prior to PR.
How do I determine the “impact” of a PR?
The amount of testing that needs to happen on a PR is determined directly by the significance or impact of that PR.
The impact of a PR can be determined by a combination of the following two things:
- Is this PR an upstream or downstream change?
- Upstream: everything before assembly generation, like read cleaning, alignment, etc.
- Downstream: tasks after assembly, including all genomic characterization.
- *Is this PR consequential or inconsequential to the data? wording subject to change high/low impact
- Consequential to the data means that the root data (raw/clean reads, assembly, etc.) has been altered in some form, or has been applied in a new way.
- Inconsequential to the data means that the root data has not been altered and has not been applied in a new way.
Here’s some examples:
- Does this PR change assembly generation? If so, it’s upstream and consequential.
- Does this PR add an additional organism-specific tool? If so, it’s downstream and consequential.
- Does this PR calculate statistics on how many clean reads were identified? If so, it’s upstream and inconsequential.
- Does this PR adds a Boolean optional input to control an organism-specific tool? If so, it’s downstream and inconsequential.
How do I know how much testing to perform?
The more consequential and upstream the change is, the more testing should be performed.
This shows the amount of testing recommended for each scenario: