repro --pull implies --allow-missing#10434
Conversation
| "Try automatically pulling missing cache for outputs restored " | ||
| "from the run-cache." | ||
| "Try automatically pulling missing dependencies and outputs. " | ||
| "Implies --allow-missing." |
There was a problem hiding this comment.
would it better to deprecate then allow-missing? and here describe the behavior in a more explicit way (by not referring to another option, but actually saying what is happening)
There was a problem hiding this comment.
I didn't want to deprecate now because:
- That is a clear breaking change that I don't think we should do unless we want to do a major version change
- Unlike
--pull,--allow-missingon its own can be useful. It was introduced to solve New command: dvc verify - check that the pipeline is up to date without having to pull or run it #5369, in which case the user doesn't want to pull anything.
Open to other ideas on how to explain it but worried about overcomplicating it. I think this is how people expect --pull works now. With --pull and --allow-missing, if you have run the stage before and pushed it, it won't get run again. Without --allow-missing, the stage may still be considered changed and run again even if it can be pulled from the run-cache.
|
This raised a couple other issues when I started looking deeper:
I'm working on an alternate PR that would address these questions. |
|
See #10412 (comment). When we introduced
--allow-missing, we also updated the behavior of--pull, but kept them as separate flags for a couple reasons (see discussion here):--pulltoo muchSince then, every user I have encountered expects the behavior to be what
--pull --allow-missingdoes. I don't see any valid case where someone using--pullwould not want--allow-missing(we are basically already implying this by treating missing data as needing to be pulled).