-
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
dep: repo: use dvcfs #9246
dep: repo: use dvcfs #9246
Conversation
a5838e1
to
053c0d6
Compare
395804c
to
8bb918a
Compare
4c79caf
to
4e94701
Compare
03e3e10
to
2d7f427
Compare
2d7f427
to
8cb5f82
Compare
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #9246 +/- ##
==========================================
+ Coverage 92.91% 92.93% +0.02%
==========================================
Files 459 459
Lines 37226 37104 -122
Branches 5371 5344 -27
==========================================
- Hits 34588 34484 -104
+ Misses 2100 2089 -11
+ Partials 538 531 -7
... and 2 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
@sjawhar Thank you for testing it! 🙏 |
b320bc5
to
adc194a
Compare
Makes dvc get/import/etc use dvcfs, which already supports cloud versioning, circular imports and other stuff. Also makes dvc import behave more like dvc import-url, so that we can use the same existing logic for fetching those using index instead of objects. Fixes iterative#8789 Related iterative/studio#4782
adc194a
to
67900a7
Compare
Continuing the discussion from the #9385 cc @efiop
|
I agree and already admitted that this is not my proudest work in terms of PR comments/descriptions. Not sure if there is anything else I could do to mitigate that right now. Will be sure not to skip out on that next time.
Yes, the dependency resolution is lazy and will stop at the first place where it finds the data contents so that test no longer applies as is. Still there are lots of edge cases that might be there beyond this that we never researched deeper.
Not sure implementation of specifically what you are asking, could you elaborate? |
@efiop, maybe I am not following the discussion here, but |
Maybe I misunderstand something, but ‘dvcfs’ is based on a regular ‘AbstractFileSystem’ and so ‘get’ is just a loop, unlike in ‘async’ one. We don’t currently override ‘get’ there to do anything extra. We do parallelise object transfers, but that uses ‘get_file’ directly. |
I still don't get it. I'll try it I guess to better understand the current behavior.
I very well understand the goal. I don't think in this specific case this simplification justifies slowing things down for users (if that happens). To be precise - I mean: |
I think you are confusing between "DvcFileSystem" and dvcfs. dvcfs does download concurrently in a threadloop (which is based on our FileSystem implementation). |
@skshetry thanks! a few things to check then:
|
@shcheklein, yes, we do pass the Lines 52 to 53 in 967dd5e
Line 391 in 967dd5e
Here's how it looks like: Note: I cancelled it because it was taking too long. :) The callbacks are lazy, so you won't see them unless they are really being downloaded. Or, may be the files are small, that the progress bar cleared before it rendered or immediately after being rendered. |
Yep, perfect. Thanks @skshetry ! |
@skshetry Yep, you are right! Thank you! I thought we had that in |
Makes
dvc get/import/etc
usedvcfs
, which already supports cloud versioning, circular imports and other stuff.Also makes
dvc import
behave more likedvc import-url
, so that we can use the same existing logic for fetching those using index instead of objects.Fixes #8789
Related https://github.com/iterative/studio/issues/4782