Context
Nextflow 25.04 soft-deprecated the shell: directive on processes. The blocks still run (with a warning) in 25.10, but should be migrated to script: to stay forward-compatible. Tracking as a separate PR from the 25.10 port itself because the conversion is touchy enough to deserve its own test run.
Processes to migrate
modules/local/dorado/main.nf
BASECALL_POD_5_SIMPLEX
BASECALL_POD_5_DUPLEX
DEMUX_POD_5
modules/local/samtools/main.nf
Migration notes
The interpolation convention flips between shell: and script::
- Nextflow variables:
!{var} → ${var}
- Shell variables / command substitution that were bare in
shell: (${var}, $(...)) need to be escaped in script: as \${var} / \$(...) so Nextflow doesn't try to interpolate them.
Easy to introduce subtle bugs — every $ in each block needs to be classified as Nextflow-side or shell-side.
Verification
Same as the 25.10 port: rebuild the head container, run a real delivery through startOntBasecall → Batch (or nextflow run main.nf against a delivery directly), and scan .nextflow.log for warnings/errors plus confirm the FASTQ output lands under raw/ in the base bucket.
Context
Nextflow 25.04 soft-deprecated the
shell:directive on processes. The blocks still run (with a warning) in 25.10, but should be migrated toscript:to stay forward-compatible. Tracking as a separate PR from the 25.10 port itself because the conversion is touchy enough to deserve its own test run.Processes to migrate
modules/local/dorado/main.nfBASECALL_POD_5_SIMPLEXBASECALL_POD_5_DUPLEXDEMUX_POD_5modules/local/samtools/main.nfBAM_TO_FASTQMERGE_BAMSMigration notes
The interpolation convention flips between
shell:andscript::!{var}→${var}shell:(${var},$(...)) need to be escaped inscript:as\${var}/\$(...)so Nextflow doesn't try to interpolate them.Easy to introduce subtle bugs — every
$in each block needs to be classified as Nextflow-side or shell-side.Verification
Same as the 25.10 port: rebuild the head container, run a real delivery through
startOntBasecall→ Batch (ornextflow run main.nfagainst a delivery directly), and scan.nextflow.logfor warnings/errors plus confirm the FASTQ output lands underraw/in the base bucket.