diff --git a/.github/workflows/create-lint-wf.yml b/.github/workflows/create-lint-wf.yml index 22920a08fe..3bb0f81c92 100644 --- a/.github/workflows/create-lint-wf.yml +++ b/.github/workflows/create-lint-wf.yml @@ -32,7 +32,7 @@ jobs: strategy: matrix: NXF_VER: - - "25.04.0" + - "25.10.0" - "latest-everything" steps: - name: go to subdirectory and change nextflow workdir diff --git a/.github/workflows/create-test-wf.yml b/.github/workflows/create-test-wf.yml index ed6cb9ea2f..29ecc5de79 100644 --- a/.github/workflows/create-test-wf.yml +++ b/.github/workflows/create-test-wf.yml @@ -32,7 +32,7 @@ jobs: strategy: matrix: NXF_VER: - - "25.04.0" + - "25.10.0" - "latest-everything" steps: - name: go to working directory diff --git a/nf_core/pipeline-template/.github/workflows/nf-test.yml b/nf_core/pipeline-template/.github/workflows/nf-test.yml index 28471884ad..04cd3758d1 100644 --- a/nf_core/pipeline-template/.github/workflows/nf-test.yml +++ b/nf_core/pipeline-template/.github/workflows/nf-test.yml @@ -80,7 +80,7 @@ jobs: - isMain: false profile: "singularity" NXF_VER: - - "25.04.0" + - "25.10.0" - "latest-everything" env: NXF_ANSI_LOG: false diff --git a/nf_core/pipeline-template/README.md b/nf_core/pipeline-template/README.md index 584eebaba4..57463c6c52 100644 --- a/nf_core/pipeline-template/README.md +++ b/nf_core/pipeline-template/README.md @@ -21,7 +21,7 @@ [![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) [![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) -[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) [![nf-core template version](https://img.shields.io/badge/nf--core_template-{{ nf_core_version }}-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/{{ nf_core_version }}) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) diff --git a/nf_core/pipeline-template/conf/modules.config b/nf_core/pipeline-template/conf/modules.config index 1614e2b1a9..7ddf9231c6 100644 --- a/nf_core/pipeline-template/conf/modules.config +++ b/nf_core/pipeline-template/conf/modules.config @@ -29,11 +29,6 @@ process { withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } - publishDir = [ - path: { "${params.outdir}/multiqc" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] } {%- endif %} diff --git a/nf_core/pipeline-template/main.nf b/nf_core/pipeline-template/main.nf index 0ed9b39843..f0eb658441 100644 --- a/nf_core/pipeline-template/main.nf +++ b/nf_core/pipeline-template/main.nf @@ -66,6 +66,8 @@ workflow {{ prefix_nodash|upper }}_{{ short_name|upper }} { {%- if multiqc %}{%- if modules %} emit: multiqc_report = {{ short_name|upper }}.out.multiqc_report // channel: /path/to/multiqc_report.html + multiqc_data = {{ short_name|upper }}.out.multiqc_data // channel: [meta, /path/to/multiqc_data/] + multiqc_plots = {{ short_name|upper }}.out.multiqc_plots // channel: [meta, /path/to/multiqc_plots/] {%- endif %}{%- endif %} } /* @@ -122,6 +124,22 @@ workflow { {{ prefix_nodash|upper }}_{{ short_name|upper }}.out.multiqc_report{% endif %} ) {%- endif %} +{%- if multiqc %}{%- if modules %} + + def multiqc_publish = {{ prefix_nodash|upper }}_{{ short_name|upper }}.out.multiqc_report + .mix({{ prefix_nodash|upper }}_{{ short_name|upper }}.out.multiqc_data) + .mix({{ prefix_nodash|upper }}_{{ short_name|upper }}.out.multiqc_plots) + + publish: + multiqc = multiqc_publish +} + +output { + multiqc { + path "multiqc" + } +{%- endif %}{%- endif %} + } /* diff --git a/nf_core/pipeline-template/nextflow.config b/nf_core/pipeline-template/nextflow.config index c43150807d..13a58984c3 100644 --- a/nf_core/pipeline-template/nextflow.config +++ b/nf_core/pipeline-template/nextflow.config @@ -70,6 +70,12 @@ params { {%- endif %} } +// Backwards compatibility for publishDir syntax +outputDir = params.outdir +{%- if modules %} +workflow.output.mode = params.publish_dir_mode +{%- endif %} + {% if modules -%} // Load base.config by default for all pipelines includeConfig 'conf/base.config' @@ -306,7 +312,7 @@ manifest { description = """{{ description }}""" mainScript = 'main.nf' defaultBranch = '{{ default_branch }}' - nextflowVersion = '!>=25.04.0' + nextflowVersion = '!>=25.10.0' version = '{{ version }}' doi = '' } diff --git a/nf_core/pipeline-template/tests/default.nf.test b/nf_core/pipeline-template/tests/default.nf.test index 6cf6186fc7..28a2356a5e 100644 --- a/nf_core/pipeline-template/tests/default.nf.test +++ b/nf_core/pipeline-template/tests/default.nf.test @@ -5,6 +5,7 @@ nextflow_pipeline { tag "pipeline" test("-profile test") { + options "-output-dir $outputDir" when { params { diff --git a/nf_core/pipeline-template/workflows/pipeline.nf b/nf_core/pipeline-template/workflows/pipeline.nf index 653c8ff135..5e24b215ed 100644 --- a/nf_core/pipeline-template/workflows/pipeline.nf +++ b/nf_core/pipeline-template/workflows/pipeline.nf @@ -115,7 +115,9 @@ workflow {{ short_name|upper }} { ) {% endif %} emit: - {%- if multiqc %}multiqc_report = MULTIQC.out.report.map { _meta, report -> [report] }.toList() // channel: /path/to/multiqc_report.html{% endif %} + {%- if multiqc %}multiqc_report = MULTIQC.out.report.map { _meta, report -> [report] }.toList() // channel: /path/to/multiqc_report.html + multiqc_data = MULTIQC.out.data // channel: [meta, /path/to/multiqc_data/] + multiqc_plots = MULTIQC.out.plots // channel: [meta, /path/to/multiqc_plots/]{% endif %} versions = ch_versions // channel: [ path(versions.yml) ] {%- else %} diff --git a/nf_core/pipelines/lint/readme.py b/nf_core/pipelines/lint/readme.py index d16125021c..ba60ac4764 100644 --- a/nf_core/pipelines/lint/readme.py +++ b/nf_core/pipelines/lint/readme.py @@ -53,7 +53,7 @@ def readme(self): if "nextflow_badge" not in ignore_configs: # Check that there is a readme badge showing the minimum required version of Nextflow - # [![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) + # [![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) # and that it has the correct version nf_badge_re = r"\[!\[Nextflow\]\(https://img\.shields\.io/badge/version-!?(?:%E2%89%A5|%3E%3D)([\d\.]+)-green\?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow\.io\)\]\(https://www\.nextflow\.io/\)" match = re.search(nf_badge_re, content)