OPAM 1.1.0 beta released
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
http://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:
https://github.com/ocaml/opam/blob/master/shell/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 :
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.
Changes
- 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
About OCamlPro:
OCamlPro is a R&D lab founded in 2011, with the mission to help industrial users benefit from state-of-the art programming languages like OCaml and Rust.
We design, create and implement custom ad-hoc software for our clients. We also have a long experience in developing and maintaining open-source tooling for OCaml, such as Opam, TryOCaml, ocp-indent, ocp-index and ocp-browser, and we contribute to the core-development of OCaml, notably with our work on the Flambda optimizer branch.
Another area of expertise is that of Formal Methods, with tools such as our SMT Solver Alt-Ergo (check our Alt-Ergo Users'). We also provide vocational trainings in OCaml and Rust, and we can build courses on formal methods on-demand. Please reach out, we'll be delighted to discuss your challenges: contact@ocamlpro.com or book a quick discussion.
Most Recent Articles
2023
2022
2021
- Verification for Dummies: SMT and Induction
- Generating static and portable executables with OCaml
- opam 2.1.0 is released!
- opam 2.0.9 release
- Detecting identity functions in Flambda
- Détection de fonctions d’identité dans Flambda
- opam 2.1.0~rc2 released
- Tutorial: Format Module of OCaml
- Réunion annuelle du Club des utilisateurs d’Alt-Ergo 2021
- New Try-Alt-Ergo