Skip to content

Latest commit

 

History

History
66 lines (53 loc) · 3.07 KB

REVIEW.md

File metadata and controls

66 lines (53 loc) · 3.07 KB

Review guide for lrsomatic

Guidance for automated (Claude) and human PR reviews. Every check below comes from a problem that reached a PR before. The automated reviewer only sees the diff and cannot run the pipeline or nf-test, so it must never claim that tests pass or fail.

Tests

  • PR CI runs only nf-test tests tagged small (.github/workflows/nf-test.yml). Flag a new or changed test without that tag. Also flag a change whose code path no small test exercises, e.g. module-only changes to Clair3, ClairS, ClairS-TO or LRSOMATICREPORT, and ask for the Slurm test array to be run.
  • A process with errorStrategy 'ignore' can fail while its test still passes: the snapshot then records the failed (empty) state. Check that snapshots of such steps contain real outputs.
  • Snapshot changes should match the code change. Unexplained md5 drift in unrelated outputs needs an explanation in the PR.

Nextflow conventions

  • Channels carry [meta, data] tuples; keep meta intact across module/subworkflow boundaries and joins. Check that joins key on the right field and cannot pair records arbitrarily.
  • Process-scope variables in script: blocks have no def prefix. Unused closure parameters are prefixed with _.
  • Processes use resource labels (process_single, process_medium, ...) rather than hard-coded resources.
  • A new step needs an entry in conf/modules.config (publishDir, ext.args); versions.yml should not be published.
  • New or changed parameters are in nextflow_schema.json, with a help_text that matches the actual behaviour, and in docs/usage.md.
  • nf-core modules are installed/updated with nf-core modules, not edited in place under modules/nf-core/. Local changes belong in modules/local/ or as an nf-core module patch, and meta.yml is updated with inputs/outputs.

References and genomes

  • The tests cover GRCh38 only. Check that new logic also works for CHM13 (--genome CHM13 paths, chromosome naming, tool support for T2T) and for a custom --fasta without an iGenomes entry. Watch for file(null) or params.genomes[...] lookups that break on custom genomes.
  • Remote reference files fetched at run start (GitHub raw URLs, wget) are fragile; prefer staged or cached files.

Containers

  • Container directives keep the singularity/docker ternary used across modules/, with both branches pointing at the same tool version. Biocontainers use the depot.galaxyproject.org / biocontainers/ pair; custom images use the oras://docker.io/...-sif / docker.io/... pair (Docker Hub, not ghcr, for large Apptainer images).
  • Images are pinned to a specific tag, never latest.

Documentation

  • CHANGELOG.md has an entry under the dev version with the PR number.
  • New outputs are described in docs/output.md; new tools are cited in CITATIONS.md and README.md.

Do not comment on

  • Formatting that pre-commit/prettier fixes automatically.
  • Files under modules/nf-core/ and subworkflows/nf-core/ unless the PR itself changes them.
  • ro-crate-metadata.json churn (regenerated by nf-core lint).