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