Working version changelog, used as a base for the changelog and the release note. Prefixes used to help generate release notes, changes, and blog posts:
- ✘ Possibly scripts breaking changes
- ◈ New option/command/subcommand
- [BUG] for bug fixes
- [NEW] for new features (not a command itself)
- [API] api updates 🕮 If there is changes in the API (new non optional argument, function renamed or moved, etc.), please update the API updates part (it helps opam library users)
- Fix typo in error message for opam var [#4786 @kit-ty-kate - fix #4785]
- Add cli 2.2 handling [#4853 @rjbou]
--no-depextsis the default in CLI 2.0 mode [#4908 @dra27]- [BUG] Fix behaviour on closed stdout/stderr [#4901 @altgr - fix #4216]
- Add
OPAMREPOSITORYTARRINGenvironment variable to enable repository tarring optimisation, it is disabled by default because it is an optimisation only on some os/configurations [#5015 @rjbou] - Refresh the actions list output, now sorted by action/package rather than dependency [#5045 @kit-ty-kate @AltGr - fix #5041]
- Put back the actions summary as part of confirmation question [#5045 @AltGr]
- Error report display: print action name [#5045 @AltGr]
- Refactored depext-related questions, with a flat menu instead of nested y/n questions [#5053 @AltGr - fix #5026]
- Fix removal of interactive special characters is output is not tty [#5155 @rjbou]
- Fix behaviour of menu and depexts in non-interactive environments [#5295 @AltGr]
- [BUG] Fix default cli handling for simple flags [#5099 @rjbou]
- Add
experimentalflags handling [#5099 @rjbou] - [BUG] Fix
OPAMCURLandOPAMFETCHvalue setting [#5111 @rjbou - fix #5108] - [BUG] Fix display of pinned packages in action list [#5079 @rjbou]
- [BUG] Fix spaces in root and switch dirs [#5203 @jonahbeckford]
- Use menu for init setup [#5057 @AltGr; #5217 @dra27]
- Do not show --yes and --no as special global options when using cmdliner >= 1.1 [#5269 @kit-ty-kate]
- ◈ Add
treesubcommand to display a dependency tree of currently installed packages [#5171 @cannorin - fix #3775] - ◈ Add
whysubcommand to examine how the versions of currently installed packages get constrained (alias totree --rev-deps) [#5171 @cannorin - fix #3775] - Make the plugin lookup faster when mistyping a subcommand [#5297 @kit-ty-kate]
- Run the sandbox check in the temporary directory [#4787 @dra27 - fix #4783]
- [BUG] Fix
opam initandopam init --reinitwhen thejobsvariable has been set in the opamrc or the current config. [#5056 @rjbou] - Use
.opamfrom%HOME%or%USERPROFILE%on Windows, only if found; otherwise use%LOCALAPPDATA%\opamas root. [#5212 @dra27] - Display actual location of OPAMROOT in
opam initif--rootorOPAMROOThave been set [#5212 @dra27 - fix #4992]
- [BUG] Don't fail is no switch is set [#5198 @rjbou]
- Add a
'Fetchaction with several packages: one node to download once and prepare source once for packages that share same archive [#4893 @rjbou - fix #3741] - Add subpath on actions listing urls [#4876 @rjbou]
- Make the status of pinned packages more explicit during installation [#4987 @kit-ty-kate - fix #4925]
- Better recognize depexts on Gentoo, NetBSD, OpenBSD [#5065 @mndrix]
- Reimplement deps-only [#4975 @AltGr]
- Fix conflict handling [#5136 @AltGr]
- Ensure correct handling of dev dependencies [#5236 @AltGr - fix #5177]
- Ensure correct handling of external dependencies [#5236 @AltGr - fix #5185]
- ◈ Add
--formulaoption to specify a formula to install [#4975 @AltGr] - [BUG] Prevent
.changesfiles from being updated during dry-run [#5144 @na4zagin3 - fix #5132] - Log a summary of recorded
.changesas aACTIONtrace log to help debug #4419 [#5144 @na4zagin3] - ◈ Add
--with-toolsoption to install recommended development tools from opam file (aswith-test/with-doc), and its environment variableOPAMWITHTOOLS[#5016 @rjbou]- Resolve
with-toolsfor post messages too [#5160 @rjbou] - ◈ Rename --with-tools
to--with-dev-setup` [#5214 @rjbou - fix #4959]
- Resolve
- Use the default criteria during reinstall/upgrade when requesting at least one non-installed package [#5228 @kit-ty-kate]
- Show the reason for installing packages when using opam reinstall [#5229 @kit-ty-kate]
- Fix message when running
opam removeon an unavailable package [@AltGr - fix #4890] - Fix removal of root packages with
-aand an optional dependency explicitely specified [@AltGr - fix #4727]
- Put back support for switch creation with packages argument and
--packagesoption with cli 2.0, and a specific error message for cli 2.1 [#4853 @rjbou - fix #4843] - Ensure setenv can use package variables defined during the build [#4841 @dra27]
- [BUG] Fix `set-invariant: default repos were loaded instead of switch repos [#4866 @rjbou]
- Add support for
opam switch -(go to previous non-local switch) [#4910 @kit-ty-kate - fix 4866] - On loading, check for executable external files if they are in
PATH, and warn if not the case [#4932 @rjbou - fix #4923] - 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]
- Really install invariant formula if not installed in switch [#5188 @rjbou]
- On import, check that installed pinned packages changed, reinstall if so [#5181 @rjbou - fix #5173]
- Reset the "jobs" config variable when upgrading from opam 2.0 [#5284 @kit-ty-kate]
- Switch the default version when undefined from ~dev to dev [#4949 @kit-ty-kate]
- ◈ New option
opam pin --currentto fix a package in its current state (avoiding pending reinstallations or removals from the repository) [#4973 @AltGr - fix #4970] - [BUG] Fix using
--working-dirwith non pinned packages: it was not downloading sources as they were remove from package that need sources [#5082 @rjbou - fix #5060] - [NEW] Reactivate subpath and recursive pinning
--recursiveand--subpath[#4876 @rjbou]- Change display from
git+https://url#hash (subpath)to/subpath in git+https://url#hash[#5219 @rjbou]
- Change display from
- scan: show subpaths [#4876 @rjbou]
- [BUG] Fix windows path for subpath, by introducing their own type in
OpamFilename[#4876 @rjbou] - [BUG] Fix repin of locked pins when there is no change in lock file [#5079 @rjbou - fix #4313]
- [BUG] Fix
opam install ./file.opamlock pinning [#5148 @rjbou - fix #4313] - [BUG] Fix origin opam file retrieval when opam originate from locked file [#5079 @rjbou - fix #4936]
- [BUG] 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]
- [BUG] 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] - Allow opam pin remove to take a package (.) as argument [#5325 @kit-ty-kate]
- ◈ Add opam pin remove --all to remove all the pinned packages from a switch [#5308 @kit-ty-kate]
- Some optimisations to 'opam list --installable' queries combined with other filters [#4882 @altgr - fix #4311]
- Improve performance of some opam list combination (e.g. --available --installable) [#4999 @kit-ty-kate]
- Improve performance of opam list --conflicts-with when combined with other filters [#4999 @kit-ty-kate]
- Fix coinstallability filter corner case [#5024 @AltGr]
- Improve performance for recursive
--required-byanddepends-on[#5337 @rjbou]
- Add
depextsto default printer [#4898 @rjbou] - Make
opam show --list-files <pkg>fail with not found when<pkg>is not installed [#4956 @kit-ty-kate - fix #4930] - Improve performance of opam show by 300% when the package to show is given explicitly or unique [#4998 @kit-ty-kate - fix #4997 and partially #4172]
- Don't error when displaying if switch is not set [#5027 @rjbou - fix #5025]
- Try to set a variable with option
--switch <sw>fails instead of writing a wrongswitch-configfile [#5027 @rjbou] - When a field is defined in switch and global scope, try to determine the scope also by checking switch selection [#5027 @rjbou]
- Resolve and use global config and environment variable before polling system informations (os, os-family, etc.) [4892 @rjbou - fix #4883]
- Catch an package not found error and print skipping message [#5280 @rjbou - fix #5279]
- Make
archive-mirrorsmodifiablei (extendable) via opam config [#5321 @hannesm @rjbou - fix #5316]
- [BUG] if a package is pinned from a locked file, it is automatically updated/upgraded accordingly a lock file (same extension) [#5080 @rjbou]
- More clear message for pinned package update that have local changes, with no working dir given, or no arguments specified [#5300 @rjbou - fix #5294]
- [NEW] Add
opam exec --no-switch[#4957 @kit-ty-kate - fix #4951]
- [BUG] Fix directory display in dev mode [#5102 @rjbou]
- Download source even if no switch is set [#4850 @rjbou @zapashcanon - fix #4809]
- [NEW] Add
--no-switchoption [#4850 @rjbou - fix #4858]
- W68: add warning for missing license field [#4766 @kit-ty-kate - partial fix #4598]
- W62: use the spdx_licenses library to check for valid licenses. This allows to use compound expressions such as "MIT AND (GPL-2.0-only OR LGPL-2.0-only)", as well as user defined licenses e.g. "LicenseRef-my-custom-license" [#4768 @kit-ty-kate - fixes #4598]
- E57 (capital on synopsis) not trigger W47 (empty descr) [#5070 @rjbou]
- [BUG] Fix linting packages from repository with tarred repositories, the file in temporary repository was no more avaiable when lint is done [#5068 @rjbou]
- Update repository package filename display [#5068 @rjbou]
- E67: check checksums only for vcs urls [#4960 @rjbou]
- When several checksums are specified, instead of adding in the cache only the archive by first checksum, name by best one and link others to this archive [#4696 rjbou]
- Update opam repository man doc regarding removal of the last repository in a switch [#4435 - fixes #4381]
- Don't display global message when
this-switchis given [#4899 @rjbou - fix #4889] - Set the priority of user-set archive-mirrors higher than the repositories'. This allows opam-repository to use the default opam.ocaml.org cache and be more resilient to changed/force-pushed or unavailable archives. [#4830 @kit-ty-kate - fixes #4411]
- Repository tarring "optimisation" no more needed, removed in favor of a plain directory. It still can be used with environment variable
OPAMREPOSITORYTARRING. [#5015 @kit-ty-kate @rjbou @AltGr - fix #4586]- Fix loading a plain repository froma tarred one [#5109 @rjbou]
- Avoid reloading repository contents when the repo has no changes [#5043 @Armael]
- Avoid rewriting cache is nothing changed [#5146 @rjbou]
- On setting url fetch failure (sync or file error), revert url change and rollback to old one [#4967 @rjbou - fix #4780 #4779]
- Fix lock generation of multiple interdependent packages [#4993 @AltGr]
- [NEW] Add
--untrackedoption to remove interactively untracked files [{4915 @rjbou - fix #4831]
- Fix substring errors in preserved_format [#4941 @rjbou - fix #4936]
- Add
with-toolsvariable for recommended tools [#5016 @rjbou] - Add
x-lockedextension fields for overlay internal use, it stores if the files originate from a locked file, if so its extension [#5080 @rjbou] - Set
depext-bypassparsing with depth 1, no needed brakcet if single package [#5154 @rjbou]
- Set
DEBIAN_FRONTEND=noninteractivefor unsafe-yes confirmation level [#4735 @dra27 - partially fix #4731] [2.1.0~rc2 #4739] - Fix depext alpine tagged repositories handling [#4763 @rjbou] [2.1.0~rc2 #4758]
- Homebrew: Add support for casks and full-names [#4801 @kit-ty-kate]
- 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]
- Archlinux: handle virtual package detection [#4831 @rjbou - partial fix #4759]
- Fallback on dnf if yum does not exist on RHEL-based systems [#4825 @kit-ty-kate]
- Stop zypper from upgrading packages on updates on OpenSUSE [#4978 @kit-ty-kate]
- Increase verbose logging of command to 4 [#5151 @rjbou]
- Improve the error message when neither MacPorts or Homebrew could be detected on macOS [#5240 @kit-ty-kate]
- Introduce dummy-success & dummy-failure os-family to make testing depexts behaviour easier [#5268 @kit-ty-kate]
- Run command as admin only when needed [#5268 @kit-ty-kate]
- Print depexts together with action list on
--show[#5236 @AltGr]
- Fix format upgrade when there is missing local switches in the config file [#4763 @rjbou - fix #4713] [2.1.0~rc2 #4715]
- Fix not recorded local switch handling, with format upgrade [#4763 @rjbou] [2.1.0~rc2 #4715]
- Set opam root version to 2.1 [#4763 @rjbou] [2.1.0~rc2 #4715]
- Fix 2.1
alpha2 to 2.1 format upgrade with reinit [#4763 @rjbou - fix #4748] [2.1.0rc2 #4750] - Fix bypass-check handling on reinit [#4750 @rjbou] [#4763 @rjbou] [2.1.0~rc2 #4750 #4756]
- Sync the behaviour of the macOS sandbox script with Linux's: /tmp is now ready-only [#4719 @kit-ty-kate]
- Always mount every directories under / on Linux [#4795 @kit-ty-kate]
- Get rid of OPAM_USER_PATH_RO (never used on macOS and no longer needed on Linux) [#4795 @kit-ty-kate]
- Print error message if command doesn't exist [#4971 @kit-ty-kat - fix #4112]
- Resolve symlink for
ccachedirectory [#5267 @rjbou - fix #5194]
- Pass --depth=1 to git-fetch in the Git repo backend [#4442 @dra27]
- Use 4.08's unnamed functor arguments to silence warning 67 [#4775 @dra27]
- git: disable colored output [#4884 @rjbou]
- Check if a source is up to date with subpath [#4876 @rjbou]
- Bump src_exts and fix build compat with Dune 2.9.0 [#4752 @dra27]
- Upgrade to dose3 >= 6.1 and vendor dose3 7.0.0 [#4760 @kit-ty-kate]
- Change minimum required OCaml to 4.03.0 [#4770 @dra27]
- Change minimum required Dune to 2.0 [#4770 @dra27]
- Change minimum required OCaml to 4.08.0 for everything except opam-core, opam-format and opam-installer [#4775 @dra27]
- Fix the cold target in presence of an older OCaml compiler version on macOS [#4802 @kit-ty-kate - fix #4801]
- Harden the check for a C++ compiler [#4776 @dra27 - fix #3843]
- Add
--without-duneto configure to force compiling vendored Dune [#4776 @dra27] - Use
--without-duneinmake coldto avoid picking up external Dune [#4776 @dra27 - fix #3987] - Add
--with-vendored-depsto replacemake lib-extinstruction [#4776 @dra27 - fix #4772] - Fix vendored build on mingw-w64 with g++ 11.2 [#4835 @dra27]
- Switch to vendored build if spdx_licenses is missing [#4842 @dra27]
- Check versions of findlib packages in configure [#4842 @dra27]
- Fix dose3 download url since gforge is gone [#4870 @avsm]
- Update bootstrap ocaml to 4.12.1 to integrate mingw fix [#4927 @rjbou]
- Update bootstrap to use
-jfor Unix (Windows already does) [#4988 @dra27] - Update cold compiler to 4.13 [#5017 @dra27]
- Bring the autogen script from ocaml/ocaml to be compatible with non-ubuntu-patched autoconf [#5090 @kit-ty-kate #5093 @dra27]
- configure: Use gmake instead of make on Unix systems (fixes BSDs) [#5090 @kit-ty-kate]
- Patch ocaml-opam/ocaml-mccs#36 in the src_ext build to fix Cygwin32 [#5094 @dra27]
- Silence warning 70 [#5104 @dra27]
- Add
jsonm(anduutf) dependency [#5098 @rjbou - fix #5085] - Bump opam-file-format to 2.1.4 [#5117 @kit-ty-kate - fix #5116]
- Add
shadependency [#5042 @kit-ty-kate] - Add a 'test' target [#5129 @kit-ty-kate @mehdid - partially fixes #5058]
- Add
with-toolshandling in selection process [#5016 @rjbou] - Bump cudf to 0.10 [#5195 @kit-ty-kate]
- shell/bootstrap-ocaml.sh: do not fail if curl/wget is missing [#5223 #5233 @kit-ty-kate]
- Upgrade to cmdliner >= 1.1 [#5269 @kit-ty-kate]
- Cleared explanation of dependency vendoring in configure [#5277 @dra27 - fix #5271]
- Switch autoconf required version to 2.71 [#5161 @dra27]
- Remove src/client/no-git-version when calling make clean [#5290 @kit-ty-kate]
- Update the bootstrap compiler to 4.14.0 [#5250 @kit-ty-kate]
- Fix caching of Cygwin compiler on AppVeyor [#4988 @dra27]
- Small update to GHA scripts [#5055 @dra27]
- Adapt Windows CI to new safe.directory setting [#5119 @dra27]
- Bid a fond farewell to AppVeyor, with thanks for 5100+ CI builds [#5134 @dra27]
- Make the release script setup-less using QEMU, Docker and Rosetta 2 [#4947 @kit-ty-kate]
- Update release notes for messages in opam-repository [#5276 @dra27]
- ✘
opam admin cachenow ignores all already present cache files. Option--check-allrestores the previous behaviour of validating all checksums. - [BUG] Fix repo-upgrade internal error [#4965 @AltGr]
- [BUG] Fix
--environmentdocumentation [#5235 @rjbou - fix #5184] - [BUG] Fix opam admin add-constraint failing with Not_found in some situations [#5336 @kit-ty-kate - fix #5334]
- Handle empty environment variable updates - missed cherry-pick from 2.0 [#4840 @dra27]
- Repository state: stop scanning directory once opam file is found [#4847 @rgrinberg]
- Fix reverting environment additions to PATH-like variables when several dirs added at once [#4861 @dra27]
- Actually allow multiple state caches to co-exist [#4934 @dra27 - fix #4554 properly this time]
- Don’t rebuild packages when updating dependencies or availablity, unless the current state needs to be changed [#5118 @kit-ty-kate - fix #4647]
- Rebuild packages when removing or adding the "plugin" flag [#5118 @kit-ty-kate]
- Do not rebuild packages when an extra-source's url changes but not its checksum [#5258 @kit-ty-kate]
- [BUG] Remove z3 debug output [#4723 @rjbou - fix #4717] [2.1.0~rc2 #4720]
- Fix and improve the Z3 solver backend [#4880 @altgr]
- Refactored, fixed, improved and optimised the z3 solver backend [#4878 @altgr]
- Add an explanation for "no longer available" packages [#4969 @AltGr]
- Orphan packages are now handled at the solver level instead of a pre-processing phase, better ensuring consistency [#4969 @altgr]
- Clean debug code [#5182 @rjbou]
- Make the 0install solver non-optional [#4909 @kit-ty-kate]
- Optimised reverse dependencies calculation [#5005 @AltGr]
- Enable cudf preprocessing for (co)insallability calculation, resulting in a x20 speedup [@AltGr]
- Make sure that
--best-effortonly installs root package versions that where requested [#4796 #5261 @LasseBlaauwbroek] - Ask users to report errors when no explanations are given to them [#4981 @kit-ty-kate]
- Add builtin support for the 'deprecated' flag. Any packages flagged with deprecated would be avoided by the solver unless there is no other choice (e.g. some user wants to install package a which depends on b which is deprecated) If it is installed, show up a note after installation notifying the user that the package is deprecated. [#4523 @kit-ty-kate]
- [BUG] On cudf strong and weak dependencies computation, some weak dependencies were wrongly kept, from #4627 [#5338 @rjbou @AltGr]
- Check whether the repository might need updating more often [#4935 @kit-ty-kate]
- ✘ It is no longer possible to process actions on packages that depend on a package that was removed upstream [#4969 @altgr]
- [BUG] Fix all empty conflict explanations [#4982 #5263 @kit-ty-kate]
- Fix json double printing [#5143 @rjbou]
- [BUG] Fix passing
archive-mirrorsfield from init config file to config [#5315 @hannesm]
- Add license and lowerbounds to opam files [#4714 @kit-ty-kate]
- Bump version to 2.2.0
alphadev [#4725 @dra27] - Add specific comparison function on several module (that includes
OpamStd.ABSTRACT) [#4918 @rjbou] - Homogeneise is_archive tar & zip: if file exists check magic number, otherwise check extension [#4964 @rjbou]
- [BUG] Remove windows double printing on commands and their output [#4940 @rjbou]
- OpamParallel, MakeGraph(_).to_json: fix incorrect use of List.assoc [#5038 @Armael]
- [BUG] Fix display of command when parallelised [#5091 @rjbou]
- Add some debug log to OpamCudf.extract_explanations to help debug #4373 [#4981 @kit-ty-kate]
- Make SHA computation faster by using ocaml-sha [#5042 @kit-ty-kate]
- Make OpamConfigCommand.global_allowed_fields fully lazy [#5162 @LasseBlaauwbroek]
- Overhaul Windows C stubs and update for Unicode [#5190 @dra27]
- Unify constructors for powershell hosts [#5203 @dra27]
- Fix lazy compilation of regular expression in OpamFormula.atom_of_string [#5211 @dra27]
- [BUG] Display correct exception backtrace on uncaught exception on Windows [#5216 @dra27]
- Use grep -F instead of fgrep, as the latter is deprecated [#5309 @MisterDA]
- Support MSYS2: treat MSYS2 and Cygwin as equivalent [#4813 @jonahbeckford]
- Process control: close stdin by default for Windows subprocesses and on all platforms for the download command [#4615 @dra27]
- [BUG] handle converted variables correctly when no_undef_expand is true [#4811 @timbertson]
- [BUG] check Unix.has_symlink before using Unix.symlink [#4962 @jonahbeckford]
- OpamCudf: provide machine-readable information on conflicts caused by cycles [#4039 @gasche]
- Remove memoization from
best_effort ()to allow for multiple different settings during the same session (useful for libaray users) [#4805 @LasseBlaauwbroek] - [BUG] Catch
EACCESin lock function [#4948 @oandrieu - fix #4944] - Permissions: chmod+unlink before copy [#4827 @jonahbeckford @dra27]
- Support MSYS2: two-phase rsync on MSYS2 to allow MSYS2's behavior of copying rather than symlinking [#4817 @jonahbeckford]
- Environment: translate PATH from Windows to Unix during opam env. [#4844 @jonahbeckford]
- Correct invocation of Cygwin binaries when Cygwin bin directory is first in PATH [#5293 @dra27]
- Update crowbar with compare functions [#4918 @rjbou]
- Add switch-invariant test [#4866 @rjbou]
- opam root version: add local switch cases [#4763 @rjbou] [2.1.0~rc2 #4715]
- opam root version: add reinit test casess [#4763 @rjbou] [2.1.0~rc2 #4750]
- Port opam-rt tests: orphans, dep-cycles, reinstall, and big-upgrade [#4979 @AltGr]
- Add & update env tests [#4861 #4841 #4974 #5203 @rjbou @dra27 @AltGr]
- Add remove test [#5004 @AltGr]
- List:
- Add some simple tests for the "opam list" command [#5006 @kit-ty-kate]
- Update list with co-instabillity [#5024 @AltGr]
- Add a usecase with faulty dependencies computation [#5329 @rjbou]
- Add clean test for untracked option [#4915 @rjbou]
- Harmonise some repo hash to reduce opam repository checkout [#5031 @AltGr]
- Add repo optim enable/disable test [#5015 @rjbou]
- Add lint test [#4967 @rjbou]
- Add lock test [#4963 @rjbou]
- Add working dir/inplace/assume-built test [#5081 @rjbou]
- Fix github url:
git://form no more handled [#5097 @rjbou] - Add source test [#5101 @rjbou]
- Add upgrade (and update) test [#5106 @rjbou]
- Update var-option test with no switch examples [#5025]
- Escape for cmdliner.1.1.1 output change [#5131 @rjbou]
- Add deprectaed flag test [#4523 @kit-ty-kate]
- Add deps-only, install formula [#4975 @AltGr]
- Update opam root version test:
- to escape
OPAMROOTVERSIONsed, it matches generated hexa temporary directory names [#5007 @AltGr #5301 @rjbou] - several improvments: add repo config check, update generator [#5303 @rjbou]
- to escape
- Add json output test [#5143 @rjbou]
- Add test for opam file write with format preserved bug in #4936, fixed in #4941 [#4159 @rjbou]
- Add test for switch upgrade from 2.0 root, with pinned compiler [#5176 @rjbou @kit-ty-kate]
- Add switch import (for pinned packages) test [#5181 @rjbou]
- Add
--with-toolstest [#5160 @rjbou] - Add a series of reftests showing empty conflict messages [#5253 @kit-ty-kate]
- Fix the reftests under some heavy parallel hardwear [#5262 @kit-ty-kate]
- Add some tests for --best-effort to avoid further regressions when trying to install specific versions of packages [@5261 @kit-ty-kate]
- Add unhelpful conflict error message test [#5270 @kit-ty-kate]
- Add rebuild test [#5258 @rjbou]
- Add test for opam tree command [#5171 @cannorin]
- Update and reintegrate pin & depext test
pin.unixinpintest, with test environment, there is no more need to have it only on unix [#5268 @rjbou @kit-ty-kate] - Add a reftest testing for system package manager failure [#5257 @kit-ty-kate]
- Add autopin test including deps-only, dev-deps, depexts; instrument depext handling to allow depext reftesting [#5236 @AltGr]
- Add test for init configuration with opamrc [#5315 @rjbou]
- Test opam pin remove . [#5325 @kit-ty-kate]
- Add a test checking that reinstalling a non-installed package is equivalent to installing it [#5228 @kit-ty-kate]
- Add a test showing that we still get the reason for installing a package when using opam reinstall on non-installed packages [#5229 @kit-ty-kate]
- Add
opam-catto normalise opam file printing [#4763 @rjbou @dra27] [2.1.0~rc2 #4715] - Fix meld reftest: open only with failing ones [#4913 @rjbou]
- Add
BASEDIRto environement [#4913 @rjbou] - Replace opam bin path [#4913 @rjbou]
- Add
grep -vcommand [#4913 @rjbou] - Apply grep & seds on file order [#4913 @rjbou]
- Precise
OPAMTMPregexp,hexainstead of'alphanumto avoid confusion withBASEDIR[#4913 @rjbou] - Hackish way to have several replacement in a single line [#4913 @rjbou]
- Substitution in regexp pattern (for environment variables) [#4913 @rjbou]
- Substitution for opam-cat content [#4913 @rjbou]
- Allow one char package name on repo [#4966 @AltGr]
- Remove opam output beginning with
###[#4966 @AltGr] - Add
<pin:path>header to specify incomplete opam files to pin, it is updated from a template in reftest run (no lint errors) [#4966 @rjbou] - Unescape output [#4966 @rjbou]
- Clean outputs from opam error reporting block [#4966 @rjbou]
- Avoid diff when the repo is too old [#4979 @AltGr]
- Escape regexps characters in string replacements primitives [#5009 @kit-ty-kate]
- Automatically update default repo when adding a package file [#5004 @AltGr]
- Make all the tests work on macOS/arm64 [#5019 @kit-ty-kate]
- Make all the tests work on archlinux/arm64 [#5252 @kit-ty-kate]
- Add unix only tests handling [#5031 @AltGr]
- Add switch-set test [#4910 @kit-ty-kate]
- Replace vars on the right-hand of exports [#5024 @AltGr]
- Add
json-catprinter, with some automatic remplacements [#5143 @rjbou] - Add some tests showing how --working-dir behaves on updated dependency constraints [#5179 @kit-ty-kate]
- Add config (report) test [#4892 @rjbou]
- Add
sed-cmdcommand to replace resolved path command printing by command name only [#5285 @rjbou] - Update sed-cmd to handle commands without any arguments [#5257 @kit-ty-kate]
- Make the binary name of opam the same accross platforms (used when testing invalid commands) [#5308 @kit-ty-kate]
- Handle cygpaths for opamp binary path [#5308 @rjbou]
- Add solver backends compile test [#4723 @rjbou] [2.1.0~rc2 #4720]
- Fix ocaml link (http -> https) [#4729 @rjbou]
- Separate code from install workflow [#4773 @rjbou]
- Specify whitelist of changed files to launch workflow [#473 @rjbou]
- Update changelog checker list [#4773 @rjbou]
- Launch main hygiene job on configure/src_ext changes [#4773 @rjbou]
- Add opam.ocaml.org cache to reach disappearing archive [#4865 @rjbou]
- Update ocaml version frm 4.11.2 to 4.12.0 (because of macos failure) [#4865 @rjbou]
- Add a depext checkup, launched only is
OpamSysInteractis changed [#4788 @rjbou] - Arrange scripts directory [#4922 @rjbou]
- Run ci on tests changes [#4966 @rjbou]
- GHA: Fix caching for the "test" job [#5090 @dra27 @kit-ty-kate]
- Add gentoo depext test [#5067 @rjbou]
- Add more constraint path for launch of workflow [#5067 @rjbou]
- Upgrade packages for sovler jobs, in case depext changed [#5010 @rjbou]
- Fix github safe directory issues in depext workflow [#5153 @rjbou]
- Update repo hash in depext workflow [#5153 @rjbou]
- Fix the archlinux script [#5218 @kit-ty-kate]
- Fix Cygwin Cache [#5281 @dra27]
- fish: fix deprecated redirection syntax
^[#4736 @vzaliva] - dash: recognize dash as a POSIX shell for opam env [#4816 @jonahbeckford]
- pwsh,powershell: use $env: for opam env [#4816 @jonahbeckford]
- command prompt: use SET for opam env [#4816 @jonahbeckford]
- Standardise
macOSuse [#4782 @kit-ty-kate] - Fix
spantag in mannual [#4855 @rjbou - fix #4848] - Add
avoid-versiondoc [#4896 @AltGR - fix #4864] - Document custom licenses [#4863 @kit-ty-kate - fix #4862]
- Add OpenBSD & FreeBSD in the precompiled binaries list [#5001 @mndrix]
- install.md: fix brew instructions, spelling [#4421 @johnwhitington]
- document the options of OpamSolver.dependencies [#5040 @gasche @Armael]
- Add github
git://protocol deprecation note [#5097 @rjbou] - Add src_ext/HACKING.md [#5095 @dra27]
- Fix URL for the developer manual in README.md [#5165 @omnisci3nce]
- Update package versions for Ubuntu in distributions list
- Fix typo in External Solvers docs [#5167 @metanivek]
- Fix URL for opam-publish in README.md [#5168 @cnmade]
- Fix typo in
OpamArg[@hannesm #5175] - Fix
OpamAction.install_packagedocumentation [#5215 @rjbou - fix #5207] - Fix the documentation of OPAMFIXUPCRITERIA and --criteria [#5226 @kit-ty-kate]
- Finer definition of the --ignore-constraints-on documentation [#5289 @kit-ty-kate]
- Up-to-date synchronisation with shell session in switch man page: mention shell hooks [#5311 @rjbou - fix #5307]
- Fix info for IRC channels in README.md and FAQ.md [#5340 @purplearmadillo77]
- Update
--cudfmanpage description to specify what is the<n>(n(the solver-cal) [#5343 @kit-ty-kate]
OpamStd.ABSTRACT: addcompareandequal, that added those functions toOpamCLIVersion[#4918 @rjbou]OpamConfigCommand: add a labelled argumentno_switchtoexec[#4957 @kit-ty-kate]OpamClient: fixupdate_with_init_config, when ``jobswas set ininit_config`, it dropped rest of `config` update [#5056 @rjbou]- Add an optional argument to
OpamArg.mk_subdocfor extra default elements:?extra_defaults:(validity * string * string) list[#4910 @kit-ty-kate] - Add
OpamSwitchCommand.previous_switch[#4910 @kit-ty-kate] OpamClient:requestedargument moved fromname_package_settopackage_set, to precise installed packages with--best-effort[#4796 @LasseBlaauwbroek]OpamConfigCommand:set_opt_switch,set_var_switch,options_list_switch, andvar_list_switchnow raise configuration error exception (50) if no switch is found [#5027 @rjbou]OpamArgs,OpamArgTools: addexperimentaloptional argument tocli_fromand replacedefaultbyoption:['experimental | 'ëefault]forcli_between, to handle experimental features [#5099 @rjbou]- OpamAction:
prepare_package_sourcecan now take any switch state (previously requiredrw) [#4850 @rjbou] OpamClient: handle formula on several functions, adding aformulalabelled or optional argument (upgrade_t,compute_upgrade_t,upgrade,fixup,install_t,install,remove_t, andremove) [#4975 @AltGr]OpamSolution: addprint_requestedto print actions reasons [#4975 @AltGr]OpamSolution.apply: take an optional argumentskip, to avoid filtering solution beforehand [#4975 @AltGr]OpamAction: add?toolsfiltering argument inbuild_package,install_package[#5016 @rjbou]OpamListCommand: add?toolsfiltering argument independency_toggles[#5016 @rjbou]OpamPinCommand,OpamClient,OpamAuxCommands: useOpamStateTypespin record types [#5080 @rjbou]OpamPinCommand.fetch_all_pins: return the list of well fetched pins instead of fetched urls [#5080 @rjbou]OpamAuxCommand: add?locked(and handle lock file then) argument toname_and_dir_of_opam_file,opams_of_dir,opams_of_dir_w_target,resolve_locals,autopin, andsimulate_autopin[#5080 @rjbou]OpamClient.PIN: change?locked:boolargument intostring, to have lock extension name [#5080 @rjbou]OpamClient.Pin.post_pin_action: no more updates depexts information, moved toOpamSwitchState.update_pin[#5047 @rjbou]OpamArgTools: all flag definition takes now a section as a labelled argument [#5275 @rjbou]OpamArg: all flag definition takes now a section as an optional argument, default is set toManpage.s_options[#5275 @rjbou]- Add
OpamTreeCommand[#5171 @cannorin] OpamSolution: adddry_runto simulate the new switch state after applying a solution [#5171 @cannorin]OpamArg: externalisepost,dev,doc_flag,test, anddevsetuppackage selection flags, to avoid redefining them [#5299 @rjbou]OpamConfigCommand.global_allowed_fields: addarchive-mirrors(dl_cache) to allowed modifiable fields, extendable [#5321 @hannesm @rjbou]OpamClient.update_with_init_config: Fix passing thedl_cachefromInitConfigtoConfig[#5315 @hannesm]
OpamRepositoryConfig: add in config recordrepo_tarringfield and as an argument to config functions, and a new constructorREPOSITORYTARRINGinEenvironment module and its access function [#5015 @rjbou]- New download functions for shared source, old ones kept [#4893 @rjbou]
OpamClient.filter_unpinned_locallynow display a warning of skipped packages instead of debug log [#5083 @rjbou]OpamSolution.parallel_apply: fix sources_needed package set, now integrate requested but not locally pinned packages [#5082 @rjbou]- Add
?subpathtoOpamRepository.fetch_dev_packages,OpamVCS.is_up_to_dateand vcs specific functions inOpamDarcs,OpamHG, andOpamGit[#4876 @rjbou] OpamRepositoryConfig.E: addcurl_tandfetch_tto get their respective environement vairbales value dynamically, without lazyness. It is used inopamClient.InitDefaults, that can be called at topelevel [#5111 @rjbou]OpamRepository.update: Return a change state result of the repo update [#5043 @Armael]OpamVCS.VCS: add acleanfunction to the interface clearing all the uncommited files [#4879 @rjbou]OpamVCS.pull_url: clean repository before fetching [#4879 @rjbou]
OpamSwitchState.universe:requestedargument moved fromname_package_settopackage_set, to precise installed packages with--best-effort[#4796 @LasseBlaauwbroek]OpamSwitchState.universe: add a chrono for universe loading [#4975 @AltGr]OpamSwitchState.universe: set to false unresolved variables used in constraint, and warn [#5141 @rjbou - fix #5139]OpamStateConfig: add with-tools support ; i.e. addE.withtools, addwith_toolsin config record [#5016 @rjbou]OpamPackageVar: add?toolsfiltering argument infilter_depends_formula,all_depends[#5016 @rjbou]OpamSwitchState: add?toolsfiltering argument inuniverse[#5016 @rjbou]OpamStateTypes: Add record types for to pin and pinned packages informations (in order to avoid n-uplet withngrowing) ;name_and_file,name_and_file_w_url,nameopt_and_file,nameopt_and_file_w_url, andpinned_opam[#5080 @rjbou]OpamPinned: use pin record types [#5080 @rjbou]OpamPinned: add?locked:string(and handle lock file then) argument tofiles_in_source, andname_of_opam_filename[#5080 @rjbou]OpamPinned: when looking at opam files, keep (and return) information about its locked origin [#5080 @rjbou]OpamUpdate.pinned_package: use locked information to automatically update from locked file if present, if?autolockis given to true [#5080 @rjbou]OpamSwitchState.update_pin: updates depexts state informations (sys_packages,avalaible_packages) [#5047 @rjbou]OpamSysInteract: addpackage_manager_name[#5268 @rjbou]OpamSysInteract.install_packages_command: change return type to(['AsAdmin of string | 'AsUser of string] * string list) list[#5268 @kit-ty-kate]OpamUpdate: changerepositoryoutput to update function option, to not write cache and new repo config if nothing changed inrepositories[#5146 @rjbou]- Add
OpamPinned.version_opt[#5325 @kit-ty-kate] - Add optional argument
?env:(variable_contents option Lazy.t * string) OpamVariable.Map.ttoOpamSysPollandOpamSysInteractfunctions. It is used to get syspolling variables from the environment first. [#4892 @rjbou] OpamSwitchState: move and reimplementopam-solverdependenciesandreverse_dependencies[#5337 @rjbou]
OpamCudf: Change type ofconflict_case.Conflict_cycle(string list listtoCudf.package action list list) andcycle_conflict,string_of_explanations,conflict_explanations_rawtypes accordingly [#4039 @gasche]OpamCudf: addconflict_cycles[#4039 @gasche]OpamCudf: addtrim_universe[#5024 @AltGr]OpamSolver.cudf_versions_map: no more takes a package set as argument, compute whole packages (repo + installed) and take accounet of invariant [#5024 @AltGr]OpamSolver.load_cudf_universe: change staging ofadd_invariant[#5024 @AltGr]OpamSolver.coinstallable_subset: addadd_invariantoptional argument [#5024 @AltGr]OpamSolver.installable: useinstallable_subsetthat usescoinstallable_subset[#5024 @kit_ty_kate]OpamSolver.explicit: when adding fetch nodes, add shared source ones. Change ofsources_neededargument type [#4893 @rjbou]OpamActionGraph.to_aligned_strings: addexplicitoptional argument to print action name in utf8 [#5045 @AltGr]OpamSolver.print_solution: change output format [#5045 @AltGr]OpamSolver,OpamCudf: Several changes to handle installation from a formula [#4975 @AltGr]OpamCudf: addtrim_universe,opam_deprequest_package_name, andopam_deprequest_package[#4975 @AltGr]OpamCudf.print_solution: add optionalskip, to avoid filtering solution beforehand [#4975 @AltGr]OpamCudf.filter_solution: can do not remove recursively actions with optional~recursive:true[#4975 @AltGr]OpamSolver,OpamCudf: removedependenciesandreverse_dependencies[#5337 @rjbou]
- Exposed
with_*functions inOpamFile.Dot_install[#5169 @panglesd] OpamStd.ABSTRACT: addcompareandequal, that added those functions toOpamSysPkgandOpamVariable[#4918 @rjbou]- Add OpamPackage.Version.default returning the version number used when no version is given for a package [#4949 @kit-ty-kate]
- Add
OpamPath.Switch.man_dirs[#4915 @rjbou] OpamFile.Config: order list of installed switches according their last use, updatewith_switchaccordingly, and addprevious_switch[#4910 @AltGr]- Change ``Fetch` action to take several packages, in order to handle shared fetching of packages [#4893 @rjbou]
OpamFile.OPAM.to_string_with_preserved_format: handle substring errors [#4941 @rjbou - fix #4936]OpamFile.OPAM.effective_partandOpamFile.OPAM.effectively_equalnow take an optional?modulo_state:boolparameter, that iftrue, eliminates the fields relying on the state of the switch (depends, available, …). This isfalseby default. [#5118 @kit-ty-kate]OpamTypes:request.wish_installnow takes a formula instead of a conjunction [#4975 @AltGr]OpamFilter: add?toolsfiltering argument infilter_deps[#5016 @rjbou]OpamFile.OPAM: Addlocked, file origin and extension, in the record with its modifiers/getter [#5080 @rjbou]OpamFile.OPAM.effective_part: empty extra-source url if checksum is specified and take first one (as for url) [#5258 @kit-ty-kate]OpamFile.OPAM.effectively_equal: return true if an extra-source url changes but not its checksum (as for url) [#5258 @kit-ty-kate]OpamFormula: add genericformula_to_cnfandformula_to_dnf, and use them into_cnfandto_dnf[#5171 @cannorin]OpamFilter: add?customargument into_stringto tweak the output [#5171 @cannorin]
- OpamSystem: avoid calling Unix.environment at top level [#4789 @hannesm]
OpamStd.ABSTRACT: addcompareandequal, that added those functions toOpamFilename,OpamHash,OpamStd,OpamStd,OpamUrl, andOpamVersion[#4918 @rjbou]OpamHash: addsortfrom strongest to weakest kindOpamSystem.real_path: Remove the double chdir trick on OCaml >= 4.13.0 [#4961 @kit-ty-kate]OpamProcess.wait_one: display command in verbose mode for finished found process [#5091 @rjbou]OpamStd.Config.E: add aREMOVEDvariant to allow removing completely an environment variable handling [#5112 @rjbou]OpamHash: addis_nullOpamStd.Sys: addget_windows_executable_variantto use instead ofis_cygwin_variant[#4817 @jonahbeckford]OpamSystem.copy_dir: two-passrsynccopy forMSYS2, to handle symlinks [#4817 @jonahbeckford]OpamSHA: use now onlysha, some function removed (shaxxx,shaxxx_bytes, etc.) [#5042 @kit-ty-kate]OpamCoreConfig.r: remove openssl related config:use_opensslparameter & config field, andOPAMUSEOPENSSLenvironment variable [#5042 @kit-ty-kate]OpamFilename: add aSubPathsubmodule to handle multi-platform subpath specifications. It has an effect on a lot of functions signatures [#4876 @rjbou]OpamDirTrack: Addto_summary_stringto summarise changes [#5144 @na4zagin3]OpamJson: useJsonmand add anof_stringfunction [#5142 @rjbou]OpamStd.Config.E: addvalue_tto allow getting environment variable value dynamically [#5111 @rjbou]OpamCompat.Unix: addrealpathfor ocaml < 4.13, and use it inOpamSystem[#5152 @rjbou]OpamCompat: addLazymodule andLazy.mapfunction [#5176 @dra27]OpamStd.Sys: addall_shellslist of all supported shells [#5217 @dra27]OpamUrl: addto_string_w_subpathto display subpath inside urls (before hash) [#5219 @rjbou]OpamFilename.SubPath: removepretty_stringin favor toOpamUrl.to_string_w_subpath[#5219 @rjbou]OpamConsole: add aTreesubmodule to draw a unicode/ascii-art tree [#5171 @cannorin]OpamStd.List: addfind_map_opt(for ocaml < 4.10) andfold_left_map(for ocaml < 4.11) [#5171 @cannorin]OpamCompat: addInt.equal(for ocaml < 4.12)OpamFilename.clean_dir: as the directory is recreated after removal, checks that the directory exists beforhand. It avoid creating a new empty directory uselessly [#4967 @rjbou]OpamStd.Map: addfilter_map[#5337 @rjbou]OpamStd.Set: Addto_list_map[#5308 @kit-ty-kate]