Hi everyone,
We are extremely happy to announce the release of opam 2.4.0 and encourage all users to upgrade.
What’s new? Some highlights:
-
On
opam init
the compiler chosen for the default switch will no longer beocaml-system
(#3509)
This was done because the system compiler (as-is your ocaml installed system wide, e.g. /usr/bin/ocaml) is known to be under-tested and prone to a variety of bugs and configuration issues.
Removing it from the default compiler allows new-comers a more smooth experience.
Note: if you wish to use it anyway, you are always able to do it explicitly usingopam init --compiler=ocaml-system
-
In the same vein,
opam switch create [name] <version>
will not include compiler packages flagged withavoid-version
/deprecated
in the generated invariant anymore, unless compiler flaggedavoid-version
/deprecated
are the only ones available (#6494)
Note: if you wish to useocaml-system
, you can simply say it explicitly usingopam switch create [name] ocaml-system
-
opam install --deps-only
no longer requires unicity of package version between the request and the installed packages. In other words, if you havepkg.1
installed, installing the dependencies ofpkg.2
no longer removespkg.1
if the installed packages are compatible. This also allows to install dependencies of conflicting packages when their dependencies are compliant. (#6520) -
GNU
patch
and thediff
command are no longer runtime dependencies. Instead the OCamlpatch
library is used (#6019, #6052, #3782, ocaml/setup-ocaml#933)
Doing this we’ve removed some rarely used features of GNU Patch such as the support of Context diffs.
The new implementation only supports Unified diffs including the git extended headers, however file permission changes via said extended headers have no effect. -
Add Nix support for external dependencies (depexts) by adding support for stateless package managers (#5982). Thanks to @RyanGibb for this contribution
-
Fix
opam install <local_dir>
with and without options like--deps-only
or--show-action
having unexpected behaviours (#6248, #5567) such as:- reporting
Nothing to do
despite dependencies or package not being up-to-date - asking to install the wrong dependencies
- reporting
-
The prebuilt Windows binary now includes Cygwin’s
setup-x86_64.exe
in the binary itself as fallback in casecygwin.com
is inaccessible (#6538). Opam will also no longer fail ifcygwin.com
is inaccessible when checking for upgrades ofsetup-x86_64.exe
(#6495, #6474) -
Many more UI additions and improvements, bug fixes, …
You can read our blog post for the full list of important changes, and for even more details you can take a look at the release note or the changelog.
Try it!
The upgrade instructions are unchanged:
For Unix systems
bash -c "sh <(curl -fsSL https://opam.ocaml.org/install.sh) --version 2.4.0"
or from PowerShell for Windows systems
Invoke-Expression "& { $(Invoke-RestMethod https://opam.ocaml.org/install.ps1) } -Version 2.4.0"
Please report any issues to the bug-tracker.
Happy hacking,
<> <> The opam team <> <>
I’d also like to personally give a special thanks to the whole haematology department of the NHS Greater Glasgow for making my continued existence and this release – in the state that it is – possible. Fighting cancer is not easy but it is much more bearable with great people <3