-
Notifications
You must be signed in to change notification settings - Fork 409
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
[pkg] fetch dependencies without building the project #10949
Comments
What about just introducing an alias |
Yes, definitely! It makes more sense. Another proposition was The original question was if there was a way to mimic the behaviour of |
Thanks for opening the issue @maiste 🙏🏼 To clarify, we have 2 use-cases here.
FROM ubuntu
RUN curl https://get.ocaml.org | bash
# Adds project + deps
ADD dune-project .
RUN dune pkg lock
# Fetch and build dependencies only if the above changes
RUN dune build @deps
# Adds rest of the sources
ADD . .
RUN dune build
$ git clone github.com/my/project project
$ cd project
$ dune fetch
$ # now i can go offline
$ dune build |
We already build the test deps. So |
I have work on part of this in #11046 where it introduces an alias to install and build packages. However, as stated here, we would like to have another alias to just fetch the dependencies but without building them. It is currently unclear to me what would be the proper way to address this second part. Indeed, the call to Fetch.fetch in source.ml seems to also build the dependency. @rgrinberg would you have a suggestion on where I could introduce the alias? Does it mean that I have to split the function in two parts so we prevent the building? |
Context
In the current behaviour, unless you have the exact target, it is impossible to download the dependencies without building the project. A nice feature would be a command that fetch the project dependencies in the same way you would with
dune build
. This is important in the context of Dockerfile, where you can save some computation time by caching this stage.Solution
We can implement a
dune pkg fetch
command that triggers the fetch rule for the entire project.The text was updated successfully, but these errors were encountered: