[ANN] opam-bin.1.0.0: binary packages for opam

Hi,

I am happy to announce the first stable release of opam-bin,
version 1.0.0, a framework to CREATE, USE and SHARE binary relocatable
packages with opam, to speed-up installation of packages. It is easily
installable from opam-repository, and available on Github:

With opam-bin, you can :

  • build binary packages while installing their source counterpart with opam
  • automatically reuse previously created binary packages instead of
    compiling them again
  • export and share your binary packages as part of opam repositories
    for other users/computers to use

opam-bin is a framework in 3 parts :

  • a tool opam-bin to create binary packages:
    https://ocamlpro.github.io/opam-bin
  • a set of patches to make some packages relocatable (opam-bin will
    apply them automatically when building packages), including patches to
    make the OCaml distribution relocatable from version 4.02.0 to 4.11.1:
    https://github.com/ocamlpro/relocation-patches
  • a set of contributed repositories of binary packages. For now, there
    is only one contribution, during the summer, by Origin Labs :
    https://www.origin-labs.com/opam-bin/debian10.4-amd64/
    containing 5 repos, among which the “4.10.0” repo contains more than
    1800 packages. These repos can be used DIRECTLY WITH opam, WITHOUT
    USING opam-bin.

This is the first stable release:

  • Specific support has been added in the current master branch of
    opam to make working with this version more convenient, by printing
    pre- and post- installation messages. Yet, it will still work with
    previous version of opam, but with no output on the terminal when
    calling opam.
  • The sharing option can be enabled to share files with hard-links
    between switches, making the creation of new local switches almost
    costless in time and disk space.

opam-bin is a collaborative work between OCamlPro and Origin Labs.

opam-bin is particularly useful if you create many local switches,
as they become unexpensive. Tools like Drom (an OCaml project
scaffolder, https://ocamlpro.github.io/drom) can take advantage of
that to provide a cargo-like experience.

Enjoy !

Fabrice LE FESSANT

15 Likes