-
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
External dependencies are shared/global state #2448
Comments
@zo7 Correct, in those cases where dependencies might change, we recommend users having external workspaces defined. For example, you could do something like
this way your workspace is dynamic and depends on the user, so there are no race conditions between different users(unless they are using more than 1 repo instance at the same time, of course).
We would really appreciate that :) The docs repo is https://github.com/iterative/dvc.org, let us know if you need any help. |
Just to clarify, it would be the same |
Oh cool! I didn't realize you could set a local workspace like that. Would that make sense to suggest setting up local workspaces in the docs? Would this have to be a step that users have to do manually when setting up the repo before they can
How do you think this should work for a server or CI system that calls |
Yes, it would make total sense. I guess it would be suitable to add somewhere around https://dvc.org/doc/user-guide/external-outputs . It seems like it would suit as a part of iterative/dvc.org#108 Maybe you would even consider contributing a doc based on your experience? 😉
Yes, that would totally work 🙂 |
Closing. Docs ticket is iterative/dvc.org#108 |
Another conversation from Discord: This page describes how to set up external dependencies, where stages can write to and read from remote objects.
Could this cause problems for projects with multiple users in the same repo? For example, say two teammates have different versions of the codebase checked out, and both run the same
dvc repro
command at the same time that produces and reads from an external dependency -- wouldn't this cause a race condition where one user might end up accessing the other's object? (or worse, the wrong object gets cached?) AFAIK there's not locking mechanism for external objects.If so, this should probably be noted on the docs (happy to volunteer!) But this also poses a hairy problem for projects with external dependencies since these objects are always volatile. How should this sort of thing be handled?
The text was updated successfully, but these errors were encountered: