-
-
Notifications
You must be signed in to change notification settings - Fork 228
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
Fetch with dependencies #1898
Fetch with dependencies #1898
Conversation
Thanks for your pull request and interest in making D better, @Panke! We are looking forward to reviewing it, and you should be hearing from a maintainer soon.
Please see CONTRIBUTING.md for more information. If you have addressed all reviews or aren't sure how to proceed, don't hesitate to ping us with a simple comment. |
I am needing this or something similar for bazel support (#1889) |
Needs a rebase. And for the name, |
--recursive was my first thought, but we got some use of recursive that is quite dissimilar to this one, like #1873 which means sub packages and not dependencies. I couldn't care less for the name though. If no one else chimes in, it will be recursive. |
I think for |
Also need a release notes entry, this is a change that might be interesting to a few people (e.g. in build scripts). |
should we make this a switch? imo this should be the default workflow for someone without internet: go to internet cafe, connect to internet |
We can't have self-reference / circular reference, can we ? That would be one argument against it. |
definitely needs a test for recursive dependencies here then |
I don't think --cache=local should be a default. When --recursive becomes the default, what do we call the switch? --shallow? --not-recursive --single --no-dependencies |
Oh I phrased my message very poorly. I meant "IDK if having it the default for cache local makes as much sense". But after reviewing again, I think it does too.
I'd say, in doubt, do what |
What we could do is: download everything that is not in the --cache=here. So that afterwards everything is available 'here' |
Building a package that was locally cached failed, because the dependencies whould be fetched at the wrong destination. For example if one tries to build the package 'optional': $ dub --cache=local fetch optional -> optional is now at ./.dub/package/optional $ dub --cache=local build optional -> fails because the dependency bolts was fetched to ./.dub/package/optional/.dub/package/bolts. This is fixed by not overwriting the root path if dub builds a package from the cache.
6fb6440
to
7da1eaa
Compare
Dependency resolution and retrieval is copied from the dub build command.
7da1eaa
to
55ab80a
Compare
This turns out to be more annoying than I thought. This works only for dependencies that are dependencies of the default configuration, but won't fetch anything for e.g. vibe-d. I could use some pointers on how to get a list of transitive dependencies. |
try checking the selections and/or generating them for the fetched package, they are recursive |
When I execute following commands:
vibe-d and all dependencies are downloaded. Therefore |
Related #1930 |
As far as I can tell this was done by #2786 |
No description provided.