Skip to content

feat: bring local modules to nf-core 4.0 compliance#152

Merged
znorgaard merged 7 commits into
devfrom
zn_update_local_modules
Jun 16, 2026
Merged

feat: bring local modules to nf-core 4.0 compliance#152
znorgaard merged 7 commits into
devfrom
zn_update_local_modules

Conversation

@znorgaard

@znorgaard znorgaard commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #151 (nf-core component updates). This PR updates the local modules, split out per review feedback (easier to review in stages).

Changes

  • Migrate all 10 local modules (9 fgbio + align_bam) to version-topic emission (tuple(task.process, tool, eval(cmd)), topic: versions); remove the obsolete .out.versions mixing (and the now-vestigial ch_versions scaffold) in the workflow.
  • FILTERCONSENSUSREADS now also reports the samtools version (it pipes into samtools sort), matching ALIGN_BAM's multi-tool reporting.
  • Add environment.yml to each local module and reference it via conda "${moduleDir}/environment.yml".
  • Add meta.yml to each local module (name/description/keywords/tools/input/output) with a containers: block (docker + singularity-oras://, amd64 + arm64) built via Seqera Containers for the 3 distinct environments (fgbio, fgbio+samtools, bwa+fgbio+samtools).
  • Regenerate conf/containers_*.config so the docker + singularity-oras configs include all local processes (https/conda-lock configs keep nf-core modules only — those wave artifacts weren't generated for the local containers).

Verification (nextflow 25.10.4)

  • nf-core pipelines lint — 0 failures
  • nf-test test --profile debug,test,docker — full suite passes. The versions YAML matches pre-migration output except for the newly added samtools line under FILTERCONSENSUSREADS (snapshots updated accordingly).

Base this on #151; merge #151 first, then this.

🤖 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 aca6c6a

+| ✅ 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-16 21:21:16

@znorgaard znorgaard marked this pull request as ready for review June 12, 2026 18:47
@znorgaard znorgaard requested review from SPPearce and nh13 June 12, 2026 18:47
Comment thread modules/local/align_bam/main.nf Outdated

@nh13 nh13 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM (same comment as #151 about 0.9.2 vs 0.9.4 nf-test)

@znorgaard znorgaard force-pushed the zn_update_modules branch from a9ab6fc to a76efc5 Compare June 15, 2026 22:42
znorgaard and others added 5 commits June 15, 2026 15:44
Convert all 10 local modules (9 fgbio + align_bam) from 'path versions.yml'
to topic-based version emission (tuple(task.process, tool, eval(cmd)),
topic: versions), and remove the obsolete per-process .out.versions mixing in
the workflow. Versions now flow entirely through channel.topic('versions');
the collated versions YAML is byte-identical (snapshots unchanged).
…ules

Bring the 10 local modules toward nf-core compliance: add environment.yml
(conda packages) and reference it via conda "${moduleDir}/environment.yml";
add meta.yml with name/description/keywords/tools/input/output and a
containers: block (docker + singularity-oras, amd64+arm64) sourced from
Seqera Containers builds.
With local-module meta.yml containers: blocks present, generation now emits
docker and singularity-oras entries for all fgbio/align_bam processes (https
and conda-lock configs keep nf-core modules only).
The inline container directives in the local modules' main.nf disagreed with
the generated conf/containers_* source of truth:
- align_bam pinned bwa_fgbio_samtools (stale name/digest from before the
  environment.yml existed) instead of fgbio_bwa_samtools.
- 8 fgbio modules pointed their singularity ref at a community-cr-prod https
  blob that now 404s; filterconsensusreads used a divergent https blob.

Point every local module's main.nf container at the oras refs from
conf/containers_singularity_oras_amd64.config (durable, lint-validated, and
CI-exercised) plus the matching amd64 docker tags. CI did not catch the dead
blobs because the generated oras config overrides main.nf on real runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Base automatically changed from zn_update_modules to dev June 15, 2026 23:10
… ch_versions

FilterConsensusReads pipes into `samtools sort`, so emit its samtools version
to the versions topic (mirroring align_bam), in addition to fgbio. Remove the
now-empty ch_versions scaffold from the workflow (all versions flow through the
topic; the workflow's `versions` emit was unconsumed). Regenerate RD-mode
software-version snapshots accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@znorgaard znorgaard force-pushed the zn_update_local_modules branch from 867afd7 to b579c27 Compare June 16, 2026 17:59

@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.

Please swap to check for apptainer (as in my previous comment).

@SPPearce

Copy link
Copy Markdown
Contributor

Also please update the CHANGELOG

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@znorgaard znorgaard merged commit 76c4452 into dev Jun 16, 2026
21 checks passed
@znorgaard znorgaard deleted the zn_update_local_modules branch June 16, 2026 21:34
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