Skip to content

process selector not working when full qualified name is used with negation #6480

@anoronh4

Description

@anoronh4

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions