Skip to content

2.4.0~beta1

Pre-release
Pre-release
Compare
Choose a tag to compare
@kit-ty-kate kit-ty-kate released this 19 Jun 16:15
· 39 commits to master since this release
3916518

This is the first beta release of opam 2.4.0.

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

Please see our blog post for a highlight on the major changes and upgrade instructions.

Changelog:

New option/command/subcommand are prefixed with ◈.

Changes

Install of dependencies --deps-only

Behaviour

  • ◈ Change the behaviour of --deps-only, where it no longer requires unicity of package version between the request and the installed packages. In other words, if you have pkg.1 installed, installing dependencies of pkg.2 no longer removes pkg.1. This also allows to install dependencies of conflicting packages when their dependencies are compliant. [#6520 @rjbou]

Fixes

Fixed some bugs in opam install --deps-only (and other commands simulating package pins, such as --depext-only) more visible in 2.4:

  • When a package pkg is already installed and opam install ./pkg --deps is called, if there is a conflict between the installed pkg dependencies and the definition of the local pkg, the conflict was not seen and the already installed pkg was kept [#6530 @rjbou - fix #6529]
  • No longer fetch and write the sources when simulating packages that were already pinned [#6533 @rjbou - fix #6532]
  • opam was triggering the reinstall of the package based on the already pinned packages instead of the expected newly simulated pinned packages [#6522 @rjbou - partial fix #6501]
  • opam was using the opam description of the wrong package in some cases [#6544 @kit-ty-kate - fix #6535]

Reinstall

  • Fix a regression where the internal sources directory was removed unexpectedly on reinstall actions, making opam re-fetch the package [#6550 @rjbou - fix #6551]

Update

Fixed a couple of regressions in opam update:

  • An unexpected stack overflow exception was raised when updating repositories with large files when opam is compiled with OCaml < 5.1 [#6527 @kit-ty-kate - fix #6513]
  • Updating a repository where a line was added at the end of a file without final newline character was making the update fail [#6527 @kit-ty-kate - fix hannesm/patch#28]

Windows

  • Improve the prebuilt Windows binaries by including Cygwin's setup-x86_64.exe in the binary itself as fallback, in case cygwin.com is inaccessible [#6538 @kit-ty-kate]

Build changes

  • Bump the downloaded-if-missing dune to 3.19.0, cppo to 1.8.0, ocamlgraph to 2.2.0, uutf to 1.0.4 and patch to 3.0.0~beta1 [#6527 @kit-ty-kate]
  • Allows ./configure --without-dune to build with OCaml 5.4 [#6527 @kit-ty-kate]
  • Add a --with-cygwin-setup option to the configure script, only available on Windows and disabled by default, which includes the optionally given setup-x86_64.exe binary inside the opam binary. If the option is given without a filename, the file with be fetched from cygwin.com [#6526 @kit-ty-kate @dra27 @rjbou - fix #6498]

Testing and documentation

API updates

opam-client

  • OpamAction.cleanup_artefacts: no longer removes the internal sources directory if the package is installed but not pinned [#6550 @rjbou]