-
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
exp init experience #7130
Comments
@dmpetrov I broke this up into 3 related issues mentioned above to make it more manageable to take action on these. Please add anything missed from those, and we can continue discussion there. 🙏 |
After speaking with @dmpetrov, one of the high-level issues is that the defaults for
@skshetry Let me know if you have thoughts. In the interactive mode, this might also relate to earlier discussions about whether a blank entry should be skipped or use the default path. |
Other options:
IMO making |
Agree. There are some good options but this one seems like the best one. |
@dmpetrov We might be saying slightly different things 😄. However, if you want to start from this simple default, I think the best way to achieve this is option 4 above. We can have 3 template types: Why add another template type? One goal of |
@dberenbaum oh, right 🙂 There are couple more questions:
My opinion (similar to the Conclusion in the initial issue description) - |
@dmpetrov It seems there are multiple use cases:
Another possible use case: One possible way to do this is to allow
Note that this isn't possible in |
I was expecting to have a cookie-cutter based on a user's script. We need to generate a template with a predefined structure that users can use to adopt the project step by step. The predefined structure also serves an education goal - user knows possibilities and how to adopt these. I think we have to have a proper cookie-cutter as one of the options of
Adding dependencies and outputs gradually is a good idea but looks like overkill 🙂 As we discussed before, we should promote the idea of modifying dvc.yaml manually, not by commands. In any of these scenarios, I don't think we should keep a user with not working |
Right, I think everyone can agree with this. We can prioritize that for now while we continue to think through other ways to improve the experience. |
We should still try to guide users on Another problem that I see these days is that |
If we make |
@skshetry good point about |
@dberenbaum and I discussed creating workspace structure on defaults, and showing workspace tree on non-interactive mode as we do for interactive modes. We also need to work on #4112 to support tracking everything inside of params file. |
@dmpetrov mentioned in our discussion that |
Should we convert this to a discussion after #7331 rather than close it completely? The immediate action points have been addressed, but I don't think everything has been resolved. Looking at #7331, It might be helpful to separate inputs and outputs in the UI to clarify which will be created. No action needed now, but to me it seems confusing why some paths are created and others aren't. @tapadipti shared her experience with |
Sure, let's turn it into discussion after #7331, I'll remove the closing marker.
Since we create |
I just remembered that I have an open PR for tracking dependencies in #6914, but haven't moved forward with it because it requires us to basically re-implement simpler We cannot reuse |
Sorry, can you explain? I didn't get your point. |
@dberenbaum, we need to check if the data output is in conflict with other existing .dvc files or stages and with the pipeline stage that we are going to generate. The checks that we do are:
This is a bit complicated and involves collecting all We could however simplify the implementation by choosing not to verify, as it is also done later on every operation. |
Let's leave it for now since I believe some of the planned data management changes could impact this, and it might make more sense to revisit later. |
unexpected
error? It should be like “ERROR: hyperparameters file ‘params.yaml’ is missing”. 🤔 Whydvc exp init
does not create it if it is required?full path. It is supposed to be relative. Why: 1) to make it short - the full path provides zero value in most of use cases; 2) it makes it hard to submit reports (some users are not comfortable to share their directories struture - See
'/Users/dmitry/src/test/
- bc it might contain confidential info like user and project names.why
dvc exp init
checkedparams.yaml
but didn’t check (or create)data/
&src/
?the same questions - [Errno 2], Full path.
why it was not checked in
dvc init
? Or was not created?“exited with 2” Is it useful information? Where the exit code 2 belongs to? It might confuse users. Error code can be in debug errors not here.
Another issue - ideally, we should have a reference to stage (a user might have multiple stages with the same or similar commands). The message might look like: ERROR: failed to execute stage ‘train’ from ‘dvc.yaml’
From a clean git repo:
If I do not have
params.yaml
I stuck here. Why don’t we offer to create an empty params file?A kind of conclusion:
dvc exp init
is not fully supported without interactive mode.It looks like today the only supported flow is — interactive. The default
dvc init
has multiple assumptions about the project structure and it is not clear how a user should know about the assumptions. Whydvc init
won’t create all the directories & files? This was a part of the initial idea - to run a single cmd for a given train.py in a live coding section whiledvc init
wraps it to an experiment.This is how it can look like:
The text was updated successfully, but these errors were encountered: