Staged pipeline steps not given labels

I’ve noticed that guild applies that labels I give to pipelines to each pipeline step when the pipeline stage is ran directly. However, if I instead stage the pipeline operation and then run the staged pipeline operation this doesn’t happen. Instead only the pipeline operation receives label, not the steps of the pipeline. For example, lets say my guild.yml is given as follows. The contents of train.py and test.py aren’t really important.

- operations:
    mypipeline:
        steps:
            - train
            - test

    train:
        sourcecode:
            dest: .
            select: train.py
        exec: "python train.py"

    test:
        sourcecode:
            dest: .
            select: test.py
        exec: "python test.py"

If I run guild run mypipeline -y --label debug I get

[1:b21131b7]   test                                      2022-01-03 17:27:55  completed  debug
[2:8dd06463]   train                                     2022-01-03 17:27:55  completed  debug
[3:092f43f2]   mypipeline                                2022-01-03 17:27:54  completed  debug

But if I run guild run mypipeline -y --label debug --stage && guild run queue -y I get the following. Note that only the mypipeline operation receives the label debug while the step operations receive no label.

[1:5b2c8b79]   test                                      2022-01-03 17:28:48  completed
[2:85ae374c]   train                                     2022-01-03 17:28:47  completed
[3:a0dc7ef1]   mypipeline                                2022-01-03 17:28:46  completed   debug

Note that similar commands like guild run mypipeline -y --label debug --stage && guild run --start $(guild select 1) have the same effect.

Is this intended behavior? If so how can I make it so that the steps of the staged pipeline operation receive the same label as the pipeline operation that started them? Thanks

This looks like a bug. Guild stores run params in staged runs and my guess is that it’s either not storing this particular param or not using it when starting the staged run. I’ll take a look.

This is fixed in master and will be available in the next release (a pre-release will go out later today with this - look for 0.7.5.dev3).

Thanks for the detailed report!

Good to hear, thanks.