Description of the bug
There is a problem with nf-core modules lint when working with patched modules that require different inputs or outputs compared to the original module.
Steps to reproduce:
- Change a module (e.g. artic/minion, cutadapt, multiqc) to use different inputs/outputs.
- Run
nf-core modules lint --fix. This adds those new inputs/outputs to the meta.yml without description (fix the fields in the yml file)
- Run
nf-core modules patch so that the meta.yml changes are reflected in the .diff file.
- Run
nf-core modules lint
If I remove the additional inputs/outputs, the linting passes, but this defeats the purpose of the patch.
This seems to be a recurring issue across pipelines whenever there is a patch with modified inputs/outputs.
Command used and terminal output
$nf-core modules lint
╭─ [✗] 3 Module Tests Failed ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ╷ ╷ │
│ Module name │ File path │ Test message │
│╶───────────────────────────────┼───────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╴│
│ artic/minion │ modules/nf-core/artic/minion/meta.yml │ Module meta.yml does not match main.nf. Inputs should contain: [['meta', 'fastq'], 'fast5_dir', 'sequencing_summary', 'primer-schemes/${scheme}/V${scheme_version}/${scheme}.reference.fasta', │
│ │ │ 'primer-schemes/${scheme}/V${scheme_version}/${scheme}.scheme.bed', 'medaka_model_file', 'medaka_model_string', 'scheme', 'scheme_version'] Run nf-core modules lint --fix to update the meta.yml file. │
│ cutadapt │ modules/nf-core/cutadapt/meta.yml │ Module meta.yml does not match main.nf. Inputs should contain: [['meta', 'reads'], 'adapters'] Run nf-core modules lint --fix to update the meta.yml file. │
│ multiqc │ modules/nf-core/multiqc/meta.yml │ Module meta.yml does not match main.nf. Outputs should contain: {'report': ['multiqc_report.html'], 'data': ['_data'], 'plots': ['_plots'], 'csv_reports': ['.csv'], 'versions': ['versions.yml']} Run nf-core modules lint --fix to │
│ │ │ update the meta.yml file. │
│ ╵ ╵ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
System information
N E X T F L O W versions 25.04.6 and 25.04.7
Hardware : HPC and Desktop
Executor: Slurm and local
OS: CentOS Stream release 8 and Ubuntu 22.04.5 LTS
Version of nf-core/tools: 3.3.2
Python version: 3.12.11
Description of the bug
There is a problem with
nf-core modules lintwhen working with patched modules that require different inputs or outputs compared to the original module.Steps to reproduce:
nf-core modules lint --fix. This adds those new inputs/outputs to themeta.ymlwithout description (fix the fields in the yml file)nf-core modules patchso that themeta.ymlchanges are reflected in the .diff file.nf-core modules lintIf I remove the additional inputs/outputs, the linting passes, but this defeats the purpose of the patch.
This seems to be a recurring issue across pipelines whenever there is a patch with modified inputs/outputs.
Command used and terminal output
System information
N E X T F L O W versions 25.04.6 and 25.04.7
Hardware : HPC and Desktop
Executor: Slurm and local
OS: CentOS Stream release 8 and Ubuntu 22.04.5 LTS
Version of nf-core/tools: 3.3.2
Python version: 3.12.11