You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,7 @@ Special thanks to the following for their contributions to the release:
38
38
-[PR #1836](https://github.com/nf-core/rnaseq/pull/1836) - Reinstall `trimgalore` module to pick up upstream label change (`process_high` → `process_medium` + `process_low_memory`); add the matching `process_low_memory` definition (1 GB) to `conf/base.config` per the nf-core/tools template
39
39
-[PR #1837](https://github.com/nf-core/rnaseq/pull/1837) - Bump version to 3.26.0 ahead of release
40
40
-[PR #1839](https://github.com/nf-core/rnaseq/pull/1839) - Address review feedback from #1838: condense the two large `strandCheckSummaryYaml` JSON snapshots in `multiqc_rnaseq` function tests to `.md5()`; add this Software dependencies subsection summarising tool version bumps in 3.26.0
41
+
-[PR #1840](https://github.com/nf-core/rnaseq/pull/1840) - Address further review feedback from #1838: lowercase `Channel.x` → `channel.x` in local test files and `workflows/rnaseq/main.nf`; pin `params.outdir` in the `PIPELINE_COMPLETION` test so Nextflow execution reports land in the nf-test sandbox instead of a literal `null/pipeline_info/` directory; populate the previously empty "Pipeline specific contribution guidelines" section in `docs/CONTRIBUTING.md` with rnaseq-specific notes (test profiles, CI skip env vars, `.nftignore`, snapshots, version-reporting topic, module configs)
Copy file name to clipboardExpand all lines: docs/CONTRIBUTING.md
+43-1Lines changed: 43 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -185,4 +185,46 @@ If you update images or graphics, follow the nf-core [style guidelines](https://
185
185
186
186
## Pipeline specific contribution guidelines
187
187
188
-
<!-- TODO nf-core: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc. -->
188
+
A few conventions that are specific to nf-core/rnaseq and tend to surprise new contributors:
189
+
190
+
#### Test profiles
191
+
192
+
The pipeline ships three test profile families: `test` (CPU smoke test, ~15 GB resourceLimits), `test_prokaryotic` (composes on top of `test`, swaps in the bacterial/archaeal samplesheet and `bowtie2_salmon` aligner), and `test_gpu` (~30 GB resourceLimits for GPU CI). `nf-test.config` deliberately does **not** set a default profile - you must always pass one explicitly (e.g. `--profile +test,docker`).
193
+
194
+
GPU/license-server-bound CI cases are gated on env vars so they don't run by default on contributor laptops:
195
+
196
+
-`SKIP_GPU=1` skips Parabricks and GPU ribodetector tests
197
+
-`SKIP_SENTIEON=1` skips Sentieon STAR tests
198
+
-`SKIP_PARABRICKS=1` is a finer-grained subset of `SKIP_GPU`
199
+
200
+
#### Test data
201
+
202
+
Eukaryotic test data is pulled from the iGenomes S3 mirror (`pipelines_testdata_base_path = s3://ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/`); prokaryotic test data is pulled from `nf-core/test-datasets` on GitHub (Salmonella SL1344 subset). Both are pinned in `conf/test.config` and `conf/test_prokaryotic.config`; if you need to add a new fixture, prefer extending one of those rather than introducing a new bucket.
203
+
204
+
#### nf-core modules and subworkflows
205
+
206
+
Modules and subworkflows under `modules/nf-core/` and `subworkflows/nf-core/` are managed by the nf-core tooling - install or update them with `nf-core modules install` / `nf-core subworkflows update`, do **not** edit them directly. Edits should go through a PR to [nf-core/modules](https://github.com/nf-core/modules) first; the pipeline then picks up the new SHA via a `modules.json` bump. Pipeline-specific code (anything not portable to other pipelines) lives under `modules/local/` and `subworkflows/local/`.
207
+
208
+
#### Module configs
209
+
210
+
Per-tool publishDir, ext.args, and ext.prefix settings are split into one file per logical group under `conf/modules/` (e.g. `conf/modules/align_star.config`, `conf/modules/quantify_rsem.config`) and included from `nextflow.config`. When you add a new local module, add or extend the matching file rather than dropping settings into `nextflow.config` directly.
211
+
212
+
#### Version reporting
213
+
214
+
Modules emit their versions onto the `versions` channel topic so the calling workflow does not have to thread a `ch_versions` through every process (PR #1689). Modules that still also declare a `path "versions.yml", emit: versions` output do so because they are templated (the `.r`/`.py` template script writes the YAML); those modules populate the topic too and don't need migrating - leave them alone.
215
+
216
+
#### `--genome` reference catalogues
217
+
218
+
`--genome <key>` resolves a bundle of reference paths from the `params.genomes` map. The pipeline ships the iGenomes catalogue out of the box, but the same mechanism works with a user-authored catalogue - that is the recommended path for modern reference data, since the iGenomes annotations are stale. If you add new fields to genome map entries, make them optional and gate behaviour on their presence (see e.g. the `star_legacy` flag in `conf/igenomes.config`).
219
+
220
+
#### Snapshots
221
+
222
+
Non-deterministic outputs (STAR, Salmon, Kallisto, RSEM, HISAT2 indices; qualimap reports) are snapshotted by file-name-only (`getSnapshot()` filtered) rather than content. Deterministic text outputs are snapshotted by md5. Verbose JSON test output (e.g. helper-function tests) should snapshot `.md5()` of the result rather than inlining the JSON. Don't snapshot timestamps or paths that contain hash directories.
223
+
224
+
#### `.nftignore`
225
+
226
+
`tests/.nftignore` (and `tests/.nftignore_rustqc` for the RustQC variant) is a list of glob patterns that nf-test excludes from `${outputDir}` snapshots at the pipeline-test level. It is the right place to drop outputs that are content-stable but not byte-stable (e.g. files that include a timestamp, paths under multiqc/multiqc_data, log files where ordering varies), or that are already covered elsewhere. If a pipeline-level snapshot is fluttering on a file you don't actually need to assert on, add it here rather than rerunning until you get lucky.
227
+
228
+
#### CHANGELOG
229
+
230
+
One-line entry per PR under the unreleased section, focused on the _what_, not the implementation history. A `### Software dependencies` table at the end of each release section captures tool version bumps (Old → New).
0 commit comments