Skip to content

1.2.1 Final release

Compare
Choose a tag to compare
@AltGr AltGr released this 18 Mar 01:58
· 137 commits to 1.2 since this release

This patch-version over 1.2.0 brings lots of fixes and a rewritten action and parallel processing engine. Although visible mostly in the messages displayed, this will bring a big improvement on reliability and predictability. It should also be faster.

Note that older versions disabled parallelism at init by default. If you want to benefit from it, you may want to change the jobs field in ~/.opam/config.

NOTE: there is no change between 1.2.1~rc2 and this final relase.

Summary of the changes

Fixes and new features

  • Non-system compiler definitions without source are now allowed
  • Stronger handling of compiler "base" packages, they can't be removed anymore
  • Rewritten action resolution mechanism to be based on atomic actions.
    Actions are not aborted anymore on first failure when there is no
    dependency.
  • Rewritten parallel command execution engine
  • Better display of actions, lots of improved messages
  • opam upgrade pkg now fails if no new version of pkg can be installed
  • fixed shell configuration for various shells
  • Updated Dose dependency to 3.3
  • Fixed behaviour of opam switch and related commands when a switch
    is locally set in a shell (through OPAMSWITCH)
  • Better behaviour on failed opam switch
  • New pinning mode: when pinning using version-control on a local path and
    without a branch specified, use current file tree, but limited to
    version-tracked files
  • Faster and cleaner handling of downloads
  • Now compiles with --safe-string on OCaml 4.02, better compatibility handling
  • opam unpin now accepts multiple arguments
  • opam pin add <pkg>.<version> <target> is now allowed to specify
    the advertised version
  • Fixed bug leading to a bad CAML_LD_LIBRARY_PATH when switching from system
  • Better opam lint, reporting warnings and errors, including format errors
  • opam config setup now takes --shell= instead of --sh, --csh, --fish, --zsh
  • Better definition of the filter language within opam files, it now propagates undefined values
  • OPAM git-like plugins (commands of the form opam-xxx) are now searched in the
    correct OPAM path
  • ~/.opam/config doesn't refer to OPAM's patch-version anymore, to allow
    downgrading
  • Recognise <name>.opam files and directories when pinning a package to source
  • Pinning URL can now be explicit in the form VC+URL, e.g. git+ssh://,
    hg+https://...
  • Cleaned up debug and verbose messages, allow more control (-v can now be
    repeated)
  • New flexible way to specify download and solver commands in ~/.opam/config
    or in variables OPAMFETCH and OPAMEXTERNALSOLVER
  • Lots of bug-fixes

Experimental features

Those are not intended to be used on the official opam-repository yet.

  • Dependency flag dev is accepted (but does nothing)
  • New field features: in opam files (see features proposal and the section in the new manual)
  • bool-to-string converter syntax in filters ("%{bool-var?str-if-true:str-if-false-or-undefined}%"), generalises variables like pkg:enable
  • New package flag verbose allowed in opam files
  • New field libexec: in .install files

Closed issues

https://github.com/ocaml/opam/issues?q=closed%3A%3E2014-10-16+closed%3A%3C2015-03-05