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 experts with a state-of-the-art knowledge of programming languages theory and practice.
- We provide audit, support, custom developer tools and training for both the most modern languages, such as Rust, Wasm and OCaml, and for legacy languages, such as COBOL or even home-made domain-specific languages;
- We design, create and implement software with great added-value for our clients. High complexity is not a problem for our PhD-level experts. For example, we helped the French Income Tax Administration re-adapt and improve their internally kept M language, we designed a DSL to model and express revenue streams in the Cinema Industry, codename Niagara, and we also developed the prototype of the Tezos proof-of-stake blockchain from 2014 to 2018.
- We have a long history of creating open-source projects, such as the Opam package manager, the LearnOCaml web platform, and contributing to other ones, such as the Flambda optimizing compiler, or the GnuCOBOL compiler.
- We are also experts of Formal Methods, developing tools such as our SMT Solver Alt-Ergo (check our Alt-Ergo Users' Club) and using them to prove safety or security properties of programs.
Please reach out, we'll be delighted to discuss your challenges: contact@ocamlpro.com or book a quick discussion.
Most Recent Articles
2024
- opam 2.3.0 release!
- Optimisation de Geneweb, 1er logiciel français de Généalogie depuis près de 30 ans
- Alt-Ergo 2.6 is Out!
- Flambda2 Ep. 3: Speculative Inlining
- opam 2.2.0 release!
- Flambda2 Ep. 2: Loopifying Tail-Recursive Functions
- Fixing and Optimizing the GnuCOBOL Preprocessor
- OCaml Backtraces on Uncaught Exceptions
- Opam 102: Pinning Packages
- Flambda2 Ep. 1: Foundational Design Decisions
- Behind the Scenes of the OCaml Optimising Compiler Flambda2: Introduction and Roadmap
- Lean 4: When Sound Programs become a Choice
- Opam 101: The First Steps
2023
- Maturing Learn-OCaml to version 1.0: Gateway to the OCaml World
- The latest release of Alt-Ergo version 2.5.1 is out, with improved SMT-LIB and bitvector support!
- 2022 at OCamlPro
- Autofonce, GNU Autotests Revisited
- Sub-single-instruction Peano to machine integer conversion
- Statically guaranteeing security properties on Java bytecode: Paper presentation at VMCAI 23
- Release of ocplib-simplex, version 0.5