[opam-devel] opam pinning to local repo

Ashish Agarwal agarwal1975 at gmail.com
Sun Aug 17 18:01:08 BST 2014


Yes, that's it. It works fine if I do -k local (which seems the same as -k
path, why multiple names for the same option?).

I guess this gives a +1 to the view in 1582 that the default should be
path-pin. I do often do `opam install` in order to test that my change is
correct, so in other words I'm not ready to git commit just yet. That is
necessarily the case when the change I'm making is to the opam file itself.
Also if I specify a folder path as the pin's target, to me the intuitive
result of that is to use the contents of that folder, committed or not. If
I specified a folder path appended with ".git#master" (or something like
that), then I'd be happy with that resulting in a git-pin.





On Sun, Aug 17, 2014 at 12:24 PM, Anil Madhavapeddy <anil at recoil.org> wrote:

> I wonder if you've been bitten by the git/local autodetection.  OPAM 1.2b4
> spots that the local directory that you're pinning to is a git repository,
> and turns it into a git remote instead.  if you haven't committed the
> `opam` file to the local git, then it won't be seen by opam.
>
> Can you try
>
> opam pin -k local add foo ~/code/foo
>
> and see if you get the expected behaviour of using the existing opam file?
>
> This is the OPAM issue for the autodetection:
> https://github.com/ocaml/opam/issues/1582
>
> If this is indeed your bug, I'm of the firmer notion that this smart
> probing should be deactivated before the final release.
>
> -a
>
> On 17 Aug 2014, at 11:16, Ashish Agarwal <agarwal1975 at gmail.com> wrote:
>
> I'm trying out 1.2.0-beta4 and wondering what is the correct workflow for
> local development packages.
>
> Say I have a local package `foo` that is not defined in any repository. I
> put an opam file in the root of the package's source directory, then did
> `opam pin add foo ~/code/foo`. However, opam doesn't detect the opam file,
> and instead says "package not defined, would I like to define a new
> package". At this point you have to answer yes, and opam creates a new opam
> file, which is not what I want.
>
> Even if the package is defined in a repository, I want opam to detect the
> opam file in the source directory, not that defined in the repo.
>
> The recent platform blog post says opam pin "will generate a new package
> on the fly by detecting the presence of an opam file within the source
> repository itself". Where should this opam file be?
>
> Note I'm trying to simplify my previous workflow, where I would put the
> opam file in the source directory at the path
> "opam/packages/foo/foo.master/opam". Then I would first add this as a repo
> and also pin to this directory. I'm trying to avoid the first part; I
> shouldn't have to add a repo per package.
>
> _______________________________________________
> opam-devel mailing list
> opam-devel at lists.ocaml.org
> http://lists.ocaml.org/listinfo/opam-devel
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ocaml.org/pipermail/opam-devel/attachments/20140817/64819970/attachment.html>


More information about the opam-devel mailing list