title=OPAM 1.1.0 beta released authors=Thomas Gazagnaire date=2013-09-20 category=Tooling tags=opam 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][1], we have fixed many bugs and added lots of [new features and stability improvements][2]. 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][3], [Windows][4] and [so on][5]). 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][6], 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**. [1]: /blog/2013_03_15_opam_1.0.0_released [2]: https://github.com/OCamlPro/opam/issues?milestone=17&page=1&state=closed [3]: https://github.com/vouillon/opam-android-repository [4]: https://github.com/vouillon/opam-windows-repository [5]: https://github.com/search?q=opam-repo&type=Repositories&ref=searchresults [6]: https://github.com/OCamlPro/opam-repository/issues/955 ## 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 to `opam update && opam upgrade --yes` * New `opam-admin` tool, bundling the features of `opam-mk-repo` and `opam-repo-check` + new 'opam-admin stats' tool * New `available`: field in opam files, superseding `ocaml-version` and `os` 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. Use `opam list -a` to get the previous behavior. * Inverse the depext tag selection (useful for `ocamlot`) * Add a `--sexp` option to `opam 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 simply `version` * 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` and `API.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