Skip to content

chore: update nf-core modules and subworkflows to latest#151

Merged
znorgaard merged 12 commits into
devfrom
zn_update_modules
Jun 15, 2026
Merged

chore: update nf-core modules and subworkflows to latest#151
znorgaard merged 12 commits into
devfrom
zn_update_modules

Conversation

@znorgaard

@znorgaard znorgaard commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Updates all nf-core modules and subworkflows to their latest versions, on top of the 4.0.2 template branch (#150). Stage 1 of 2 — local-module compliance is split into #152 (stacked on this branch) for easier staged review.

Changes

  • Subworkflows: utils_nfcore_pipeline, utils_nfschema_plugin updated to latest (+ cli_typecast call-site arg). utils_nextflow_pipeline intentionally kept at the 25.10.4-compatible version (its latest needs nextflow 26.04 for nextflow lint, which breaks the container_configs check).
  • Modules: bwa/index, samtools/{dict,faidx,merge}, fastqc, multiqc updated; patches reapplied; samtools/faidx + samtools/merge call signatures adapted; MULTIQC call migrated to the 4.0 single-tuple input.
  • nf-core modules emit versions via the versions topic; obsolete .out.versions mixing removed (local modules stay on versions.yml here — migrated in feat: bring local modules to nf-core 4.0 compliance #152).
  • Snapshots refreshed (version strings only; MultiQC 1.35 drops standalone multiqc_plots/ exports — report unchanged; no consensus-BAM changes); default test ignores the environment-dependent multiqc_plots/ tree.
  • Regenerated conf/containers_*.config for fastqc/multiqc.
  • CI: pinned linting.yml nextflow to 25.10.4 so container_configs doesn't crash on a 26.04 runner.

Verification (nextflow 25.10.4)

  • nf-core pipelines lint — 0 failures
  • nf-test test --profile debug,test,docker — full suite (26) passes
  • GitHub Actions — all required checks green

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit a76efc5

+| ✅ 217 tests passed       |+
#| ❔  10 tests were ignored |#
!| ❗   3 tests had warnings |!
Details

❗ Test warnings:

  • files_unchanged - LICENSE does not match the template
  • pipeline_todos - TODO string in CONTRIBUTING.md: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc.
  • pipeline_todos - TODO string in awsfulltest.yml: You can customise AWS full pipeline tests as required

❔ Tests ignored:

  • files_exist - File is ignored: .github/workflows/awsfulltest.yml
  • files_exist - File is ignored: .github/workflows/awstest.yml
  • files_exist - File is ignored: conf/modules/modules.config
  • files_unchanged - File ignored due to lint config: .github/PULL_REQUEST_TEMPLATE.md
  • files_unchanged - File ignored due to lint config: .github/workflows/branch.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/linting.yml
  • files_unchanged - File ignored due to lint config: assets/nf-core-fastquorum_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-fastquorum_logo_dark.png
  • files_unchanged - File ignored due to lint config: .gitignore or .prettierignore
  • template_strings - template_strings

✅ Tests passed:

Run details

  • nf-core/tools version 4.0.2
  • Run at 2026-06-15 22:44:17

@SPPearce

SPPearce commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@znorgaard , is there a reason to add more to this branch? It is easier to review in stages.

@znorgaard

Copy link
Copy Markdown
Collaborator Author

@znorgaard , is there a reason to add more to this branch? It is easier to review in stages.

I can keep it split.

In this one: update all the nf-core pieces.
In the next one: update all the local pieces.

@znorgaard znorgaard force-pushed the zn_update_modules branch from 135702a to d33c51f Compare June 8, 2026 20:04
@znorgaard znorgaard changed the title chore: update nf-core modules/subworkflows to latest (WIP: local-module compliance to follow) chore: update nf-core modules and subworkflows to latest Jun 8, 2026

@SPPearce SPPearce left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove the name line from the environment.yml files, and then we don't need the patches.
And update the Changelog please.

Comment thread modules/nf-core/fastqc/fastqc.diff Outdated
@znorgaard znorgaard marked this pull request as ready for review June 12, 2026 16:10
@znorgaard znorgaard requested a review from nh13 June 12, 2026 16:11
Comment thread tests/pipeline/tiny.nf.test.snap Outdated
znorgaard and others added 11 commits June 12, 2026 15:18
Updated subworkflow adds a 10th 'cli_typecast' take parameter; pass null
(default) from the PIPELINE_INITIALISATION call site. utils_nextflow_pipeline
is intentionally NOT updated: its latest revision requires nextflow 26.04 for
'nextflow lint', which breaks the container_configs check; kept at the
25.10.4-compatible template version.
… fastqc to latest

- Reapply each module's name: patch (auto-reapplied on update)
- Adapt call sites to new input signatures: samtools/faidx now takes
  (meta, fasta, fai) + get_sizes; samtools/merge now takes
  (meta, input, index) + (meta2, fasta, fai, gzi)
- Modules now emit versions via the 'versions' topic; remove the obsolete
  .out.versions mixing for FASTQC, MERGE_BAM, BWAMEM1_INDEX, SAMTOOLS_FAIDX
  (collected via channel.topic('versions'))
- Refresh tiny snapshot: prepare_genome tool versions now reported via topic
…gnature

The 4.0 multiqc module takes a single tuple input
(meta, files, config, logo, replace_names, sample_names) and emits report as
(meta, html). Build the input tuple in the workflow (always applying the base
assets/multiqc_config.yml, plus params.multiqc_config when set), and map the
report output accordingly.
Version strings now reflect updated bwa/index (0.7.19), samtools (1.23.1),
and multiqc (1.35), with bwa/samtools index-step versions now collected via
the versions topic. MultiQC 1.35 no longer writes standalone multiqc_plots/
exports (the interactive report is unchanged); the default test file list is
updated accordingly. No consensus BAM/content changes.
nf-core 4.0.2's container_configs lint check runs 'nextflow inspect', whose
JSON output is broken under nextflow 26.04 (uncaught JSONDecodeError). Pin the
linting job to 25.10.4 (the pipeline's declared minimum and the required
nf-test matrix version) so the check runs cleanly.
Now that the updated nf-core modules expose a containers: meta block, the
container_configs lint check generates non-empty configs (FASTQC, MULTIQC);
commit them so the check passes. Local fgbio modules will be added once they
gain meta.yml containers blocks.
…shot

MultiQC renders multiqc_plots/ (pdf/png/svg) on linux/amd64 (CI) but not on
all local archs, so the file-list (stable_name) snapshot of the default test
was env-dependent and failed on CI. Exclude multiqc_plots/ from stable_name
(stable_path already ignores the plot files via .nftignore).
Removing the name line from each nf-core module environment.yml makes
the local files match upstream, so the corresponding .diff patches are
no longer needed. Delete the patches and their modules.json entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reference the upstream Nextflow bug (nextflow-io/nextflow#7116) and its
fix (#7121) inline so the pin's rationale and unpin condition are clear.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…napshots

MultiQC only renders multiqc_plots/ where its kaleido backend works (linux/amd64)
and silently skips it on other archs (e.g. arm64, or amd64 under Rosetta), which
made the default test's file-list snapshot environment-dependent. Instead of
excluding the plots from the assertion, disable export_plots for tests via a new
assets/multiqc_test_config.yml wired through the test profile's multiqc_config.
Production runs keep export_plots: true.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Base automatically changed from zn_template_4.0.2 to dev June 12, 2026 23:04
Stale blocks carried nf-test 0.8.4/0.9.0/0.9.2 version stamps because
nf-test only rewrites a snapshot block when its content changes, and these
deterministic md5 blocks had not changed since earlier runs. Drop and
regenerate them so all stamps reflect the pinned 0.9.4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@znorgaard znorgaard force-pushed the zn_update_modules branch from a9ab6fc to a76efc5 Compare June 15, 2026 22:42
@znorgaard znorgaard merged commit 1cbfe14 into dev Jun 15, 2026
21 checks passed
@znorgaard znorgaard deleted the zn_update_modules branch June 15, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants