Skip to content

fix(nfcore_build): align include order and use subworkflow input - #1010

Closed
FriederikeHanssen wants to merge 1 commit into
fix/nfcore-build-demo-pathfrom
fix/nfcore-build-consistency
Closed

FriederikeHanssen wants to merge 1 commit into
fix/nfcore-build-demo-pathfrom
fix/nfcore-build-consistency

Conversation

@FriederikeHanssen

Copy link
Copy Markdown
Collaborator

Summary

Two consistency fixes across the Hello nf-core course, found during the learner walkthrough.

Stacked on #1009 (→ #1008 → #1007 → #1006 → #1005). Review only the 1 commit in this PR.

Changes

1. Include order. Part 2 §1.5 replaces the collectGreetings include with FIND_CONCATENATE in place, so FIND_CONCATENATE comes before cowpy. Part 3's Before/After blocks listed cowpy first, so learners following Part 2 didn't match Part 3's "Before".

Location Change
03 §1.1.2 and §2.4 (After and Before) FIND_CONCATENATE before cowpy/COWPY. hl_lines 10 → 11, so it still highlights the cowpy line.
solutions/core-hello-part{3,4}/workflows/hello.nf Same order (part2 is fixed in #1005)

2. Use the subworkflow's input instead of params.input. The nf-core template's utils_nfcore_hello_pipeline/main.nf receives the samplesheet path as a take: input (main.nf passes params.input into it) and uses it in samplesheetToList(input, …). The lesson told learners to use params.input directly. That leaves take: input unused, and nextflow lint warns Parameter was not used in every solution.

Location Change
01 §5.2 After block: channel.fromPath(input). Prose: replace params.greeting with input. The note now explains where input comes from.
04 §2.5 Before: channel.fromPath(input). After: samplesheetToList(input, …). The explanation bullet matches.
solutions/core-hello-part{1..4}/subworkflows/local/utils_nfcore_hello_pipeline/main.nf params.input → input

Testing

  • Solutions part1-4 run with -profile test,docker (Nextflow 26.04.4, v2 parser) and print Pipeline completed successfully
  • nextflow lint: the utils_nfcore_hello_pipeline/main.nf:33:5: Parameter was not used warning for input is gone in all four solutions. The remaining monochrome_logs warning comes from the template and is unchanged.
  • /check-highlights on all changed blocks, check_headings and pre-commit pass
  • With this PR on top, the whole stack (fix(nfcore_build): align solution files with lesson content #1005-fix(nfcore_build): align include order and use subworkflow input #1010) matches an integration branch on which all five nfcore_build solutions run and nf-core pipelines schema lint passes on part4

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Nextflow linting complete!

❌ 1 files had 5 errors
⚠️ 19 files had 27 warnings
✅ 183 files had no errors
🔧 130 files would be changed by auto-formatting

💡 Tip: Click filename locations to go directly to that code.

View all 32 issues
Type Location Message
Error hello-nextflow/solutions/6-hello-config/hello-config.nf:44:16 sayHello is not defined
Error hello-nextflow/solutions/6-hello-config/hello-config.nf:47:16 convertToUpper is not defined
Error hello-nextflow/solutions/6-hello-config/hello-config.nf:50:16 collectGreetings is not defined
Error hello-nextflow/solutions/6-hello-config/hello-config.nf:53:16 collectGreetings is not defined
Error hello-nextflow/solutions/6-hello-config/hello-config.nf:56:16 cowpy is not defined
Warning nfcore-build/solutions/core-hello-part1/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning nfcore-build/solutions/core-hello-part1/workflows/hello.nf:61:9 Variable was declared but not used
Warning nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/main.nf:19:5 The when section is deprecated -- use conditional logic in the calling workflow, or the process.when config option to disable a process at runtime
Warning nfcore-build/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning nfcore-build/solutions/core-hello-part2/workflows/hello.nf:45:55 Parameter was not used -- prefix with _ to suppress warning
Warning nfcore-build/solutions/core-hello-part2/workflows/hello.nf:70:9 Variable was declared but not used
Warning nfcore-build/solutions/core-hello-part3/modules/local/cowpy/main.nf:17:5 The when section is deprecated -- use conditional logic in the calling workflow, or the process.when config option to disable a process at runtime
Warning nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf:19:5 The when section is deprecated -- use conditional logic in the calling workflow, or the process.when config option to disable a process at runtime
Warning nfcore-build/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning nfcore-build/solutions/core-hello-part3/workflows/hello.nf:67:9 Variable was declared but not used
Warning nfcore-build/solutions/core-hello-part4/modules/local/cowpy/main.nf:17:5 The when section is deprecated -- use conditional logic in the calling workflow, or the process.when config option to disable a process at runtime
Warning nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf:19:5 The when section is deprecated -- use conditional logic in the calling workflow, or the process.when config option to disable a process at runtime
Warning nfcore-build/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning nfcore-build/solutions/core-hello-part4/workflows/hello.nf:67:9 Variable was declared but not used
Warning nfcore-build/solutions/core-hello-start/workflows/hello.nf:18:5 Parameter was not used -- prefix with _ to suppress warning
Warning nfcore-build/solutions/core-hello-start/workflows/hello.nf:45:9 Variable was declared but not used
Warning side-quests/solutions/debugging/buggy_workflow.nf:91:44 Implicit closure parameter is deprecated, declare an explicit parameter instead
Warning side-quests/solutions/essential_scripting_patterns/main.nf:59:25 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/essential_scripting_patterns/main.nf:63:53 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/essential_scripting_patterns/main.nf:68:5 Variable was declared but not used
Warning side-quests/solutions/essential_scripting_patterns/main.nf:69:5 Variable was declared but not used
Warning side-quests/solutions/metadata/1.2/main.nf:5:5 Variable was declared but not used
Warning side-quests/solutions/splitting_and_grouping/main.nf:11:25 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/splitting_and_grouping/main.nf:14:25 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/splitting_and_grouping/main.nf:29:5 Variable was declared but not used
Warning side-quests/solutions/working_with_files/6/main.nf:10:43 Variable was declared but not used
Warning side-quests/solutions/working_with_files/6/main.nf:30:22 Parameter was not used -- prefix with _ to suppress warning
View formatting changes
FileDiff
hello-nextflow/solutions/1-hello-world/hello-world-2.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     output:
     path 'output.txt'
 
hello-nextflow/solutions/1-hello-world/hello-world-3.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/2-hello-channels/hello-channels-1.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -29,7 +28,7 @@ workflow {
     main:
     // create a channel for inputs
     greeting_ch = channel.of('Hello Channels!')
-                        .view()
+        .view()
     // emit a greeting
... (truncated)
hello-nextflow/solutions/2-hello-channels/hello-channels-2.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -29,7 +28,7 @@ workflow {
     main:
     // create a channel for inputs
     greeting_ch = channel.of('Hello', 'Bonjour', 'Hola')
-                        .view()
+        .view()
     // emit a greeting
... (truncated)
hello-nextflow/solutions/2-hello-channels/hello-channels-3.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -28,12 +27,12 @@ workflow {
 
     main:
     // declare an array of input greetings
-    greetings_array = ['Hello','Bonjour','Hola']
+    greetings_array = ['Hello', 'Bonjour', 'Hola']
     // create a channel for inputs
... (truncated)
hello-nextflow/solutions/2-hello-channels/hello-channels-4.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -29,11 +28,11 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .view { csv -> "Before splitCsv: $csv" }
-                        .splitCsv()
-                        .view { csv -> "After splitCsv: $csv" }
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-1.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-2.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-3.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-4.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/4-hello-modules/hello-modules-2.nf
View
@@ -7,7 +7,6 @@ include { sayHello } from './modules/sayHello.nf'
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
@@ -24,7 +23,6 @@ process convertToUpper {
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
... (truncated)
hello-nextflow/solutions/4-hello-modules/hello-modules-3.nf
View
@@ -8,7 +8,6 @@ include { convertToUpper } from './modules/convertToUpper.nf'
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
@@ -38,8 +37,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
... (truncated)
hello-nextflow/solutions/4-hello-modules/hello-modules-4.nf
View
@@ -18,8 +18,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
     // emit a greeting
     sayHello(greeting_ch)
     // convert the greeting to uppercase
hello-nextflow/solutions/4-hello-modules/modules/collectGreetings.nf
View
@@ -2,7 +2,6 @@
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
hello-nextflow/solutions/4-hello-modules/modules/convertToUpper.nf
View
@@ -2,7 +2,6 @@
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
hello-nextflow/solutions/4-hello-modules/modules/sayHello.nf
View
@@ -2,7 +2,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/5-hello-containers/hello-containers-2.nf
View
@@ -20,8 +20,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
     // emit a greeting
     sayHello(greeting_ch)
     // convert the greeting to uppercase
hello-nextflow/solutions/5-hello-containers/modules/collectGreetings.nf
View
@@ -2,7 +2,6 @@
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
hello-nextflow/solutions/5-hello-containers/modules/convertToUpper.nf
View
@@ -2,7 +2,6 @@
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
hello-nextflow/solutions/5-hello-containers/modules/sayHello.nf
View
@@ -2,7 +2,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/6-hello-config/modules/collectGreetings.nf
View
@@ -2,7 +2,6 @@
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
hello-nextflow/solutions/6-hello-config/modules/convertToUpper.nf
View
@@ -2,7 +2,6 @@
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
hello-nextflow/solutions/6-hello-config/modules/sayHello.nf
View
@@ -2,7 +2,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/6-hello-config/nextflow.config
View
@@ -2,19 +2,19 @@ docker.enabled = false
 conda.enabled = true
 
 /*
-* Process settings
-*/
+ * Process settings
+ */
 process {
     memory = 1.GB
-    withName: 'cowpy' {
+    withName: cowpy {
         memory = 2.GB
         cpus = 2
     }
... (truncated)
nfcore-build/solutions/composable-hello/hello.nf
View
@@ -14,7 +14,6 @@ include { collectGreetings } from './modules/collectGreetings.nf'
 include { cowpy } from './modules/cowpy.nf'
 
 workflow HELLO {
-
     take:
     // channel of greetings
     greeting_ch
nfcore-build/solutions/composable-hello/main.nf
View
@@ -9,12 +9,12 @@ params.greeting = 'greetings.csv'
 workflow {
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.greeting)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
 
     // call the imported workflow on the channel of greetings
     HELLO(greeting_ch)
 
     // view the outputs emitted by the workflow
-    HELLO.out.view { output -> "Output: $output" }
+    HELLO.out.view { output -> "Output: ${output}" }
... (truncated)
nfcore-build/solutions/composable-hello/modules/collectGreetings.nf
View
@@ -10,8 +10,8 @@ process collectGreetings {
     val batch_name
 
     output:
-    path "COLLECTED-${batch_name}-output.txt" , emit: outfile
-    val count_greetings , emit: count
+    path "COLLECTED-${batch_name}-output.txt", emit: outfile
+    val count_greetings, emit: count
 
     script:
     count_greetings = input_files.size()
nfcore-build/solutions/composable-hello/modules/convertToUpper.nf
View
@@ -13,6 +13,6 @@ process convertToUpper {
 
     script:
     """
-    cat $input_file | tr '[a-z]' '[A-Z]' > UPPER-${input_file}
+    cat ${input_file} | tr '[a-z]' '[A-Z]' > UPPER-${input_file}
     """
 }
nfcore-build/solutions/composable-hello/modules/cowpy.nf
View
@@ -15,6 +15,6 @@ process cowpy {
 
     script:
     """
-    cat $input_file | cowpy -c "$character" > cowpy-${input_file}
+    cat ${input_file} | cowpy -c "${character}" > cowpy-${input_file}
     """
 }
nfcore-build/solutions/composable-hello/modules/sayHello.nf
View
@@ -13,6 +13,6 @@ process sayHello {
 
     script:
     """
-    echo '$greeting' > '$greeting-output.txt'
+    echo '${greeting}' > '${greeting}-output.txt'
     """
 }
nfcore-build/solutions/core-hello-part1/conf/base.config
View
@@ -1,23 +1,23 @@
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    core/hello Nextflow base config file
+core/hello Nextflow base config file
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    A 'blank slate' config file, appropriate for general use on most high performance
-    compute environments. Assumes that all software is installed and available on
-    the PATH. Runs in `local` mode - all jobs will be run on the logged in environment.
+A 'blank slate' config file, appropriate for general use on most high performance
+compute environments. Assumes that all software is installed and available on
+the PATH. Runs in `local` mode - all jobs will be run on the logged in environment.
 ----------------------------------------------------------------------------------------
-*/
+ */
... (truncated)
nfcore-build/solutions/core-hello-part1/conf/modules.config
View
@@ -1,21 +1,16 @@
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Config file for defining DSL2 per module options and publishing paths
+Config file for defining DSL2 per module options and publishing paths
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Available keys to override module options:
-        ext.args   = Additional arguments appended to command in module.
-        ext.args2  = Second set of arguments appended to command in module (multi-tool modules).
-        ext.args3  = Third set of arguments appended to command in module (multi-tool modules).
-        ext.prefix = File name prefix for output files.
+Available keys to override module options:
+ext.args   = Additional arguments appended to command in module.
+ext.args2  = Second set of arguments appended to command in module (multi-tool modules).
+ext.args3  = Third set of arguments appended to command in module (multi-tool modules).
... (truncated)
nfcore-build/solutions/core-hello-part1/conf/test.config
View
@@ -1,31 +1,27 @@
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Nextflow config file for running minimal tests
+Nextflow config file for running minimal tests
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Defines input files and everything required to run a fast and simple pipeline test.
+Defines input files and everything required to run a fast and simple pipeline test.
 
-    Use as follows:
-        nextflow run core/hello -profile test,<docker/singularity> --outdir <OUTDIR>
+Use as follows:
+nextflow run core/hello -profile test,<docker/singularity> --outdir <OUTDIR>
 
 ----------------------------------------------------------------------------------------
... (truncated)
nfcore-build/solutions/core-hello-part1/conf/test_full.config
View
@@ -1,17 +1,17 @@
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Nextflow config file for running full-size tests
+Nextflow config file for running full-size tests
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Defines input files and everything required to run a full size pipeline test.
+Defines input files and everything required to run a full size pipeline test.
 
-    Use as follows:
-        nextflow run core/hello -profile test_full,<docker/singularity> --outdir <OUTDIR>
+Use as follows:
+nextflow run core/hello -profile test_full,<docker/singularity> --outdir <OUTDIR>
 
 ----------------------------------------------------------------------------------------
... (truncated)
nfcore-build/solutions/core-hello-part1/main.nf
View
@@ -1,32 +1,31 @@
 #!/usr/bin/env nextflow
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    core/hello
+core/hello
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Github : https://github.com/core/hello
+Github : https://github.com/core/hello
 ----------------------------------------------------------------------------------------
-*/
+ */
 
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
... (truncated)
nfcore-build/solutions/core-hello-part1/modules/local/collectGreetings.nf
View
@@ -10,8 +10,8 @@ process collectGreetings {
     val batch_name
 
     output:
-    path "COLLECTED-${batch_name}-output.txt" , emit: outfile
-    val count_greetings , emit: count
+    path "COLLECTED-${batch_name}-output.txt", emit: outfile
+    val count_greetings, emit: count
 
     script:
     count_greetings = input_files.size()
nfcore-build/solutions/core-hello-part1/modules/local/convertToUpper.nf
View
@@ -13,6 +13,6 @@ process convertToUpper {
 
     script:
     """
-    cat $input_file | tr '[a-z]' '[A-Z]' > UPPER-${input_file}
+    cat ${input_file} | tr '[a-z]' '[A-Z]' > UPPER-${input_file}
     """
 }
nfcore-build/solutions/core-hello-part1/modules/local/cowpy.nf
View
@@ -7,14 +7,14 @@ process cowpy {
     conda 'conda-forge::cowpy==1.1.5'
 
     input:
-        path input_file
-        val character
+    path input_file
+    val character
 
     output:
-        path "cowpy-${input_file}"
+    path "cowpy-${input_file}"
 
     script:
     """
... (truncated)
nfcore-build/solutions/core-hello-part1/modules/local/sayHello.nf
View
@@ -13,6 +13,6 @@ process sayHello {
 
     script:
     """
-    echo '$greeting' > '$greeting-output.txt'
+    echo '${greeting}' > '${greeting}-output.txt'
     """
 }
nfcore-build/solutions/core-hello-part1/nextflow.config
View
@@ -1,40 +1,40 @@
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    core/hello Nextflow config file
+core/hello Nextflow config file
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    Default config options for all compute environments
+Default config options for all compute environments
 ----------------------------------------------------------------------------------------
-*/
+ */
 
 // Global default params, used in configs
 params {
 
... (truncated)
nfcore-build/solutions/core-hello-part1/subworkflows/local/utils_nfcore_hello_pipeline/main.nf
View
@@ -4,36 +4,35 @@
 
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS
+IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*/
+ */
 
-include { UTILS_NFSCHEMA_PLUGIN     } from '../../nf-core/utils_nfschema_plugin'
-include { paramsSummaryMap          } from 'plugin/nf-schema'
-include { samplesheetToList         } from 'plugin/nf-schema'
-include { paramsHelp                } from 'plugin/nf-schema'
-include { completionSummary         } from '../../nf-core/utils_nfcore_pipeline'
... (truncated)
nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/main.nf
View
@@ -4,15 +4,15 @@
 
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    SUBWORKFLOW DEFINITION
+SUBWORKFLOW DEFINITION
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*/
+ */
 
 workflow UTILS_NEXTFLOW_PIPELINE {
     take:
-    print_version        // boolean: print version
-    dump_parameters      // boolean: dump parameters
-    outdir               //    path: base directory used to publish pipeline results
... (truncated)
nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config
View
@@ -1,9 +1,9 @@
 manifest {
-    name            = 'nextflow_workflow'
-    author          = """nf-core"""
-    homePage        = 'https://127.0.0.1'
-    description     = """Dummy pipeline"""
+    name = 'nextflow_workflow'
+    author = """nf-core"""
+    homePage = 'https://127.0.0.1'
+    description = """Dummy pipeline"""
     nextflowVersion = '!>=23.04.0'
-    version         = '9.9.9'
-    doi             = 'https://doi.org/10.5281/zenodo.5070524'
+    version = '9.9.9'
+    doi = 'https://doi.org/10.5281/zenodo.5070524'
... (truncated)
nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
nfcore-build/solutions/core-hello-part1/workflows/hello.nf(truncated)
nfcore-build/solutions/core-hello-part2/conf/base.config(truncated)
nfcore-build/solutions/core-hello-part2/conf/modules.config(truncated)
nfcore-build/solutions/core-hello-part2/conf/test.config(truncated)
nfcore-build/solutions/core-hello-part2/conf/test_full.config(truncated)
nfcore-build/solutions/core-hello-part2/main.nf(truncated)
nfcore-build/solutions/core-hello-part2/modules/local/collectGreetings.nf(truncated)
nfcore-build/solutions/core-hello-part2/modules/local/convertToUpper.nf(truncated)
nfcore-build/solutions/core-hello-part2/modules/local/cowpy.nf(truncated)
nfcore-build/solutions/core-hello-part2/modules/local/sayHello.nf(truncated)
nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/main.nf(truncated)
nfcore-build/solutions/core-hello-part2/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
nfcore-build/solutions/core-hello-part2/workflows/hello.nf(truncated)
nfcore-build/solutions/core-hello-part3/conf/base.config(truncated)
nfcore-build/solutions/core-hello-part3/conf/modules.config(truncated)
nfcore-build/solutions/core-hello-part3/conf/test.config(truncated)
nfcore-build/solutions/core-hello-part3/conf/test_full.config(truncated)
nfcore-build/solutions/core-hello-part3/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/modules/local/collectGreetings.nf(truncated)
nfcore-build/solutions/core-hello-part3/modules/local/convertToUpper.nf(truncated)
nfcore-build/solutions/core-hello-part3/modules/local/cowpy.nf(truncated)
nfcore-build/solutions/core-hello-part3/modules/local/cowpy/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/modules/local/sayHello.nf(truncated)
nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
nfcore-build/solutions/core-hello-part3/workflows/hello.nf(truncated)
nfcore-build/solutions/core-hello-part4/conf/base.config(truncated)
nfcore-build/solutions/core-hello-part4/conf/modules.config(truncated)
nfcore-build/solutions/core-hello-part4/conf/test.config(truncated)
nfcore-build/solutions/core-hello-part4/conf/test_full.config(truncated)
nfcore-build/solutions/core-hello-part4/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/modules/local/collectGreetings.nf(truncated)
nfcore-build/solutions/core-hello-part4/modules/local/convertToUpper.nf(truncated)
nfcore-build/solutions/core-hello-part4/modules/local/cowpy.nf(truncated)
nfcore-build/solutions/core-hello-part4/modules/local/cowpy/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/modules/local/sayHello.nf(truncated)
nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
nfcore-build/solutions/core-hello-part4/workflows/hello.nf(truncated)
nfcore-build/solutions/core-hello-start/conf/base.config(truncated)
nfcore-build/solutions/core-hello-start/conf/modules.config(truncated)
nfcore-build/solutions/core-hello-start/conf/test.config(truncated)
nfcore-build/solutions/core-hello-start/conf/test_full.config(truncated)
nfcore-build/solutions/core-hello-start/main.nf(truncated)
nfcore-build/solutions/core-hello-start/nextflow.config(truncated)
nfcore-build/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
nfcore-build/solutions/core-hello-start/workflows/hello.nf(truncated)
side-quests/solutions/debugging/buggy_workflow.nf(truncated)
side-quests/solutions/essential_scripting_patterns/main.nf(truncated)
side-quests/solutions/essential_scripting_patterns/modules/generate_report.nf(truncated)
side-quests/solutions/metadata/1.2/main.nf(truncated)
side-quests/solutions/metadata/1.3/main.nf(truncated)
side-quests/solutions/metadata/1.4/main.nf(truncated)
side-quests/solutions/metadata/1.5/main.nf(truncated)
side-quests/solutions/metadata/2.1/main.nf(truncated)
side-quests/solutions/metadata/2.2/main.nf(truncated)
side-quests/solutions/metadata/2.3/main.nf(truncated)
side-quests/solutions/metadata/2.4/main.nf(truncated)
side-quests/solutions/metadata/3.2/main.nf(truncated)
side-quests/solutions/workflows_of_workflows/main.nf(truncated)
side-quests/solutions/working_with_files/6/main.nf(truncated)

- 03: show FIND_CONCATENATE before cowpy/COWPY in workflows/hello.nf
  include blocks, matching 02 §1.5; update hl_lines accordingly.
  Apply the same order to solutions core-hello-part3/part4.
- 01 §5.2, 04 §2.5 and solutions part1-4: read the samplesheet from the
  PIPELINE_INITIALISATION `input` take instead of params.input, which
  removes the "Parameter was not used" lint warning.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@FriederikeHanssen
FriederikeHanssen force-pushed the fix/nfcore-build-demo-path branch from 6401d33 to 8c8facb Compare October 13, 2026 13:21
@FriederikeHanssen
FriederikeHanssen force-pushed the fix/nfcore-build-consistency branch from f61535b to a83eff6 Compare October 13, 2026 13:21
@pinin4fjords

Copy link
Copy Markdown
Collaborator

Superseded by #1012. The include-order alignment is in. The params.input → input switch is left out, as it changes what the lesson teaches rather than fixing an error, and we're keeping this one to fixes ahead of the training.

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.

2 participants