-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QA: params/vars and loops in dvc.yaml (2.0) round 3 #5180
Comments
@jorgeorpinel, Regarding the last error message, I have created #5182. Please post verbose logs when creating a bug report. Closing this issue, thanks. |
Looks like this is a draft for other QA-ing as well. Opening... |
Yup, that summarizes what I was trying to report 🙂. For example the following seems to me like a more convenient and scriptable option to editing a multi-line dvc.yaml file: $ echo "foo: bar" > params.yaml
$ dvc run -n echofoo "echo \${foo}" Please remember that during QA we are operating in the realm of the hypothetical. I'm trying to think of ways to use and abuse our features. Would anyone actually have this problem? Idk but let's try not to dismiss edge cases because they are unintended uses.
p.s. And yes this is a draft still. I added one a third thing so far but not quite done yet. Hopefully tomorrow |
OK I think I'm done here: this is ready for addressing, discussing, etc. Cc @shcheklein
|
The status of the above reports are:
|
OK thanks, I'll read the reply carefully ASAP. I quickly discussed this and related issues with Ivan and I'll be reprioritizing and consolidating some (if any) remaining concerns in a separate issue (also for Dave to get involved) but probably nothing is major or blocking. Will submit that issue and close these... ⌛ |
I'd flip the question. Why prevent that combination? We say that all the regular stage fields are accepted under
Sure, this issue doesn't even suggest any kind of timeline, it's just a matter of keeping track of these things for when it's appropriate to do something about it (or decide not to).
I see. You'd have to first load local "write-in" |
|
Oh OK maybe I got that wring? I'll check too. Closing this in favor of #5312 (see you there). |
Bugs?
Defining a stage with
dvc repro
isn't fully compatible with using${}
substitutions in commands e.g.$ dvc run -n echovar "echo \${var}"
runs
echo ${var}
in which is interpreted by the terminal (and probablyvar
doesn't exist in the env, so an empty line is printed).Upon
dvc repro
, the command executed is different: readsvar
from params.yaml (assuming it exists, otherwise errors out) and substitutes it in thecmd
, for exampleecho foo
(the value of thevar
param is printed).(Fixed in run-cache: skip unhashable stages #5185) A strange edge error occurs when you try to overwrite a stage that has
params
and${}
substitution withdvc run --force
. E.g.:TBH I'm not sure under what conditions this happens or if it's definitely related to the 2.0 dvc.yaml changes. The verbose output seems to indicate it's also related to the run-cache (so feel free to extract this to its own issue).
Feature design
It's not possible to combine
foreach
andvars
in a multi-stage.dvc repro
gives the following error:ERROR: 'dvc.yaml' format error: extra keys not allowed @ data['stages']['mystage']['foreach']
Similarly, shouldn't
wdir
be able work with hardcoded localvars
? Not from params files listed in localvars
though, I get why that's not possible.Other
The text was updated successfully, but these errors were encountered: