|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Caml-list] [ANN] beta-release of OPAM
On 18 Jan 2013, at 10:31, Alain Frisch <alain@xxxxxxxxx> wrote:
> On 01/17/2013 06:22 PM, Anil Madhavapeddy wrote:
>> I added `opam switch 4.01.0dev+trunk` recently, which will grab the latest
>> trunk snapshot.
>> To reinstall it and refresh to a newer snapshot, just do `opam switch
>> reinstall 4.01.0dev+trunk`, which will also attempt to recompile any
>> packages you had in there before.
>
> Thanks, this is exactly what I wanted!
>
> Shouldn't the package be called simply "trunk", without a reference to a
> version number?
Yeah, but OPAM also has compiler version constraints, so that you can mark a
package as requiring {>=4.00} for example. If the package is just marked
trunk, then we need to manually record the version number somewhere.
One option is to have a very high version, so that any packages with a lower
bound will continue to work. The other option (which I chose) is to pick the
current working version, since compiler releases only happen a couple of times
a year. We can improve on this...
> I've started to play with opam a little bit, and it's a surprisingly pleasant
> experience. Thanks to everyone who contributed to this project!
>
> Now I want to create my first package. I've followed the instructions from
> http://opam.ocamlpro.com/doc/Packaging.html but I don't know where to find
> opam-mk-repo (I've installed opam from the amd64 linux binary).
(that binary is hopefully just a stopgap until the OPAM binary packages become
more widely available)
opam-mk-repo is installed as part of OPAM, so you'll need to install from
source. However, you don't actually need to create a repository unless you
want to host a mirror of the tarballs. Simply try this:
$ mkdir -p my-repo/packages
$ opam remote add localdev my-repo
<create your package inside my-repo/packages/>
$ opam update
<the new packages will be available>
$ opam install <new-package>
The same applies for compilers.
If you specify a git:// or darcs:// URL in the package `url` file, a subsequent
`opam update` will refresh the working copy from the remote source.
If you want to work with a local copy of that package, just do `opam pin
<package> <dir>`.
If you want the bleeding edge version of a stable package, you can even do
`opam pin <package> git://foo/bar`.
Quite the swiss-army knife, but each of those scenarios has come in useful at
one point or another, particularly when hacking on Mirage which requires
rebuilding lots of forward dependencies if (e.g.) a network driver library is
being modified.
-anil
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |