[opam-devel] opam pinning to local repo

Louis Gesbert louis.gesbert at ocamlpro.com
Mon Aug 18 08:50:29 BST 2014


Hi,

Le dimanche 17 août 2014, 13:01:08 Ashish Agarwal a écrit :
> 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?).

`local` is deprecated, `path` has been found more explicit. (Only "path" is still in the manpage)

> 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.

Yes indeed, this is reverted for the next beta in favor of a simple warning
when you path-pin a VCed directory, just so you know OPAM might pick up artefacts.
Using a directory ending in `.git` would switch to git-controlled without the need for `-k`, as would using a git url (git://).

Thanks for the feedback !

Louis Gesbert


> 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/20140818/7bb7c5c4/attachment-0001.html>


More information about the opam-devel mailing list