Closed
Description
DVC version : 0.92.0 (PyPI) + MacOS
It seems dvc repro --downstream
(could also be the -f
option) sometimes executes DAGs in the wrong order.
Steps to reproduction:
dvc run -o 1 -o 2 -f step1.dvc 'touch 1 | touch 2'
dvc run -d 1 -o 3 -f step2.dvc 'touch 3'
dvc run -d 3 -d 2 -o 4 -f step3.dvc 'touch 4'
dvc repro --downstream -f step1.dvc
Last bit does :
Running command:
touch 1 | touch 2
Running command:
touch 4
Running command:
touch 3
Even though the DAG looks like this :
+-----------+
| step1.dvc |
+-----------+
*** ***
* *
** ***
+-----------+ *
| step2.dvc | ***
+-----------+ *
*** ***
* *
** **
+-----------+
| step3.dvc |
+-----------+
In this case step2 (touch 3
) should be executed before step3 (touch 4
)