2.3.0~alpha1
Pre-release
Pre-release
kit-ty-kate
released this
20 Sep 14:33
·
189 commits
to master
since this release
This is the first alpha release of opam 2.3.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.
Major changes
Repository
- Silently mark packages requiring an unsupported version of opam as unavailable [#5665 @kit-ty-kate - fix #5631]
- When loading a repository, don't automatically populate
extra-files:
field with found files infiles/
[#5564 @rjbou]
List
- ◈ Add a new
--latests-only
option to only list the latest packages [#5375 @kit-ty-kate]
Install
- [BUG] Fix
opam install --check pkg
when pkg depends on a non-existing package [#6121 @kit-ty-kate] - Make
opam install --check
check if all dependencies are installed recursively [#6122 @kit-ty-kate - fix #6097]
Build (package)
Switch
- ◈ Add
opam switch import --deps-only
option to install only dependencies of root package at import [#5388 @rjbou - fix #5200] - [BUG] Make accepted
--repos
URLs on creation consistent withopam repository
[#6091 @Keryan-dev - fix #4673] - ◈ opam switch list-available will not display compilers flagged with avoid-version/deprecated unless --all is given [#6098 @kit-ty-kate - fix #6089]
- Make
opam switch set-invariant
return the actual invariant syntax expected by--invariant
[#5619 @kit-ty-kate - fixes #5491]
Solver
- Add support for unordered criteria with the
builtin-0install
solver [#6130 @kit-ty-kate] - Add support for the
-changed
criteria with thebuiltin-0install
solver, to make the solver prefer to keep packages installed at their current version [#6130 @kit-ty-kate] - Add support for the
-count[avoid-version,solution]
criteria with thebuiltin-0install
solver, to avoid packages marked withavoid-version
flag [#6130 @kit-ty-kate] - The default criteria for the
builtin-0install
solver changed from empty to-changed,-count[avoid-version,solution]
[#6130 @kit-ty-kate] - The upgrade and fixup criteria for the
builtin-0install
solver changed from empty to-count[avoid-version,solution]
[#6130 @kit-ty-kate] - Fix must unhelpful conflict messages by merging all formulas together [#6106 @kit-ty-kate]
Var/Option
- Fix the value of the 'arch' variable when the current OS is 32bit on a 64bit machine [#5950 @kit-ty-kate - fix #5949]
VCS
- Fail when git submodule fails to update instead of showing a warning and ignoring the error [#6132 @kit-ty-kate - fix #6131]
Miscellaneous changes
Global CLI
- Add cli version 2.3 [#6045 #6151 @rjbou]
- Improve the error message when a directory is not available while fetching using rsync [#6027 @kit-ty-kate]
Init
Actions
- Add support for wget2 [#6104 @kit-ty-kate]
Config report
- Always list all the repositories regardless of whether or not a switch is currently set [#6116 @kit-ty-kate]
- Make
opam config report
return the actual invariant syntax expected by--invariant
[#5619 @kit-ty-kate - fixes #5491]
Install
- Fix package name display for no agreement conflicts [#6055 @rjbou - fix #6030]
- Make fetching an archive from cache add missing symlinks [#6068 @kit-ty-kate - fix #6064]
- Improve performance of
opam install --check
[#6122 @kit-ty-kate]
Build (package)
- Remove unnecessary copies/move when fetching archives [#5018 @kit-ty-kate @rjbou]
List
- Speedup
opam list
on options that do not use availability information [#5317 @kit-ty-kate - fix #5314]
Var/Option
Lint
- Add E70 to check
extra-files:
duplicated fields [#5561 @rjbou] - Add E71 to check if the same checksum algorithm is used several times for a given url in
url
section [#5561 @rjbou] - Add E72 to check if the same checksum algorithm is used several times for a given url in
extra-sources
section [#5561 @rjbou] - Add E73 to check that paths in
extra-files:
are not escapable [#5561 @rjbou] - Update W59 (no checksum in
url
) to always display a warning, untying it from--check-upstream
[#5561 @rjbou]
Env
- Make the shell environment update hint easier to copy/paste [#6159 @kit-ty-kate - fix #6158]
- Add install.exe to the list of non-shadowed programs when adding Cygwin's bin directory to PATH (ocamlfind et al can be affected by Vim for Windows) [#6190 @dra27]
Opamfile
- Make all writes atomic [#5489 @kit-ty-kate]
- Propagate future opamfile parse errors correctly [#6199 @dra27]
- Ensure future syntax errors are only reported when the syntax version is greater than the client, not the format library [#6199 @dra27 - fix #6188]
External dependencies
- Always pass --no-version-check and --no-write-registry to Cygwin setup [#6046 @dra27]
- Use --quiet-mode noinput for the internal Cygwin installation (which is definitely a fully-specified command line) and --quiet-mode unattended for external Cygwin installations (in case the user does need to select something, e.g. a mirror) [#6046 @dra27]
- [BUG] Fix apt/debian lookup for installed packages [#6054 @rjbou]
Build
- Unset
OPAM_SWITCH_PREFIX
when usingmake cold
[#5534 @kit-ty-kate] - Bump the vendored opam-0install-cudf to 0.5.0 [#6130 @kit-ty-kate]
- Require opam-0install-cudf >= 0.5.0 [#6130 @kit-ty-kate]
- Bump the vendored mccs to 1.1+18 [#6170 @kit-ty-kate]
- Fix Windows builds with OCaml >= 5.0 [#6189 @kit-ty-kate - fix #6148]
- Upgrade the minimum required version for dune from 2.0.0 to 2.6.0 [#5381 @dra27]
- Remove
--with-acl
option from the configure script and its related C stubs (reverts a Cygwin fix in #4265) [#5381 @kit-ty-kate - fix #5373]
Release scripts
- Remove the getgroups workaround allowing users belonging to more than 32 groups now that it is no longer necessary [#6200 @dra27 @kit-ty-kate]
Install script
- Provide a shell/install.ps1 PowerShell script to install opam on Windows [#5906 @kit-ty-kate @dra27]
Admin
- Change hash cache location from
~/.cache
to<opamroot>/download-cache/hash-cache
[#6103 @rjbou] - Make
opam admin cache
add missing symlinks [#6068 @kit-ty-kate - fix #6064]
Internal
- Stop using polymorphic comparison when comparing
OpamTypes.switch_selections
[#6102 @kit-ty-kate] - Remove the meta opam packages opam and opam-admin [#6115 @kit-ty-kate]
- Reduce allocations in OpamVersionCompare [#6144 @talex5]
- Speedup OpamVersionCompare by 25% by removing the unused handling of epoch [#5518 @kit-ty-kate]
- Fix error in
OpamSystem.transform_patch
- patches were only applied when debugging [#6182 @dra27 regression since #3449] - Move Windows stubs to opam-core [#5381 @dra27]
Testing and documentation
- Improve and extend the tests [#6045 #6045 #5989 #6055 #5642 #5327 #6103 #6068 #5377 #5474 #5682 #6125 #6121 #6139 #5375 #6105 #6146 #6098 #6132 #6122 #5561 #5210 #6199 @rjbou @kit-ty-kate @dra27 @Keryan-dev @madroach]
- Improve the benchmarks [#6094 #6078 #6123 #6149 @kit-ty-kate]
- Improve the test infrastructure [#6105 #6155 #6184 #5564 #6079 #6081 #6132 #6074 @rjbou @kit-ty-kate @Keryan-dev @RyanGibb]
- Improve the documentation [#5988 #5946 #6119 #6138 #6141 #5363 @kit-ty-kate @rjbou @mbarbin @shonfeder]
API updates
opam-client
OpamSwitchCommand.import
: add optional?deps_only
argument to install only dependencies of root packages [#5388 @rjbou]OpamArg.build_options
: add--verbose-on
flag [#5682 @desumn @rjbou]OpamClientConfig.build_options
: addverbose_on
field [#5682 @desumn]OpamClientConfig.E
,OpamArg.environment_variables
: andOPAMVERBOSEON
support [#5682 @desumn @rjbou]OpamListCommand.selector
: AddNotFlag
selector [#6098 @kit-ty-kate]
opam-repository
OpamRepository.fetch_from_cache
: when an archive is found, add a symlink (or copy) for the ones found in opam file but not in cache [#6068 @kit-ty-kate]?full_fetch
is nowtrue
by default instead offalse
[#6146 @kit-ty-kate - fix #6145]
opam-state
OpamStateConfig.opamroot_with_provenance
: restore previous behaviour toOpamStateConfig.opamroot
for compatibility with third party code [#6047 @dra27]OpamSwitchState.{,reverse_}dependencies
: makeunavailable
a non-optional argument to enforce speedups when availability information is not needed [#5317 @kit-ty-kate]OpamFilteTools.add_aux_files
: ignore non registered extra-files and make thefiles_subdir_hashes
argument optional (defaults tofalse
) [#5564 @@rjbou]OpamFileTools
:read_opam
&read_repo_opam
no more add non registered extra-files [#5564 @rjbou]
opam-solver
OpamCudfCriteria
,OpamBuiltinZ3.Syntax
: MoveOpamBuiltinZ3.Syntax
into a dedicated moduleOpamCudfCriteria
[#6130 @kit-ty-kate]OpamSolver.dependency_graph
: makeunavailable
a non-optional argument to enforce speedups when availability information is not needed [#5317 @kit-ty-kate]
opam-format
- Add
OpamTypesBase.switch_selections_{compare,equal}
: proper comparison functions forOpamTypes.switch_selections
[#6102 @kit-ty-kate] OpamFormula
: addexists
[#5317 @kit-ty-kate]OpamTypes.universe
: makeu_available
andu_attrs
lazy to speedup actions that do not require availiblity information [#5317 @kit-ty-kate - fix #5314]OpamFormula
: add some missing comparison functions forrelop
,version_constraint
andatom
(compare_relop
,compare_version_constraint
andcompare_atom
respectively) [#6122 @kit-ty-kate]
opam-core
OpamStd.Env
: addenv_string_list
for parsing string list environment variables (comma separated) [#5682 @desumn]OpamHash
: exportcompare_kind
[#5561 @rjbou]OpamFilename
: addmight_escape
to check if a path is escapable, ie contains<sep>..<sep>
[#5561 @rjbou]- Add
OpamStd.Sys.getconf
[#5950 @kit-ty-kate] OpamStd.Sys.resolve_command
: Fix opam unable to find executables on systems where users belong to more than 32 groups when opam is built using musl libc [#5381 @kit-ty-kate - fix #5373]OpamACL
: remove module [#5381 @kit-ty-kate]