-
Notifications
You must be signed in to change notification settings - Fork 746
Open
Labels
Description
Bug report
Expected behavior and actual behavior
I would expect negation (!) would work to not match the rest of the pattern when the fully qualified name of the process is used. Instead, it seems like the negative is ignored, and it will do the opposite, i.e. match the pattern after the negation.
Steps to reproduce the problem
here's the script:
process A {
input:
val(x)
exec:
def args = task.ext.args ?: "hi"
def args2 = task.ext.args2 ?: "hi2"
println args
println args2
}
workflow { A_workflow() }
workflow A_workflow { A(Channel.of(1)) }
here's the config:
process {
withName:'A_workflow:.*' {
ext.args = "hola"
}
withName: "!A_workflow:A" {
ext.args2 = "hola2"
}
}
i would expect the output would be hola hi2, instead if it's hola hola2
Program output
N E X T F L O W ~ version 25.09.1-edge
Launching `test.nf` [thirsty_davinci] DSL2 - revision: 44485f4459
executor > local (1)
[d6/b37c56] process > A_workflow:A (1) [100%] 1 of 1 ✔
hola
hola2
there's some lines in the config file i wanted to show as well:
$ grep matches .nextflow.log
Oct-13 11:47:49.945 [main] DEBUG nextflow.script.ProcessConfig - Config settings `withName:!A_workflow:A` matches process A_workflow:A
Oct-13 11:47:49.948 [main] DEBUG nextflow.script.ProcessConfig - Config settings `withName:A_workflow:.*` matches process A_workflow:A
what the first line doesn't make sense. i also tried parentheses (withName: "!(A_workflow:A)") and single quotes, worked the same.
Environment
- Nextflow version: 25.09.1-edge
- Java version: 23
- Operating system: Linux
- Bash version: GNU bash, version 4.4.20(1)-release (x86_64-redhat-linux-gnu)