Bug Report
Not sure it's a bug or just an inconsistency.
dvc status by default checks all dvc.yaml/lock files recursively in the project, and in some docs we state this is a way to check whether dvc repro is needed. However, repro by default doesn't do this; It needs the -P/--all-pipelines flag to have this behavior. I see 2 issues:
- The inconsistency between these close commands. I would vote for
repro to be recursive just like status.
- It's not clear how to specify a
repro just for a specific subfolder, as paths are not accepted as targets by repro. You'd have to specify the name of the last stage of the pipeline in a subdir, but will repro find it without -P? And with -P it will probably repro everything anyway (not limited to the pipeline you want) — I need to double check this part.
--all-pipelines seems ambiguous. Do we mean all the pipelines in a single dvc.yaml file, since it can have multiple ones? Or all the pipelines in all the dvc.yaml files (current behavior)?
Solution: I think repro should behave like status, and keep -P for the other meaning (all pipelines in a dvc.yaml file). Or maybe deprecate -P since the default behavior I think is already to repro all pipelines when no targets are given.
Extracted from treeverse/dvc.org#1572 (comment)
P/s supporting outputs as targets (and granularity maybe?) of repro would also be nice. Related: #4191
Please provide information about your setup
Output of dvc version:
$ dvc version
DVC version: 1.1.11
Python version: 3.7.5
Platform: Windows-10-10.0.18362-SP0
Binary: True
Package: exe
Supported remotes: azure, gdrive, gs, hdfs, http, https, s3, ssh, oss
Cache: reflink - not supported, hardlink - supported, symlink - not supported
Filesystem type (cache directory): ('NTFS', 'C:\\')
Repo: dvc, git
Filesystem type (workspace): ('NTFS', 'C:\\')
BugReportdvc statusby default checks all dvc.yaml/lock files recursively in the project, and in some docs we state this is a way to check whetherdvc reprois needed. However,reproby default doesn't do this; It needs the-P/--all-pipelinesflag to have this behavior. I see 2 issues:reproto be recursive just like status.reprojust for a specific subfolder, as paths are not accepted astargetsbyrepro. You'd have to specify the name of the last stage of the pipeline in a subdir, but willreprofind it without-P? And with-Pit will probably repro everything anyway (not limited to the pipeline you want) — I need to double check this part.--all-pipelinesseems ambiguous. Do we mean all the pipelines in a single dvc.yaml file, since it can have multiple ones? Or all the pipelines in all the dvc.yaml files (current behavior)?Solution: I think repro should behave like status, and keep -P for the other meaning (all pipelines in a dvc.yaml file). Or maybe deprecate -P since the default behavior I think is already to repro all pipelines when no targets are given.
P/s supporting outputs as targets (and granularity maybe?) of repro would also be nice. Related: #4191
Please provide information about your setup
Output of
dvc version: