We are very happy to announce the beta release of OPAM version 1.1.0!
OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow which. OPAM is edited and maintained by OCamlPro, with continuous support from OCamlLabs and the community at large (including its main industrial users such as Jane-Street and Citrix).
Since its first official release last March, we have fixed many bugs and added lots of new features and stability improvements. New features go from more metadata to the package and compiler descriptions, to improved package pin workflow, through a much faster update algorithm. The full changeset is included below.
We are also delighted to see the growing number of contributions from
the community to both OPAM itself (35 contributors) and to its
metadata repository (100+ contributors, 500+ unique packages, 1500+
packages). It is really great to also see alternative metadata
repositories appearing in the wild (see for instance the repositories
for Android, Windows and so on). To be sure that the
community efforts will continue to benefit to everyone and to
underline our committment to OPAM, we are rehousing it at
https://opam.ocaml.org
and switching the license to CC0 (see issue #955,
where 85 people are commenting on the thread).
The binary installer has been updated for OSX and x86_64:
- http://www.ocamlpro.com/pub/opam_installer.sh
You can also get the new version either from Anil's unstable PPA: add-apt-repository ppa:avsm/ppa-testing apt-get update sudo apt-get install opam
or build it from sources at :
- http://www.ocamlpro.com/pub/opam-full-1.1.0-beta.tar.gz
- https://github.com/OCamlPro/opam/releases/tag/1.1.0-beta
NOTE: If you upgrade from OPAM 1.0, the first time you will run the
new opam
binary it will upgrade its internal state in an incompatible
way: THIS PROCESS CANNOT BE REVERTED. We have tried hard to make this
process fault-resistant, but failures might happen. In case you have
precious data in your ~/.opam
folder, it is advised to backup that
folder before you upgrade to 1.1.
See full changelog
- Automatic backup before any operation which might alter the list of installed packages
- Support for arbitrary sub-directories for metadata repositories
- Lots of colors
- New option
opam update -u
equivalent toopam update && opam upgrade --yes
- New
opam-admin
tool, bundling the features ofopam-mk-repo
andopam-repo-check
+ new 'opam-admin stats' tool - New
available
: field in opam files, supersedingocaml-version
andos
fields - Package names specified on the command-line are now understood case-insensitively (#705)
- Fixed parsing of malformed opam files (#696)
- Fixed recompilation of a package when uninstalling its optional dependencies (#692)
- Added conditional post-messages support, to help users when a package fails to install for a known reason (#662)
- Rewrite the code which updates pin et dev packages to be quicker and more reliable
- Add {opam,url,desc,files/} overlay for all packages
opam config env
now detects the current shell and outputs a sensible default if no override is provided.- Improve
opam pin
stability and start display information about dev revisions - Add a new
man
field in.install
files - Support hierarchical installation in
.install
files - Add a new
stublibs
field in.install
files - OPAM works even when the current directory has been deleted
- speed-up invocation of
opam config var VARIABLE
when variable is simple (eg.prefix
,lib
, ...) opam list
now display only the installed packages. Useopam list -a
to get the previous behavior.- Inverse the depext tag selection (useful for
ocamlot
) - Add a
--sexp
option toopam config env
to load the configuration under emacs - Purge
~/.opam/log
on each invocation of OPAM - System compiler with versions such as
version+patches
are now handled as if this was simplyversion
- New
OpamVCS
functor to generate OPAM backends - More efficient
opam update
- Switch license to LGPL with linking exception
opam search
now also searches through the tags- minor API changes for
API.list
andAPI.SWITCH.list
- Improve the syntax of filters
- Add a
messages
field - Add a
--jobs
command line option and add%{jobs}%
to be used in OPAM files - Various improvements in the solver heuristics
- By default, turn-on checking of certificates for downloaded dependency archives
- Check the md5sum of downloaded archives when compiling OPAM
- Improved
opam info
command (more information, non-zero error code when no patterns match) - Display OS and OPAM version on internal errors to ease error reporting
- Fix
opam reinstall
when reinstalling a package wich is a dependency of installed packages - Export and read
OPAMSWITCH
to be able to call OPAM in different switches opam-client
can now be used in a toplevel-n
now means--no-setup
and not--no-checksums
anymore- Fix support of FreeBSD
- Fix installation of local compilers with local paths endings with
../ocaml/
- Fix the contents of
~/.opam/opam-init/variable.sh
after a switch