2.1.0~beta4
Pre-releaseThis 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 primedopam init
now advises the correct shell-specific command foreval $(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 asos-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-
andpost-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.