-
Notifications
You must be signed in to change notification settings - Fork 365
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
pinning/installing issues #4485
Comments
First of all, opam always retrieve source code in its internal, depending on pin kind and
So here, for the in-dev project, you can use a For your last question, the solver is always invoked, but you can use the On dune issue, I'll need more information, I don't see from where this dune invocation comes from. |
#3948 mentions a dirty sync which to my mind doesn't square with the documentation so to see git fetching or rsyncing seems completely contrary to that. thanks. |
perhaps my use case is not catered for.
I imagined this to be the common way. If it is not, where am I varying from that common way? |
If you want to test that your package is installable in opam, then you also need to build it in opam. There are many things which your proposed workflow is not testing:
On the other hand, if you combine a caching build system with opam, then you can test all this normally without recompiling - the Dune cache, for example, would allow you to develop locally and then install a real clone of the sources and Dune will automatically use the cached release artefacts. |
. |
I think that the conclusion of this was that nothing would be changed in opam - please feel free to re-open if not! |
I am trying to do a simple thing - tell opam to take a local directory
as the home of a package. I don't want it looking at the version control
or caching any files - when I make a change I want to be able to
just tell opam to replace the current installation with a new one.
this looks like a two step process, first pinniing then installing, thereafter updating.
so pinning has this option --kind that looks like it allows to avoid looking at versioning
systems.
<path>
looks like the best bet, but the man page only says that's what is defaulted to when the vcs cannot be determined - it says nothing about what it actually does do in its own right. If I understand correctly this man page is the documentationso I tried it and the result is an rsync of the directory which is undesirable because in the install step I'm going to use --inplace-build which obviates the need for any copying IIUC.
perhaps
<none>
was the right choice? In trying this the package is listed as having a version.but didn't I say don't look at the vcs?! I'd rather explicitly give it a dummy version if it's really necessary.
I try anyway and the build fails citing dune not knowning what to do with the unrecognised package name. dune?! I had changed my opam file to use make! where is it getting dune from?
about the install step: if it is not actually possible to tell pin to ignore the vcs how about
--working-dir on the install step? I still see "synchronised from git+file: ....#master" !
additionally , depsite using --inplace-build I also see rsync being invoked again.
lastly, each of the pin and install steps I assume are running the solver and so taking an
inordinate amount of time of my system. Is there any way to short-circuit this for the sake
of development purposes?
I'm using opam 2.0.1
The text was updated successfully, but these errors were encountered: