Skip to content

2.1.0~beta4

Pre-release
Pre-release
Compare
Choose a tag to compare
@AltGr AltGr released this 14 Jan 17:06
· 2724 commits to master since this release
7ded8b8

This is a third beta release of opam 2.1.0 (there was a glitch with the number).

This beta release contains quite a few improvements and fixes upon beta3.

Binaries and full archive are signed by opam dev team (fingerprint 92C5 26AE 50DF 3947 0EB2 911B ED4C F1CA 67CB AA92 ).

Overview

A more complete overview of opam 2.1.0~beta4 is on the platform blog.

CLI Versioning

--cli was added in the first beta, but is now used throughout the CLI (see #4385). When invoking opam from a script or program, we recommend using --cli=2.1. If you need to be compatible with 2.0, you can set the environment variable OPAMCLI to 2.0 (this is done automatically by opam when building packages).

As with changes in the Dune language, changes to opam's CLI are now immediate - for example, --unlock-base is now unavailable without selecting the opam 2.0 CLI (you must use --update-invariant). Like Dune, opam tries to be helpful and the errors include pointers to the new syntax.

Other new features

  • opam now exits with code 31 if all failures were during fetch operations (#4214)
  • opam install now has a --download-only flag (#4036), allowing opam's caches to be primed
  • opam init now advises the correct shell-specific command for eval $(opam env) (#4427)
  • post-install hooks are now allowed to modify or remove installed files (#4388)
  • New package variable opamfile-loc with the location of the installed package opam file (#4402)
  • opam update now has --depexts flag (#4355), allowing the system package manager to update too
  • depext support NetBSD and DragonFlyBSD added (#4396)
  • The format-preserving opam file printer has been overhauled (#3993, #4298 and #4302)
  • pins are now fetched in parallel (#4315)
  • os-family=ubuntu is now treated as os-family=debian (#4441)
  • opam lint now checks that strings in filtered package formulae are booleans or variables (#4439)

Bug fixes

  • Sandboxing and init script fixes (#4368 and #4482)
  • stdout of pre- and post-session hooks is now propagated to the user (#4359)
  • Switch-specific hooks now work (#4472)
  • Various fixes to architecture detection (#4462)
  • Don't advertise upgrades to hidden versions (#4432)
  • Don't recompile when modifying the package flags (#4477)
  • opam remove --autoremove <PKG> no longer removes unrelated packages or triggers conflicts with orphaned packages (#4250 and #4332)
  • opam switch --update-invariant not changing the invariant when removing or changing package name (#4353)
  • Fixed updates of the invariant with --update-invariant (#4431) ** NO DESCRIPTION **
  • Various pinning fixes (#4255, #4365, #4348 and #4399)
  • --working-dir now works with local switches (#4433)
  • Handling of filename-encoded pkgname in opam files now works (#4401)
  • Display of package variables when there's no config file now no longer loads switch state and works (#4428)
  • Allow short names and full name paths for ports-based systems for depext; affects OpenBSD, FreeBSD and Gentoo (#4396)
  • Fixed opam option depext-bypass-=["XXX"] (#4428) ** NO DESCRIPTION **
  • opam admin cache now uses the archives cache (#4352)
  • opam admin check --cycles no longer explodes on repositories with huge cliques (#4392)
  • Solver fixes (#4362, #4393 and #4357)
  • Fixed permission denied fallback calling openssl (#4449 - part of #4448)
  • --read-only now causes fewer cache updates (#4467 - part of #4354)

Many thanks to @AltGr and @rjbou (OCamlPRO), @emillon (Tarides), @kit-ky-kate (OCaml Labs), @alan-j-hu, @Armael, @Blaisorblade, @freevoid, @gahr and @lefessan and everyone who's helped with issue reports, comments and feedback.