nextflow-io / nextflow-io/nextflow
Strict mode should also enforce existence of process labels
Nobody has claimed this yet.
- Dominant language
- Groovy
- Stars
- 3.5k
- Forks
- 811
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 61
Description
New feature
Nextflow strict mode helps avoid a lot of troublesome silent errors, but it does not seem to throw an error if a process declares a label that does not exist in the config.
E.g. Adding a non-existent label to the classic Hello World script:
process sayHello {
label 'doesnotexist'
input:
val x
output:
stdout
script:
"""
echo '$x world!'
"""
}
workflow {
Channel.of('Bonjour', 'Ciao', 'Hello', 'Hola') | sayHello | view
}
But even with strict mode enabled, it runs without error:
$ NXF_ENABLE_STRICT=true nextflow run main.nf
N E X T F L O W ~ version 22.10.0
Launching `main.nf` [nostalgic_gates] DSL2 - revision: b366a11eb3
executor > local (4)
[98/8ff160] process > sayHello (2) [100%] 4 of 4 ✔
Hello world!
Bonjour world!
Hola world!
Ciao world!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the strict-mode behavior demonstrated by main.nf and run it with NXF_ENABLE_STRICT=true using nextflow run main.nf. Trace where the process label is checked, then make strict mode reject doesnotexist when it is absent from configuration; verify that the example no longer runs silently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- groovy
- Domain
- data-engineering
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100