Skip to content

2.2.0~alpha3

Pre-release
Pre-release
Compare
Choose a tag to compare
@kit-ty-kate kit-ty-kate released this 14 Nov 14:41
· 267 commits to master since this release
f36c638

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

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

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

Opamfile

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

Documentation

Testing

API updates

opam-client

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]