Opam Versions Save

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.

2.2.0-beta2

1 month ago

This is the second beta release of opam 2.2.0.

This beta release contains new features, enhancements, updates & fixes compared to the previous 2.2.0~beta1 release. Please see upcoming blog post for main new features highlights and upgrade instructions.

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

Changelog:

Major changes

Init

  • Recommend enabling Developer Mode on Windows [#5831 @dra27]
  • Disable ACL in Cygwin internal install to avoid permission mismatch errors [#5796 @kit-ty-kate - fix #5781]
  • Fix MSYS2 support [#5843 @rjbou - fix #5683]
  • Properly test if "we're in interactive mode" instead of "in a tty" in fish script [#5866 @ElectreAAS]
  • Make the computation of the init default sys-ocaml-* eval variables on Windows faster, no more depending on Cygwin [#5829 @dra27 @rjbou]
  • Simplify computation of OCaml init default sys-ocaml-* eval variables on Unix [#5829 @dra27]
  • Add a init OCaml sys-ocaml-system eval variable [#5829 @dra27]
  • Mark the internal cygwin installation as recommended [#5903 @kit-ty-kate]
  • Check for gpatch instead of patch on NetBSD and DragonFlyBSD [#5893 @kit-ty-kate]

Env

  • Internal Cygwin installation's bin directory is placed as far down PATH as is necessary not to shadow bash, tar, sort or git [#5832 @dra27]

Source

  • Using opam source --dev with git repositories doesn't fetch with --depth 1 [#5888 @moyodiallo - fix #5061]

Var/Option

  • Disable Software Heritage fallback by default [#5899 @kit-ty-kate]

Repository

  • Warn if GNU patch is not detected during a repository update [#5893 @kit-ty-kate]

Opamfile

  • Hijack the "%{var?string-if-true:string-if-false-or-undefined}%" syntax to support extending the variables of packages with + in their name (conf-c++ and conf-g++ already exist) using "%{?pgkname:var:}%" [#5840 @kit-ty-kate]

Lint

  • Add warning 69: Warn for new syntax when package name in variable in string interpolation contains several '+' [#5840 @rjbou]

Sandbox

  • Mark the user temporary directory (as returned by getconf DARWIN_USER_TEMP_DIR) as writable when TMPDIR is not defined on macOS [#5780 @ElectreAAS]

Build

  • Allow to compile opam when the environment contains unicode characters on Windows [#5880 @kit-ty-kate - fix #5861]
  • Add winsymlinks:native to the CYGWIN environment variable when installing a package on Windows [#5793 @kit-ty-kate - fix #5782]

Miscellaneous changes

Init

  • Add rsync system package to internal Cygwin packages list (enables local pinning and is used by the VCS backends [#5808 @dra27]
  • Add sys-pkg-manager-cmd as an accepted field in opamrc files [#5847 @rjbou - fix #5844]
  • Fix git-location handling in init config file [#5848 @rjbou - fix #5845]
  • Test if file exists before sourcing in fish + powershell [#5864 @ElectreAAS]

Env

  • Fix shell detection on Windows when opam is called via Cygwin's /usr/bin/env even though cmd/powershell is used [#5797 @kit-ty-kate]
  • Fix incorrect deduplication of environment variables on update. Effect was that FOO += "" would occlude the value of FOO in the environment [#5837 @dra27]
  • Fix regression from #5356 on the detection of out-of-date environment variables. As part of a refactoring, a filter predicate got inverted [#5837 @dra27]
  • Unixify Windows paths in init shells scripts (sh, bash, zsh, fish & tsh) [#5797 @rjbou]
  • OpamProcess.cygwin_create_process_env no longer adjusts PATH [#5832 @dra27]

External dependencies

  • Add support for Wolfi OS, treat it like Apline family as it uses apk too [#5878 @xnox]

Format upgrade

  • Handle init OCaml sys-ocaml-* eval variables during format upgrade from 2.0 -> 2.1 -> 2.2 [#5829 @dra27]

Build

  • Do not check for cppo in the configure script (not used directly anymore since #5498) [#5794 @kit-ty-kate]
  • Upgrade vendored cmdliner to 1.2.0 [#5797 @kit-ty-kate]
  • Upgrade the vendored dune to 3.14.0 [#5869 @kit-ty-kate]
  • Upgrade the vendored re to 1.11.0 [#5869 @dra27]
  • Upgrade the vendored ocamlgraph to 2.1.0 [#5869 @dra27]
  • Upgrade the vendored opam-file-format to 2.1.6 [#5869 @dra27]
  • Upgrade the vendored dune to 3.14.2 [#5880 @kit-ty-kate]

Install script

  • Add support for doas as an alternative to sudo [#5820 @kit-ty-kate - fix #5792]

Shell

  • Quote all the paths to OPAMROOT when creating the init scripts on Unix in case OPAMROOT contains spaces, backslashes or special characters [#5841 @kit-ty-kate - fix #5804]

Internal

  • Warn if GNU patch is not detected when a patch is applied [#5893 @kit-ty-kate]
  • Use gpatch by default instead of patch on NetBSD and DragonFlyBSD [#5893 @kit-ty-kate]
  • Use gpatch if it exists and is detected as GNU patch when patch is not GNU patch [#5893 @kit-ty-kate]

Internal: Windows

  • Ensure that the system critical error dialog is disabled when opam starts [#5828 @dra27]
  • Fix loading git location at init [#5843 @rjbou]
  • Remove use of deprecated function SHGetFolderPath and use SHGetKnownFolderPath instead [#5862 @kit-ty-kate]
  • Improve performance by only calling OpamStubs.getPathToSystem once [#5862 @dra27]

Documentation

  • [#5812 #5818 #5849 #5850 #5885 #5905 #5840 @Khady @sorawee @AldanTanneo @kit-ty-kate]

Testing

  • Improve and extend the tests [#5864 #5829 #5840 #5888 @moyodiallo @kit-ty-kate @rjbou]
  • Improve the benchmarks [#5900 @kit-ty-kate]
  • Improve the test infrastructure [#5851 #5869 #5788 @dra27 @rjbou]

API updates

opam-client

  • OpamClient.windows_checks: On existing Cygwin install, permit to detect msys2 and store os-distribution=msys2 in global-variables config file field [#5843 @rjbou]
  • OpamClient.windows_checks: When updating config file for msys2, resolve pacman path and store it in sys-pkg-manager-cmd for msys2 [#5843 @rjbou]
  • OpamArg.apply_global_options: load MSYS2 Cygwin binary path too [#5843 @rjbou]

opam-repository

  • OpamRepositoryBackend.S.pull_url, OpamVCS.fetch, OpamRepository.pull_tree: add full_fetch optional argument to pull full history if url is a VCS [#5888 @moyodiallo - fix #5061]

opam-state

  • OpamEnv.env_expansion: Fix detection of out-of-date environment variables, a filter predicate was inverted [#5837 @dra27]
  • OpamSysInteract.Cygwin.check_install: add variant argument to permit checking that it is an Cygwin-like install if it is set to true, keep checking that it is a strictly Cygwin install if false [#5843 @rjbou]
  • OpamSysInteract.Cygwin.check_install: look for cygcheck.exe in usr/bin also as MSYS2 doesn't have "bin" [#5843 @rjbou]
  • OpamGlobalState.load_config: load MSYS2 Cygwin binary path too at config file loading [#5843 @rjbou]
  • OpamEnv: add sys_ocaml_eval_variables value, moved OpamInitDefaults as it is also needed in OpamFormatUpgrade too [#5829 @rjbou @kit-ty-kate]
  • OpamEnv supports an internal Cygwin environment operation which pushes the given directory as far down the list as can be done without shadowing. This mechanism replaces the opposite which was done in OpamProcess [#5832 @dra27]

opam-format

  • OpamFile.InitConfig: add sys-pkg-manager-cmd field [#5847 @rjbou]
  • OpamTypesBase: add filter_ident_of_string_interp that is used for parsing variables in string interpolation like filter_ident_of_string but permits the parsing of '%{?pkg+:var:}%' syntax [#5840 @rjbou]
  • OpamTypesBase.filter_ident_of_string_interp: add accept optional argument to be able to raise an error when several pluses are in the package name without using the new syntax, like %{pkg+++:var}%
  • OpamFilter: add extract_variables_from_string to retrieve string of variables, and exposes it [#5840 @rjbou]
  • OpamTypes.env_update now has an additional type parameter indicating whether the update is internal or writeable [#5832 @dra27]

opam-core

  • OpamStd.Sys: add is_cygwin_variant_cygcheck that returns true if in path cygcheck is from a Cygwin or MSYS2 installation [#5843 @rjbou]
  • OpamStd.Env.cyg_env: takes the environment to cygify, usually OpamStd.Env.raw_env [#5829 @dra27]
  • OpamSystem.patch now displays a warning when GNU patch is not detected and looks for both patch and gpatch as a backup option depending on the OS [#5893 @kit-ty-kate]

2.2.0-beta1

3 months ago

This is the first beta release of opam 2.2.0.

This beta release contains new features, enhancements, updates & fixes compared to the previous 2.2.0~alpha3 release. Please see upcoming blog post for main new features highlights and upgrade instructions.

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

Changelog:

Major changes

Init

  • Check and advertise to use Git for Windows [#5718 @rjbou - fix #5617]
  • Add the --git-location and --no-git-location cli arguments for Windows [#5718 @rjbou - fix #5617]

Option

  • Add a new git-location modifiable opam option used only on Windows [#5718 @rjbou - fix #5617]

Build

  • When compiling opam on Windows with MinGW, the resulting opam binary now contains libstdc++ instead of requiring the DLL to be distributed alongside it or present in the environment [#5680 @kit-ty-kate - fix #5647]
  • Add ./configure --enable-static to compile the opam binary statically on Linux [#5680 @kit-ty-kate - fix #5647]

Env

  • Fix opam env containing carriage return on Cygwin [#5715 @dra27 @rjbou @kit-ty-kate - fix #5684]
  • Remove stray comments from pwsh and cmd env [#5715 @dra27]

Miscellaneous changes

Solver

  • Fix debug logs showing up regardless of verbosity on macOS 12.7.1 / 13.6.3 / 14.2 and FreeBSD [#5769 @kit-ty-kate]

Build

  • Upgrade to, and require mccs >= 1.1+17 [#5769 @kit-ty-kate]

Tree

  • Fix opam tree --dev [#5687 @rjbou - fix #5675]
  • Fix opam tree --no-switch: instead of emptying the current switch from its installed packages, it load a fresh virtual switch [#5687 @rjbou - fix #5675]

Switch

  • Display a more precise message when Ctrl-C'ing during an opam switch creation ("Switch left partially installed") [#5713 @rjbou - fix #5710]

Documentation

  • [#5775 @lukstafi]

Testing

  • Improve and extend tests [#5687 #5742 @rjbou]
  • Improve test engine [#5723 @dra27]

API updates

opam-client

  • OpamClient: on init and reinit add git lookup in windows checks [#5718 @rjbou]
  • OpamClient.init: add option git-location argument for git binary location configuration [#5718 @rjbou]
  • OpamTreeCommand.run: remove optional argument no_switch [@rjbou #5687]

opam-format

  • OpamFile.Config: add git-location field and its functions [#5718 @rjbou]

opam-core

  • OpamCoreConfig: add git_location field [#5718 @rjbou]
  • OpamStd.Env.cyg_env: add git location argument and labels cygbin and git_location [#5718 @rjbou]
  • OpamSystem.apply_cygpath: runs cygpath over the argument [#5723 @dra27 - function itself added in #3348]

2.2.0-alpha3

6 months ago

This is the third alpha release of opam 2.2.0.

This alpha release contains new features, enhancements, updates & fixes. Please see upcoming blog post for main new features highlights and upgrade instructions.

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

Changelog:

Major changes

Environment variables path rewriting

  • When computing environment variables updates, use rewriting rules (defined in opam file, or default per variable) to split, join, quote, etc. [#5636 @rjbou - fix #5602 #4690 #2927]
  • Add x-env-path-rewrite extensions field to permit specification of rewriting rules for variables defined in setenv and build-env: no rewrite; separator and path format formulae [#5636 @rjbou - fix #5602 #4690 #2927]
  • Reinstall if x-env-path-rewrite is updated [#5636 @rjbou]
  • environment file now stores environment variable rewriting rules [#5636 @rjbou]

Sandbox

  • Make /tmp writable again to restore POSIX compliancy [#5634 #5662 @kit-ty-kate - fixes #5462]

Tree

  • Allow packages with a specific version, directories or local opam files, as input [#5613 @kit-ty-kate]
  • Add handling of --recurse and --subpath for directory arguments [#5613 @kit-ty-kate]

Admin

  • Add add-extrafiles command to add, check, and update extra-files: field according files present in files/ directory [#5647 @rjbou]

Lint

  • Allow to mark a set of warnings as errors using a new syntax -W @1..9 [#5652 @kit-ty-kate @rjbou - fixes #5651]

Miscellaneous changes

Global CLI

  • [BUG] Fix the OPAMVERBOSE setting, levels 0 and 1 were inverted: "no" gave level 1, and "yes" gave level 0 [#5686 @smorimoto]

Install

  • [BUG] On install driven by .install file, track intermediate directories too, in order to have them suppressed at package removal [#5691 @rjbou - fix #5688]
  • [BUG] With --assume-built, resolve variables in depends filter according switch & global environment, not only depends predefined variables [#570 @rjbou - fix #5698]
  • [BUG] Handle undefined variables defaults to false in dependencies formula resolution for assume built [#5701 rjbou]

Lint

  • [BUG] Fix extra-files handling when linting packages from repositories, see #5068 [#5639 @rjbou]
  • Improve the debug log when checking extra-files [#5640 @rjbou]

Repository

  • [BUG] Fix OPAMCURL and OPAMFETCH handling [#5607 @rjbou - fix #5597]

Opamfile

  • Fix x-locked type error message [#5636 @rjbou]

Build

  • [BUG] Fix "make cold" on Windows when gcc is available [#5635 @kit-ty-kate - fixes #5600]
  • Fix incorrect error message when alternate C compiler is missing [#5667 @dra27 - partial fix #5661]

Internal: Windows

  • Fix sporadic crash and segfault in shell detection (seen in native containers) [#5714 @dra27]

Release

  • Create ppc64le and s390x binaries during releases [#5420 @kit-ty-kate]
  • Workaround incorrect <limits.h> in musl [#5383 @dra27]
  • Upgrade to FreeBSD 13.2 and OpenBSD 7.4 [#5727 @kit-ty-kate]
  • Fix check for adding -lsha_stubs only on master on OpenBSD [#5733 @punchagan]

Documentation

  • [#5636 #5706 #5708 @MisterDA @kit-ty-kate @rjbou]

Testing

  • Improve and extend tests [#5560 #5600 #5607 #5636 #5639 #5647 #5672 #5686 #5691 #5700 #5701 @kit-ty-kate @rjbou]
  • Improve test engine [#5560 #5606 #5607 #5654 #5657 @rjbou]

API updates

opam-client

  • OpamTreeCommand.run: now takes an atom instead of name [#5613 @kit-ty-kate]

opam-format

  • OpamFile.Environment: add parsing-printing of rewriting rules, keeping backward compatibility [#5636 @rjbou]
  • OpamFile.OPAM: effective_part keeps x-env-path-rewrite, affects also effectively_equal [#5636 @rjbou]
  • OpamFile.OPAM: add handling of x-env-path-rewrite extensions field, that specifies rewrite rules [#5636 @rjbou]
  • OpamFilter: add expand_interpolations_in_file_full which allows setting the output file along with the input file [#5629 @rgrinberg]
  • OpamFilter: expose string_interp_regex which allows clients to identify variable interpolations in strings [#5633 @gridbugs]
  • OpamFormat.V: add path_format & separator value parser printer [#5636 @rjbou]
  • OpamFormat: add formula_items to permit definition of formulae pp not only of the type package-formula [#5636 @rjbou]
  • OpamPp.fallback: add name concatenation and printing fallback too [#5636 @rjbou]
  • OpamTypes.env_update: add a rewrite field, that contains environment variable rewriting rules (formula to resolved, or already resolved, or no rewriting) [#5636 @rjbou]
  • OpamTypes.env_update: change from tuple to a record [#5636 @rjbou]
  • OpamTypesBase: add env_update_resolved and env_update_unresolved builders [#5636 @rjbou]
  • OpamTypesBase: add env_update, env_update_resolved, and env_update_unresolved builders [#5636 @rjbou]
  • OpamTypesBase: add to_string function for path_format & separator [#5636 @rjbou]

opam-core

  • OpamStd.Config.env_level: fix level parsing, it was inverted (eg, "no" gives level 1, and "yes" level 0) [#5686 @smorimoto]
  • OpamStd.Sys.chop_exe_suffix: removes .exe from the end of a path, if present [#5714 @dra27]
  • OpamSystem.apply_cygpath_path_transform: fix cygpath call, use resolved name [#5716 @rjbou]
  • OpamSystem.get_cygpath_path_transform: add labeled argument to specify if path is a pathlist [#5636 @rjbou]
  • OpamSystem.mk_temp_dir: resolve real path with OpamSystem.real_path before returning it [#5654 @rjbou]
  • OpamSystem.resolve_command: in command resolution path, check that the file is not a directory and that it is a regular file [#5606 @rjbou - fix #5585 #5597 #5650 #5626]

2.2.0-alpha2

9 months ago

This is the second alpha release of opam 2.2.0.

This alpha release contains new features, enhancements, updates & fixes. Please see upcoming blog post for main new features highlights and upgrade instructions.

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

Changelog:

New feature

Init

  • Make opam init install Cygwin internally automatically by default instead of asking the user to install it manually [#5545 @rjbou @dra27]
  • Add --no-cygwin-setup, --cygwin-internal-install, --cygwin-local-install and --cygwin-location <path> experimental flags available only on Windows to permit non-interactive Cygwin configuration [#5545 @rjbou]

Enhancements, updates, and fixes

Var/Option

  • Error with more accurate message in case of package/self variable wrongly given as argument [#4903 @rjbou - fix #4489]
  • Handle package variable syntax in parse update regexp [#4903 @rjbou - fix #4489]

Lint

  • E29: The conflicts field's filter does not support package variables [#5535 @kit-ty-kate]

Admin

  • On linting, clean output when stdout is not tty [#5594 @rjbou]

Build

  • Run autoupdate to silence autogen warnings [#5555 @MisterDA]
  • Update bootstrap to use FlexDLL 0.43 from ocaml/flexdll [#5579 @MisterDA]
  • configure: Ensure a complementary (32bit on 64bit platforms and 64bit on 32bit platforms) C compiler is installed on Windows [#5522 @kit-ty-kate]
  • Bump version, authors [#5603 #5609 #5611 @rjbou]

Testing

Improve and extend tests

  • [#5385 #5535 @rjbou]

Improve test engine

Cram tests

  • [#5481 @dra27]

Github Actions

  • [#5555 #5588 #5598 @rjbou]
Opam libraries API changes
opam-client
  • OpamInitDefault: add required_packages_for_cygwin packages tool list [#5545 @rjbou]
  • OpamClient.init: now propose to install internal Cygwin install [#5545 @rjbou]
  • OpamSolution.get_depext: do not confirm in case of internal Cygwin install [#5545 @rjbou]
  • OpamClient.init: add optional cygwin_setup argument to permit non interactive setup [#5545 @rjbou]
  • OpamCommands.init: add cygwin setup flags [#5545 @rjbou]
opam-state
  • OpamSysinteract.Cygwin: add install that performs a Cygwin install in opam internals [#5545 @rjbou @dra27]
  • OpamSysInteract.Cygwin: add is_internal [#5545 @rjbou]
  • OpamSysInteract.install: on Cygwin, upgrade automatically packages, and select local cache [#5545 @rjbou]
opam-core
  • OpamConsole.carriage_delete: no-op when not tty out [#5595 @rjbou]
  • OpamSystem.make_command: Remove the warning triggered when the command contained spaces [#5596 @rjbou - fix #5163]

2.2.0-alpha

10 months ago

2.1.5

11 months ago

This is the release of opam 2.1.5.

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

Changelog:

  • [BUG] Variables are now expanded in build-env (as for setenv) [#5352 @dra27]
  • Correctly handle empty environment variable additions [#5350 @dra27]
  • Skip empty environment variable additions [#5350 @dra27]
  • [BUG] Fix passing archive-mirrors field from init config file to config [#5315 @hannesm]
  • git, hg: Use the full SHA1 revision instead of just the 8 first characters [#5342 @reynir]
  • [BUG] Fix opam installing packages without checking their checksum when the local cache is corrupted in some case [#5538 @kit-ty-kate]

EDIT 31/05/2023: opam-full-2.1.5.tar.gz was rebuilt, removing the mistakenly included .gît directory, reducing archive size.

2.1.4

1 year ago

This is the release of opam 2.1.4.

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

Changelog:

  • Add support for OCaml 5.0. dose3 >= 6.1 and base64 >= 3.1.0 are now required [#5357 @kit-ty-kate @dra27 - fix #5354]
  • [BUG] Fix all empty conflict explanation messages [#5378 @kit-ty-kate - partial fix #4373]

2.1.3

1 year ago

This is the release of opam 2.1.3.

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

Changelog:

Fixes

Init

  • Fix opam init and opam init --reinit when the jobs variable has been set in the opamrc or the current config. [#5056 @rjbou]

Switch

  • When inferring a 2.1+ switch invariant from 2.0 base packages, don't filter out pinned packages as that causes very wide invariants for pinned compiler packages [#5176 @dra27 - fix #4501]

Pin

  • When reinstalling a package that has a dirty source, if uncommitted changes are the same than the ones stored in opam's cache , opam consider that it is up to date and nothing is updated [#4879 @rjbou]

List

  • Some optimisations to opam list --installable queries combined with other filters [#4882 @AltGr - fix #4311]
  • Improve performance of some opam list combinations (e.g. --available, --installable) [#4999 @kit-ty-kate]
  • Improve performance of opam list --conflicts-with when combined with other filters [#4999 @kit-ty-kate]

Show

  • Improve performance of opam show by as much as 300% when the package to show is given explicitly or is unique [#4998 @kit-ty-kate - fix #4997 and partially #4172]
  • Handle external dependencies when updating switch state pin status (all pins), instead as a post pin action (only when called with opam pin [#5047 @rjbou - fix #5046]

Var/Option

  • opam var no longer fails if no switch is set [#5027 @rjbou - fix #5025]
  • Setting a variable with option --switch <sw> fails instead of writing an invalid switch-config file [#5027 @rjbou]
  • When a field is defined in switch and global scope, try to determine the scope also by checking switch selection [#5027 @rjbou]

External dependencies

  • Stop Zypper from upgrading packages on updates on OpenSUSE [#4978 @kit-ty-kate]

Sandbox

  • Clearer error message if a command doesn't exist [#4971 @kit-ty-kat - fix #4112]

State

  • Actually allow multiple state caches to co-exist [#4934 @dra27 - actually fixes #4554]

Client

  • Fix some empty conflict explanations [#4982 @kit-ty-kate - partially fix #4373]

Internal

  • Remove windows double printing on commands and their output [#4940 @rjbou]

Admin

  • Fix an internal error on repository upgrade from OPAM 1.2 [#4965 @AltGr]

Misc

Build

  • Update cold compiler to 4.13 to avoid issues with glibc 2.34 on Unix [#5017 @dra27]
  • Bump opam-file-format to 2.1.4 [#5117 @kit-ty-kate - fix #5116]
  • When building opam, do not fail if curl/wget is missing [#5223 #5233 @kit-ty-kate]

Documentation

  • Fix make doc with Dune 2.7 (unblocks opam2web build) [#5030 @kit-ty-kate]
  • Update for git protocol deprecation on GitHub [#5097 @rjbou]

Tests

  • Port some tests from master [#4841 #4974 #4861 #4915 #4979 #5004 #5006 #5015 #5024 #5025 #5031 #5131 #5176 @AltGr @dra27 @rjbou @kit-ty-kate]
  • Update test engine to allow for additional tests [#4913 #4966 #4979 #5004 #5009 #5024 #5097 @AltGr @kit-ty-kate @rjbou]

API updates

opam-client

  • OpamClient: fix update_with_init_config, when jobs was set in init_config, it dropped rest of config update [#5056 @rjbou]
  • OpamConfigCommand: set_opt_switch, set_var_switch, options_list_switch, and var_list_switch now raise configuration error exception (50) if no switch is found [#5027 @rjbou]
  • OpamClient.Pin.post_pin_action: no more updates depexts information, moved to OpamSwitchState.update_pin [#5047 @rjbou]

opam-repository

  • OpamVCS.VCS: add a clean function to the interface clearing all the uncommited files [#4879 @rjbou]
  • OpamVCS.pull_url: clean repository before fetching [#4879 @rjbou]

opam-state

  • OpamSwitchState.update_pin: updates depexts state informations (sys_packages, avalaible_packages) [#5047 @rjbou]

opam-core

  • OpamCompat: add Lazy module and Lazy.map function [#5176 @dra27]

2.1.2

2 years ago

This is the release of opam 2.1.2.

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

Changelog:

  • Fallback on dnf if yum does not exist on RHEL-based systems [#4825 @kit-ty-kate]
  • Use --no-depexts in CLI 2.0 mode [#4908 @dra27]
  • bootstrap: update ocaml version (fixes the compilation of opam with mingw) [#4927 @kit-ty-kate]

2.1.1

2 years ago

This is the release of opam 2.1.1.

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

Changelog:

Bug fixes

Switch

  • Put back support for switch creation with packages argument and --packages option with cli 2.0, and a specific error message for cli 2.1 [#4853 @rjbou - fix #4843]
  • Fix set-invariant: default repos were loaded instead of switch repos [#4866 @rjbou]

External dependencies

  • Homebrew: Add support for casks and full-names [#4801 @kit-ty-kate]
  • Archlinux: handle virtual package detection [#4833 @rjbou - partial fix #4759]
  • Disable the detection of available packages on RHEL-based distributions. This fixes an issue on RHEL-based distributions where yum list used to detect available and installed packages would wait for user input without showing any output and/or fail in some cases [#4791 @kit-ty-kate - fixes #4790]

Sandbox

  • Run the sandbox check in the temporary directory [#4787 @dra27 - fix #4783]

System

  • Fix reverting environment additions to PATH-like variables when several dirs added at once [#4861 @dra27]
  • Ensure setenv can use package variables defined during the build [#4841 @dra27]
  • OpamSystem: avoid calling Unix.environment at top level [#4789 @hannesm] [#4802 @kit-ty-kate - fix #4801]
  • Handle empty environment variable updates - missed cherry-pick from 2.0 [#4840 @dra27]

opam build

  • Fix the cold target in presence of an older OCaml compiler version on macOS
  • Fix vendored build on mingw-w64 with g++ 11.2 [#4835 @dra27]
  • Fix dose3 download url since gforge is gone [#4870 @avsm]

Misc

  • Fix typo in error message for opam var [#4786 @kit-ty-kate - fix #4785]

Many thanks to @AltGr and @rjbou (OCamlPro), @dra27 and @kit-ty-kate (OCaml Labs), @hannesm, @avsm and everyone who's helped with issue reports, comments and feedback.