Skip to content

Template update for nf-core/tools v4.0.3 - #31

Open
mazzalab wants to merge 14 commits into
nf-core:devfrom
mazzalab:template-merge-4.0.3
Open

Template update for nf-core/tools v4.0.3#31
mazzalab wants to merge 14 commits into
nf-core:devfrom
mazzalab:template-merge-4.0.3

Conversation

@mazzalab

@mazzalab mazzalab commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Merges the pending nf-core template updates into dev, up to nf-core/tools 4.0.3.

Closes #29.

Scope

nf-core-template-merge-4.0.3 is the head of the TEMPLATE branch, and the 3.4.1, 3.5.1 and 4.0.2 template-merge branches are linear ancestors of it. Merging TEMPLATE once therefore resolves all four pending template updates; the older branches can be deleted after this is merged.

dev was last synced with TEMPLATE at nf-core/tools 3.3.2.

Conflict resolution

File Resolution
workflows/fastqrepair.nf Template structure (explicit take: inputs, channel.topic("versions") collation, new MULTIQC tuple signature) combined with the existing gzrt / wipertools / bbmap-repair logic
nextflow.config arm profile replaced by arm64 + emulate_amd64, gitpod profile dropped, nf-schema 2.5.1, nextflowVersion !>=25.10.4; pipeline-specific params and the pipeline description kept
modules.json Template git_sha for multiqc, utils_nfcore_pipeline and utils_nfschema_plugin; pipeline modules untouched
modules/nf-core/multiqc/* Template version (MultiQC 1.30 -> 1.34, Seqera Wave container)
README.md Pipeline content kept; template badge and link updates applied
.gitignore Union of both sides
tests/nextflow.config Template formatting plus the pipeline's qin / alphabet params and resourceLimits block
ro-crate-metadata.json Template graph and identifiers; description regenerated from the merged README.md
.github/PULL_REQUEST_TEMPLATE.md, subworkflows/local/utils_nfcore_fastqrepair_pipeline/main.nf Template version

Notable removals from the template

  • --hook_url and the IM notification assets (assets/slackreport.json, assets/adaptivecard.json)
  • .gitpod.yml and the gitpod profile
  • .github/CONTRIBUTING.md, now at docs/CONTRIBUTING.md

Caveats

The merge was resolved without a local Nextflow or nf-core tools installation, so nothing has been executed or linted locally — CI is the first check. ro-crate-metadata.json was hand-resolved and should be regenerated with nf-core pipelines ro-crate before release.

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the contribution docs
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 4.0.3.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the Synchronisation documentation.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

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

Posted for pipeline commit 18d6c57

+| ✅ 216 tests passed       |+
!| ❗   7 tests had warnings |!
Details

❗ Test warnings:

  • files_exist - File not found: conf/igenomes.config
  • files_exist - File not found: conf/igenomes_ignored.config
  • nextflow_config - Config manifest.version should end in dev: 1.1.1
  • pipeline_todos - TODO string in nextflow.config: Optionally, you can add a pipeline-specific nf-core config at https://github.com/nf-core/configs
  • pipeline_todos - TODO string in awsfulltest.yml: You can customise AWS full pipeline tests as required
  • 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 base.config: Check the defaults for all processes

✅ Tests passed:

Run details

  • nf-core/tools version 4.0.3
  • Run at 2026-08-09 10:18:04

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

❌ nf-test failed with latest Nextflow version

Note

Tests with Nextflow's latest version failed but it will not cause a CI workflow failure.
Please check if the failure is expected with newer (edge-)releases of Nextflow or if it needs fixing.

  • docker | latest-everything | Shard 3/3

See the full run for details.

mazzalab added 8 commits August 9, 2026 09:26
- .gitignore: move pipeline-specific entries after the template block so the
  files_unchanged partial check finds the template content contiguously
- .github/PULL_REQUEST_TEMPLATE.md: point CONTRIBUTING links at master, the
  repository's actual default branch (no main branch exists)
- nextflow_schema.json: add the missing text/csv mimetype on input
Nextflow does not implicitly convert take: inputs to channels (only emit:
outputs), so the bare list made ch_fastq an ArrayList and ch_fastq.flatMap {}
resolved as a script-level function: 'Missing process or function flatMap'.
The test only started running now because nextflow.config is an nf-test trigger,
forcing a full test run.
Generated with nf-test 0.9.4 / Nextflow 25.10.4 (matching CI) via docker profile.
…merge

- workflows/fastqrepair.nf: drop the dead FASTQC.out.versions reference.
  The template's FASTQC module now publishes its version via
  'emit: ..., topic: versions' instead of a plain 'emit: versions' output,
  so FASTQC.out no longer has a versions property; the old .mix() call
  crashed every run with a MissingPropertyException. FASTQC's version was
  already being collected through the versions topic channel further down.
- tests/main.nf.test: update the expected collated-versions filename to
  nf_core_fastqrepair_software_mqc_versions.yml, the new name the template
  writes (was nf-core_fastqrepair_versions.yml, the pre-4.0 name).
- Regenerate main.nf.test's snapshot and add the never-before-committed
  default.nf.test snapshot, both verified against a local Docker run
  (nf-test 0.9.4 / Nextflow 25.10.4, matching CI).
.nftignore listed multiqc/* and fastqc/* patterns assuming the nf-core
default output layout, but conf/modules.config publishes FastQC and
MultiQC under QC/fastqc/ and QC/multiqc/ (a pre-existing pipeline
customization). The patterns never matched, so default.nf.test's
stable_content sweep hashed files with embedded timestamps (FastQC's
zip, MultiQC's report.html and SVG plots), making the snapshot
non-reproducible from run to run -- exactly what CI hit.

Verified reproducible: regenerated the snapshot, then reran the test
against it unchanged on a second independent local run (Docker,
nf-test 0.9.4 / Nextflow 25.10.4, matching CI).
Ran nf-core pipelines bump-version 1.1.1 (nf-core-tools 4.0.3, matching
.nf-core.yml). Updates nextflow.config, .nf-core.yml, assets/multiqc_config.yml
and regenerates ro-crate-metadata.json. CHANGELOG.md updated by hand, since
bump-version doesn't touch it.
WIPERTOOLS_FASTQWIPER.out.wiped_fastq was grouped by groupTuple, which
preserves arrival order rather than any deterministic order -- arrival
depends on which chunk's wiper task finishes first, a race that's stable
on a given machine's scheduling pattern but differs between environments
(reproduced here: passed on two independent local Docker runs, but failed
against the CI-generated snapshot with a different byte-for-byte gathered
fastq.gz, same decompressed record set). The chunk's own id (meta.id,
zero-padded e.g. test_1_000/test_1_001, confirmed from an actual run's
work directory) was dropped via subMap before grouping, leaving nothing
to reorder by; now it's carried through and sorted on before gathering.
Both were stale for reasons unrelated to any new bug: default.nf.test's
recorded pipeline version was v1.1.0dev (generated before the 1.1.1 bump),
and main.nf.test's repaired/ directory listing embeds a content hash of
test_30reads_2.fastq.gz, which legitimately changed once the wiped-chunk
ordering fix landed. Verified stable across two independent local runs
of all three nf-test files together (Docker, nf-test 0.9.4 / Nextflow
25.10.4, matching CI).
@mazzalab mazzalab added the enhancement New feature or request label Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants