Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opam depext --with-test/with-doc shouldn't try to get test/doc depexts recursively #121

Closed
kit-ty-kate opened this issue May 24, 2019 · 7 comments · Fixed by ocaml/opam#3923

Comments

@kit-ty-kate
Copy link
Contributor

There is a weird error in the following PR ocaml/opam-repository#14175:

[ERROR] No solution for eqaf.0.4: The following dependencies couldn't be met:
          - eqaf → crowbar → xmldiff → xmlm < 1.3.0 → ocaml < 4.06.0
              base of this switch (use `--unlock-base' to force)
Command failed: opam list --readonly --with-test --external  --resolve=eqaf.0.4 returned 20

opam-depext fails with this when called with opam depext --with-test (added in #120) but crowbar only depends on xmldiff "with-test". So it seems that opam list --with-test doesn't have the same behaviour as opam install --with-test as it looks for every tests dependencies recursively and not just in the given package as opam install --with-test does.

@rjbou
Copy link
Contributor

rjbou commented May 24, 2019

@AltGr Is it volunteer to not have the same behavior on with-test variable propagation between install & list operations ?

@AltGr
Copy link
Contributor

AltGr commented May 24, 2019

probably not, it's historical. We need to hurry with integration of depext handling to avoid these consistency issues

@AltGr
Copy link
Contributor

AltGr commented May 24, 2019

but the issue would be in opam list, since that's what depext calls to get the list of tags to resolve.

@AltGr
Copy link
Contributor

AltGr commented May 24, 2019

(more precisely, opam list --resolve=PKGS --with-test)

@rjbou
Copy link
Contributor

rjbou commented May 24, 2019

but the issue would be in opam list, since that's what depext calls to get the list of tags to resolve.

Yes, if an opam issue there is, i.e. should --resolve comply with opam install results ?

@kit-ty-kate
Copy link
Contributor Author

Should I open an opam issue instead?

@rjbou
Copy link
Contributor

rjbou commented Jul 10, 2019

@kit-ty-kate PR opened!

kit-ty-kate added a commit to kit-ty-kate/ocaml-ci that referenced this issue Oct 14, 2019
talex5 pushed a commit to talex5/ocaml-ci that referenced this issue Oct 14, 2019
kit-ty-kate added a commit to kit-ty-kate/opam-repository that referenced this issue Sep 12, 2020
mseri added a commit to ocaml/opam-repository that referenced this issue Sep 12, 2020
Mitigate test dependency cycle (ocaml-opam/opam-depext#121) between base, dune-configurator and csexp
fdopen added a commit to fdopen/opam-repository-mingw that referenced this issue Sep 13, 2020
Mitigate test dependency cycle (ocaml-opam/opam-depext#121) between base, dune-configurator and csexp
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jan 28, 2024
No response from MAINTAINER, and this update enables the internal solver
to build and be usable at runtime

Changes prefixed with "(*)" are potentially breaking to scripts or existing
repositories (changes that are automatically handled by the format upgrade tools
are not marked). Those prefixed with "(+)" are new command/option (since
2.1.0~alpha2).

2.1.3:
* [BUG] Fix `opam init` and `opam init --reinit` when the `jobs` variable has
  been set in the opamrc or the current config. [#5056 @rjbou]
* 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]
* [BUG] Fix an internal error on repository upgrade from OPAM 1.2
  [#4965 @AltGr]
* 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]
* 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]
* [BUG] `opam var` no longer fails if no switch is set
  [#5027 @rjbou - fix #5025]
* [BUG] 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]
* [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]
* [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]
* Stop Zypper from upgrading packages on updates on OpenSUSE
  [#4978 @kit-ty-kate]
* Clearer error message if a command doesn't exist
  [#4971 @kit-ty-kat - fix #4112]
* [BUG] Remove windows double printing on commands and their output
  [#4940 @rjbou]
* Actually allow multiple state caches to co-exist
  [#4934 @dra27 - actually fixes #4554]
* 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]
* Fix some empty conflict explanations
  [#4982 @kit-ty-kate - partially fix #4373]
* Port some tests from master [#4841 #4974 #4861 #4915 #4979 #5004 #5006 #5015
  #5024 #5025 #5031 #5131 #5176 @AltGr @dra27 @kit-ty-kate]
* Update test engine to allow for additional tests [#4913 #4966 #4979 #5004
  #5009 #5024 #5097 @AltGr @kit-ty-kate @rjbou]
* Update for git protocol deprecation on GitHub [#5097 @rjbou]
* When building opam, do not fail if curl/wget is missing [#5223 #5233 @kit-ty-kate]

2.1.2:
* 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:
* Fix typo in error message for opam var [#4786 @kit-ty-kate - fix #4785]
* Run the sandbox check in the temporary directory [#4787 @dra27 - fix #4783]
* OpamSystem: avoid calling Unix.environment at top level [#4789 @hannesm]
* Homebrew: Add support for casks and full-names [#4801 @kit-ty-kate]
* Fix the cold target in presence of an older OCaml compiler version on macOS
  [#4802 @kit-ty-kate - fix #4801]
* 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]
* Handle empty environment variable updates - missed cherry-pick from 2.0
  [#4840 @dra27]
* Fix vendored build on mingw-w64 with g++ 11.2 [#4835 @dra27]
* 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 reverting environment additions to PATH-like variables when several dirs
  added at once [#4861 @dra27]
* Fix dose3 download url since gforge is gone [#4870 @avsm]
* Ensure setenv can use package variables defined during the build
  [#4841 @dra27]
* Fix `set-invariant: default repos were loaded instead of switch repos
  [#4866 @rjbou]

2.1.0:
* Set DEBIAN_FRONTEND=noninteractive for unsafe-yes confirmation level
  [#4735 @dra27 - partially fix #4731]
* Fix 2.1~alpha2 to 2.1 format upgrade with reinit [#4750 #4756 @rjbou - fix #4748]
* Fix bypass-check handling on reinit [#4750 @rjbou]
* fish: fix deprecated redirection syntax `^` [#4736 @vzaliva]
* Bump src_exts and fix build compat with Dune 2.9.0 [#4754 @dra27]
* Fix depext alpine tagged repositories handling [#4758 @rjbou]

2.1.0~rc2:
* Remove OPAMZ3DEBUG evironment variable [#4720 @rjbou - fix #4717]
* Fix format upgrade when there is missing local switches in the config file
  [#4715 @rjbou - fix #4713]
* Fix not recorded local switch handling, with format upgrade [#4715 @rjbou]
* Set opam root version to 2.1 [#4715 @rjbou]
* Improved and extended tests [#4715 @rjbou]

2.1.0~rc:
* (*) Environment variables initialised only at opam client launch, no more via
  libraries [#4606 #4703 @rjbou]
* (*) Deprecated `build-doc`, `build-test`, `make` flags [#4581 @rjbou]
* (+) Add `--confirm-level` and `OPAMCONFIRMLEVEL` for automatic answering
  [#4582 @rjbou - fix #4168; #4683 @dra27 - fix #4682; #4691 @rjbou - fix #4682]
* (+) Add `--no` [#4582 @rjbou]
* (+) Add a `--with-0install-solver` option to the configure script to enable
  the 'builtin-0install' solver [#4646 @kit-ty-kate]
* Add default cli mechanism: deprecated options are accepted (in the major
  version) if no cli is specified [#4575 @rjbou]
* Add `opam config` deprecated subcommands in the default cli
  [#4575 @rjbou - fix #4503]
* Add cli versioning for opam environment variables [#4606 @rjbou]
* Add cli versioning for enums of flags with predefined enums [#4606 @rjbou]
* Clearer messages about using --cli and OPAMCLI [#4655 @dra27]
* The options `--root` and `--switch` are now reflected in environment
  variables when building packages so that calls to `opam` during build access
  the correct root and switch [#4668 @LasseBlaauwbroek]
* Add cli versioning for enums of flags with predefined enums [#4626 @rjbou]
* Preprocess `--confirm-level` for plugins calls/install [#4694 @rjbou]
* Ensure the symlink for a plugin is maintained on each invocation
  [#4621 @dra27 - partially fixes #4619]
* Initialise environment variables for plugins call/install [#4582 @rjbou]
* Expect plugins to end in .exe on Windows [#4709 @dra27]
* Introduce a `default-invariant` config field, restore the 2.0 semantics for
  `default-compiler` [#4607 @AltGr]
* Fix default invariant with no system compiler [#4644 @AltGr - fix #4640]
* Perform an hard upgrade on intermediate roots, ie root from `2.1~alpha/beta`,
  and keep a light upgrade from `2.0` [#4638 @rjbou]
* Send the 'opam root layout update' message to stderr [#4692 @AltGr]
* If opam root is different from the binary, allow reading it and try to read
  in best effort mode [#4638 @rjbou - fix #4636]
* Don't check opam system dependencies on reinit after a format upgrade
  [#4638 @rjbou]
* Fix `sys-ocaml-cc`, `sys-ocaml-arch` and `sys-ocaml-libc` when no system
  compiler installed [#4706 @dra27]
* Fix `Not_found` (config file) in config report [#4570 @rjbou]
* Config report: Print variables of installed compilers and their (installed)
  dependencies [#4570 @rjbou]
* Don't patch twice file [#4529 @rjbou]
* With `--deps-only`, set dependencies as root packages
  [#4964 @rjbou - fix #4502]
* Keep global lock only if root format upgrade is performed
  [#4612 @rjbou - fix #4597]
* Improve installation times by only tracking files listed in `.install`
  instead of the whole switch prefix when there are no `install:` instructions
  (and no preinstall commands)
  [#4494 @kit-ty-kate @rjbou; #4667 @dra27 - fix #4422]
* Scrub OPAM* environment variables added since 2.0 from package builds to
  prevent warnings when a package calls opam [#4663 @dra27 - fix #4660]
* Correct the message when more than one depext is missing [#4678 @dra27]
* Only display one conflict message when they are all owing to identical
  missing depexts [#4678 @dra27]
* Don't exclude base packages from rebuilds (made some sense in opam 2.0 with
  base packages but doesn't make sense with 2.1 switch invariants) [#4569 @dra27]
* Don't refer to base packages in messages any more
  [#4623 @dra27 - fixes #4572]
* Give the correct command when demonstrating switch creation
  [#4675 @dra27 - fixes #4673]
* On switch loading, if invariant is inferred and a write lock required, write
  the file [#4638 @rjbou]
* Don't look for lock files for pin depends [#4511 @rjbou - fix #4505]
* Fetch sources when pinning an already pinned package with a different url
  when using working directory [#4542 @rjbou - fix #4484]
* Don't ask for confirmation for pinning base packages (similarly makes no
  sense with 2.1 switch invariants) [#4571 @dra27]
* Fix version pin source retrieving: mustn't error if archive opam file is
  malformed [#4580 @rjbou]
* `opam list --silent` renamed to `--check` [#4595 @dra27 - fix #4323]
* Include doc field in opam-show [#4567 @dra27 - partially fix #4565]
* Fix `switch` global variable resolving [#4685 @rjbou - fix #4684]
* Fix `hash` package variable resolving [#4687 @rjbou]
* Lint: Fix W59 & E60 for conf packages (no url required)
  [#4550 @rjbou - fix #4549]
* Lint: Fix W59 & E60 with VCS urls, don't check upstream if url has VCS
  backend [#4635 @rjbou]
* Lint: Add E67 checksum specified with non archive url [#4635 @rjbou]
* Lint: Disable subpath warning E63,W64 [#4638 @rjbou]
* Lint: Fix manpage listing [#4708 @rjbou]
* Don't write lock file with `--read-only', `--safe`, and `--dryrun`
  [#4562 @rjbou - fix #4320]
* Make `opam lock` consistent with `opam install`, on local pin always take
  last opam file even if uncommitted [#4562 @rjbou - fix #4320]
* Opam file: Fix `features` parser [#4507 @rjbou]
* Opam file: Rename `hidden-version` to `avoid-version` [#4527 @dra27]
* Opam file: Fix rewriting with preserved format empty field error
  [#4634 @rjbou - fix #4628]
* Opam file: Switch config: Defined `invariant` field as an option to
  differentiate when it is not defined [#4638 @rjbou]
* Opam file: Differentiate bad format from bad (opam) version with
  `Bad_version` exception, raised from `OpamFormat.check_opam_version`
  [#4638 @rjbou]
* Opam file: Always print the `opam-version` field on files [#4638 @rjbou]
* Opam file: Config: add `opam-root-version` field as a marker for the whole
  opam root [#4638 @rjbou - fix #4636]
* Opam file: Add `BestEffort` modules with reading functions that don't show
  errors, given the `opam_file_format` internal field [#4638 @rjbou - fix #4636]
* Depext: Handle macport variants [#4509 @rjbou - fix #4297]
* Depext: Always upgrade all the installed packages when installing a new
  package on Archlinux [#4556 @kit-ty-kate]
* Depext: Handle some additional environment variables (`OPAMASSUMEDEPEXTS`,
  `OPAMNODEPEXTS`) [#4587 @AltGr]
* Depext: Improve messages to hint that answering `no` doesn't abort
  installation [#4591 @AltGr]
* Depext: Add support for non-interactive mode in macports [#4676 @kit-ty-kate]
* Depext: Handling of packages of tagged repositories for alpine
  [#4700 @rjbou - fix #4670]
* Depext: Clarify some `assume-depexts` related messages
  [#4671 @AltGr - partial fix #4662]
* Depext: Warn the user if epel-release is missing and unavailable depexts are
  detected [#4679 @dra27 fix #4669]
* Depext: Ignore config yes automatic answering when asking confirmation to run
  install commands [#4698 @rjbou - fix #4680]
* Sandbox: Fix the conflict with the environment variable name used by dune
  [#4535 @smorimoto - fix ocaml/dune#4166]
* Sandbox: Kill builds on Ctrl-C with bubblewrap
  [#4530 @kit-ty-kate - fix #4400]
* Sandbox: Linux: mount existing TMPDIR read-only, re-bind `$TMPDIR` to a
  separate tmpfs [#4589 @AltGr]
* Sandbox: Fix the sandbox check [#4589 @AltGr]
* Sandbox: Fix sandbox script shell mistake that made `PWD` read-write on
  remove actions [#4589 @AltGr]
* Sandbox: Port bwrap improvements to sandbox_exec [#4589 @AltGr]
* Sandbox: Fix realpath use for macos, partial revert of #4589 [#4609 @AltGr]
* Add missing shell quoting to support space and special shell characters in
  switch directory path [#4707 @kit-ty-kate]
* Rename `state.cache` to include the `OpamVersion.magic()` string. All .cache
  files are deleted if any cache file is written to, allowing multiple versions
  of the library to co-exist without constantly regenerating it
  [#4642 @dra27 - fix #4554]
* Fix Cudf preprocessing [#4534 #4627 @AltGr - fix #4624]
* Allow to upgrade to a hidden-version package if a hidden-version package is
  already installed [#4525 @kit-ty-kate]
* Add support for a few select criteria useful to CI to the 0install solver:
  `+count[version-lag,solution]` to always choose the oldest version available,
  `+removed` to not try to keep installed packages [#4631 @kit-ty-kate]
* Fix opam-devel's tests on platforms without openssl, GNU-diff and a
  system-wide ocaml [#4500 @kit-ty-kate]
* Use dune to run reftests [#4376 @emillon]
* Restrict `extlib` and `dose` version [#4517 @kit-ty-kate]
* Restrict to `opam-file-format.2.1.2` [#4495 @rjbou]
* Require `opam-file-format.2.1.3+` in order to enforce `opam-version: "2.1"`
  as first non-comment line [#4639 @dra27 - fix #4394]
* Switch to newer version of MCCS (based on newer GLPK) for src_ext
  [#4559 @AltGr]
* Bump dune version to 2.8.2 [#4592 @AltGr]
* Bump the minimal dune requirement to dune 1.11 [#4437 @dra27 @kit-ty-kate]
* 4.12 compatibility [#4437 @dra27 @kit-ty-kate]
* Cold compiler updated to 4.12 [#4616 @dra27]
* Fix build from source when a dune-project file is presented in the parent
  directory [#4545 @kit-ty-kate]
* Fix build from source when a dune-project file is presented in the parent
  directory [#4545 @kit-ty-kate - fix #4537]
* Fix opam-devel.install not to install two files called opam [#4664 @dra27]
* Build release tags as non-dev versions, as for release tarballs
  [#4665 @dra27 - fix #4656]
* Disable dev version for tests (needed for format upgrade test) [#4638 @rjbou]
* Add a hint for missing `openssl` in `make cold` [#4702 @rjbou]
* Remove test field from opam-devel, they need the network [#4702 @rjbou]
* Update src_ext for Dune and MCCS [#4704 @dra27]
* Release scripts: switch to OCaml 4.10.2 by default, add macos/arm64 builds by
  default [#4559 @AltGr]
* Release scripts: add default cli version check on full archive build
  [#4575 @rjbou]
* Arg: Generalise `mk_tristate_opt` to `mk_state_opt` [#4575 @rjbou]
* Arg: Fix `mk_state_opt` and rename to `mk_enum_opt` [#4626 @rjbou]
* Arg: Add `mk_enum_opt_all` for state flags that appears more than once
  [#4582 @rjbou]
* Fix `opam exec` on native Windows when calling cygwin executables
  [#4588 @AltGr]
* Fix temporary file with a too long name causing errors on Windows
  [#4590 @AltGr]
* CLI: Add flag deprecation and replacement helper [#4595 @rjbou]
* Win32 Console: fix VT100 support [#3897 #4710 @dra27]
* Tidied the opam files [#4620 @dra27]
* Externalise cli versioning tools from `OpamArg` into `OpamArgTools`
  [#4606 @rjbou]
* Each library defines its own environment variables, that fills the config
  record [#4606 @rjbou]
* Harden cygpath wrapper [#4625 @dra27]
* Reset the plugin symlinks when the root is upgraded
  [#4641 @dra27 - partial fix for #4619]
* Formalise opam dev version detection with `OpamVersion.is_dev_version`
  [#4665 @dra27]
* Add `OpamStd.String.is_prefix_of` [#4694 @rjbou @dra27]
* Fix `OpamStd.Format.pretty_list`: `last` argument dropped if list contains
  more than 2 elements [#4694 @rjbou]
* Run the shell hooks with closed stdin (bash, zsh) [#4692 @AltGr]
* Improved and extended tests
  [#4376 #4504 #4545 #4612 #4668 #4612 #4634 #4672 #4638 #4702 #4697 #4697
  @AltGr @dra27 @emillon @rjbou]
* Improve Github Actions
  [#4593 #4575 #4610 #4610 #4618 #4606 #4695 #4695 @AltGr @dra27 @rjbou]
* Improve documentation
  [#4496 #4506 #4513 #4637 #4681 #4702
  @dannywillems @eth-arm @kit-ty-kate @rjbou @UnixJunkie]


2.1.0~beta4:
* (*) Implemented CLI version compatibility layer [#4385 @rjbou]
* (*) Return code 31 (`Sync_error`) instead of code 40
  (`Package_operation_error`) when all failures happend during fetching
  [#4416 @rjbou - fix #4214]
* (+) Add `--download-only` flag [#4071 @Armael @rjbou - fix #4036]
* (+) Provide `opam update --depexts` to request an update of the system package manager databases [#4379 @AltGr - fix #4355]
* Set OPAMCLI=2.0 during package action commands [#4492 @kit-ty-kate]
* Fix sandbox check on first `opam init` [#4370 @rjbou - fix #4368]
* Print shell-appropriate eval command on `opam init` [#4427 @freevoid]
* Fix init script check in csh [#4482 @gahr]
* The stdout of `pre-` and `post-session` hooks is now propagated to the user [#4382 @AltGr - fix #4359]
* `post-install` hooks are now allowed to modify or remove installed files [#4388 @lefessan]
* Add support for switch-specific pre/post sessions hooks [#4476 @rjbou - fix #4472]
* Ensure we don't advertise upgrades to hidden versions [#4477 @AltGr - fix #4432]
* Fix `opam remove --autoremove <PKG>` to not autoremove unrelated packages [#4369 @AltGr - fix #4250 #4332]
* Fix cases where `opam remove -a` could trigger conflicts in the presence of orphan packages [#4369 @AltGr - fix #4250 #4332]
* Fix `--update-invariant` when removing or changing package name [#4360 @AltGr - fix #4353]
* Fix updates of the invariant with `--update-invariant` [#4431 @AltGr]
* Fix cleanup of build dirs for version pinned packages [#4436 @rjbou - fix #4255]
* Fix opamfile format upgrade on pinning [#4366 @rjbou - fix #4365]
* Fix `pin --show` actually pinning [#4367 @rjbou - fix #4348]
* When several pins are needed, do their fetching in parallel [#4399 @rjbou - fix #4315]
* Don't cleanup VCS pin source directories [#4399 @rjbou]
* Fix `--working-dir` with local switches [#4433 @rjbou]
* Add package variable `opamfile-loc`, containing the location of installed package opam file [#4402 @rjbou]
* Fix `arch` detection when using 32bit mode on ARM64 [#4462 @kit-ty-kate]
* Fix `arch` detection of i486 [#4462 @kit-ty-kate]
* Skip loading the switch state for variable lookup when possible [#4428 @rjbou]
* Fix package variables display when no config file is found [#4428 @rjbou]
* Fix `opam option depext-bypass-=["XXX"]` [#4428 @rjbou]
* Lint: add a check that strings in filtered package formula are booleans or variables [#443 @rjbou - fix #4439]
* Fix handling of filename-encoded pkgname in opam files [#4401 @AltGr - fix ocaml-opam/opam-publish#107]
* Don't recompile when modifying the package flags [#4477 @AltGr]
* Add depext support for NetBSD and DragonFlyBSD [#4396 @kit-ty-kate]
* Fix depexts on OpenBSD, FreeBSD and Gentoo: Allow short names and full name paths for ports-based systems [#4396 @kit-ty-kate]
* Handle the case where `os-family=ubuntu` as `os-family=debian` [#4441 @alan-j-hu]
* Update opam's opam files to 2.0 [#4371 @AltGr]
* Makefile: Add rule `custom-libinstall` for `opam-custom-install` use [#4401 @AltGr]
* Use the archive caches when running `opam admin cache` [#4384 @AltGr - fix #4352]
* Fix explosion of `opam admin check --cycles` on repositories with huge cliques [#4392 @AltGr]
* Much improved format-preserving printer [#4298 #4302 @rjbou - fix #3993]
* Fix missing conflict message when trying to remove required packages [#4362 @AltGr]
* Fix the Z3 backend for upgrades [#4393 @AltGr]
* Fix cases where opam would wrongly complain about action cycles [#4358 @AltGr - fix #4357]
* Fix permission denied fallback for openssl [#4449 @Blaisorblade - fix #4448]
* Add debug & verbose log for patch & subst applications [#4464 @rjbou - fix #4453]
* Be more robust w.r.t. new caches updates when `--read-only` is not used [#4467 @AltGr - fix #4354]
* Improved and extended tests [#4375 #4395 #4428 #4385 #4467 #4475 #4483 @emillon @rjbou @AltGr @freevoid @dra27]
* Switched to Github actions [#4463 @rjbou]

2.1.0~beta2:
* Reduced startup times, in particular for `opam exec` [#4341 @AltGr]
* Fixed the sandboxing check on fresh inits [#4342 @AltGr]
* Fixed cases where `--with-version` was not respected by `opam pin` [#4346 @AltGr]
* Upgraded the bootstrap OCaml compiler from 4.09.1 to 4.11.1 [#4242 @avsm @dra27 @MisterDA @rjbou]

2.1.0~beta:
* (*) `--cli` / `OPAMCLI` option added [#4316 @dra27]
* `--help/--version` documented in wrong section for aliases [#4317 @dra27]
* `opam lock --help` missing common information {#4317 @dra27]
* (+) `--yes` passed to all commands, and plugins [#4316 @dra27]
* On init, check availability of sandbox and propose to disable
  [#4284 @rjbou - fix #4089]
* config upgrade: on the fly upgrade if no write lock required [#4313 @rjbou]
* (*) Add `pin scan` subcommand to list available pins [#4285 @rjbou]
* (*) Add `--normalise` option to print a normalised list when scanning, that can
  be taken by `opam pin add` [#4285 @rjbou]
* (*) Add `with-version` option to set the pinned package version [#4301 @rjbou]
* Add error message in case git repo is empty [#4303 @rjbou - fix #3905]
* Lock: Support -d as alias of --direct-only (to match plugin) [#4319 @dra27]
* Switch: Support -n as an alias of --no-action (to match opam-pin)
  [#4324 @dra27]
* List: <field> form no longer advertised as valid for --columns [#4322 @dra27]
* Admin: <field> form no longer advertised as valid for --columns in list
  [#4322 @dra27]
* Solver: Don't penalise packages with more recent 'hidden-versions'
  [#4312 @AltGr]
* `OpamCommand.pin` refactor, including adding `OpamClient.PIN.url_pins` to pin
  a list of package with url  [#4285 #4301 @rjbou]
* `OpamPinCommand.source_pin', for new package confirmation, don't check that
  no opam file is given as argument [#4301 @rjbou]
* CLI: Provide all functions in the client library [#4329 @AltGr]
* Process: don't display status line if not verbose, and status line disabled
  [#4285 @rjbou]
* Optimise package name comparison [#4328 @AltGr - fix #4245]

2.1.0~alpha3:
* Confirmation on non-compiler switch invariant: not on dryrun, Y by default
  [#4289 @AltGr]
* (*) Fix pin kind automatic detection consistency [#4300 @rjbou]: With `opam
  pin target', when opam file is not versioned and at root, vcs-pin the package
  instead of path-pin, and with `opam pin add nv target', take opam file even
  if not versioned.
* External dependencies: Fix non-interactive mode on OpenSuse [#4293
  @kit-ty-kate]
* src-ext: bump topkg to 1.0.2 and dune to 2.6.2, with a second compiler
  built in case main one is < 4.07.0 (dune restriction) [#4294 @dra27]
* Allow Z3 backend to return sub-optimal solutions on timeout, add
  `OPAMSOLVERALLOWSUBOPTIMAL` environment variable [#4289 @AltGr]
* Add an optional solver relying on opam-0install-cudf [#4240 @kit-ty-kate]

2.1.0~alpha2:
* Remove m4 from the list of recommended tools [#4184 @kit-ty-kate]
* Fix config solver field ignored at init [#4243 @rjbou - fix #4241]
* Fix atoms formula restriction with `--all` at upgrade [#4221 @rjbou - fix
  #4218]
* Copy instead of calling rsync when archives are in a local cache [#4270
  @kit-ty-kate]
* Opam file build using dune, removal of opam-%.install makefile target
  [#4178 @rjbou #4229 @kit-ty-kate - fix #4173]
* Use version var in opam file instead of equal current version number in
  opamlib dependencies [#4178 @rjbou]
* src ext: fix extlib url [#4248 @rjbou]
* Add `_build` to rsync exclusion list [#4230 @rjbou - fix #4195]
* Recursive opam file lookup: ignore `_build` [#4230 @rjbou]
* Assume-built fix & rewriting [#4211 @rjbou]
* Fix autoremove env var handling [#4219 @rjbou - fix #4217]
* Fix Not_found with `opam switch create . --deps` [#4151 @AltGr]
* Package Var: resolve self `name` variable for orphan packages [#4228 @rjbou
  - fix #4224]
* (*) Reject (shell) character on switch names [#4237 @rjbou - fix #4231]
* Fix `OPAMSWITCH` empty string setting, consider as unset [#4237 @rjbou]
* opam-installer: For paths, remove use of empty switch in favor of a
  context-less module [#4237 @rjbou]
* Add missing depext to unavailable reasons [#4194 @rjbou #4279 @rjbou - fix
  #4176]
* (*) Bump config file version to 2.1 (new depext fields) [#4280 @rjbou - fix
  #4266]
* Add depext handling on new pinned packages [#4194 @rjbou - fix #4189]
* Don't keep unpinned package version if it exists in repo [#4073 @rjbou -
  fix #3630]
* Fix path resolving when pinning with `file://` [#4209 @rjbou - fix #4208]
* (*) Disable recursive & subpath pinning (only present experimentally in opam
  2.1.0~alpha) [#4252 @rjbou]
* Add switch depext-bypass as modifiable field [#4194 @rjbou - fix #4177]
* Add `--no-depexts` option to disable depexts packages unavailability [#4194
  @rjbou - fix #4205]
* Warn if packages are not listed because of depexts unavailability [#4194
  @rjbou - fix #4205]
* (*) Display error message for all not found packages [#4179 @rjbou - fix
  #4164]
* (*) Keep package order given via cli [#4179 @rjbou - fix #4163]
* `--sort`` apply to with all options, not only `--just-file` [#4179 @rjbou]
* Add scope display to Not found message [#4192 @rjbou]
* No scope needed for variable display [#4192 @rjbou - fix #4183]
* Fix package variable resolution [#4192 @rjbou - fix #4182]
* opam option: Fix messages advertising a command in an obsolete format
  [#4194 @rjbou]
* E65: check that url local paths are absolute [#4209 @rjbou]
* Fix arch query depext [#4200 @rjbou]
* Add message when adding a package to `depext-bypass` [#4194 @rjbou]
* Fix performance issue of depext under Docker/debian [#4165 @AltGr]
* Handle debian virtual packages [#4269 @AltGr @rjbou - fix #4251]
* Refactor `OpamSysInteract` package status [#4152 #4200 @rjbou]
* Add environment variables handling on depext query [#4200 @rjbou]
* Add depext Macport support [#4152 @rjbou]
* Homebrew/depext: add no auto update env var for install, accept `pkgname`
  and `pkgname@version` on query [#4200 @rjbou]
* Tag packages with missing depexts in Cudf [#4235 @AltGr]
* Force LC_ALL=C for depext query commands [#4200 @rjbou]
* Put back opam-depext-2.0's behaviour with regards to asking users' consent
  before installing system packages [#4168 @kit-ty-kate @rjbou]
* Add OPAMDEPEXTYES env variable to pass --yes options to system package
  manager [#4168 @kit-ty-kate @rjbou]
* Fix system install command dryrun [#4200 @rjbou]
* (+) Add --depext-only to install only external dependencies, regardless of
  config depext status [#4238 @rjbou]
* Move system install confirmation message after opam packages install [#4238
  @rjbou]
* Error if '--depext-only' is given with '--assume-depexts' or '--no-depexts'
  [#4238 @rjbou]
* Sanddbox: no error when linked directory doesn't exist (e.g. XDG defined)
  [#4278 @kit-ty-kate]
* Sandbox: add quotes to avoid space unwanted behaviors [#4278 @kit-ty-kate]
* Fix temp files repository cleaning [#4197 @rjbou]
* Fix admin cache synchronisation message [#4193 @rjbou - fix #4167]
* Fix mismatching extra files detection [#4198 @rjbou]
* Fix Cudf generation for compat with external solvers [#4261 @AltGr]
* Check for a solution before calling the solver [#4263 @AltGr]
* Add the package flag 'hidden-version' to discourage selection by the solver
  [#4281 @AltGr]
* Tweak the default criteria to handle 'missing-depexts' and 'hidden-version'
  flags [#4281 @AltGr]
* Disable chrono when timestamps are disables [#4206 @rjbou]
* Expose some functionality in the `OpamAction`, `OpamPath` and
  `OpamSwitchState` modules for use without a `switch` value (introduce a
  functor to permit replicating switch layout in different contexts) [#4147
  @timberston]
* Std: Add map_reduce to Set and Map [#4263 @AltGr]
* Fix regression in command resolution from #4072 (ocaml code for looking up
  commands in PATH) [#4265 @dra27]
* Use OCaml 4.09.1 for the make cold target [#4257 @dra27]
* Add show cram test [#4206 @rjbou]
* Add envrionnement variable handling on cram test [#4206 @rjbou]


2.1.0~alpha:
* Recursive & subpath based pin [#3499 @rjbou @hngrgr - fix #3174 #3477]
* Define switch invariants rather than "base packages" [#3894 @AltGr]
* Don't warn on switch creation with 'ocaml' as invariant [#4108 @AltGr]
* Better error handling on switch creation [#4121 @AltGr]
* Integrate lock plugin [#3746 @rjbou - fix #3734 #3769 #3694]
* Add configuration modifications as opam config subcommands [#3992 @rjbou]
* opam var and opam option outside of opam config [#4116 @rjbou - fix #4119]
* Enable option var optimisation switch load [#4138 @rjbou]
* Integrate depext plugin [#3975 @rjbou @AltGr - fix #3790 #1519 #2426 #3692]
* Enable command/output display only from verbose level 3 [#4141 @rjbou]
* Add `opam install --check <pkg>` checks that `<pkg>` dependencies are already
  installed in the switch. It reports missing ones and exits with 1, 0 otherwise.
  It is used on a check only purpose, additionally to `--deps-only`.
  [#3854 @rjbou - fix #3823]
* Add `opam install <pkg> --ignore-conflicts` to use with `--deps-only` in case
  it is needed to install dependencies without taking conflicts into account.
  [#3853 @rjbou - fix #3846]
* Add `opam show --just-file <file>` shows information of a given file,
  without loading the switch state. It can be combined with other options, as
  field filter `--field`. It deprecates `--file` option. [#3729 @rjbou - fix
  #3721]
* Add `opam show --all-versions <pkg>` displays information of all versions of
  the given package. It can be used in combination of field filter. [#3867 @rjbou
  - fix #2980]
* Add `opam show --sort <pkg>` display on stdout a sorted opam file: all fields
  are alphabetically sorted. [#3866 @rjbou - fix ocaml-opam/opam2web#173]
* opam show better error handling. [#4118 @rjbou - fix #3875]
* `opam show --field` are no longer required to end with a colon.
  [#3931 @rjbou]
* (*) `opam show --normalise` disable terminal width wrapping. [#3868 @rjbou -
  fix #3751]
* `opam env --check` permit to indicates if an opam environment is
  synchronized: returns 0 if up-to-date, 1 otherwise. [#4074 @rjbou - fix #3725]
* Add `opam switch export --freeze` to record VCS commit hash when a VCS url is
  specified. [#4055 @hannesm]
* Add `opam switch export --full` option, include extra-files in switch export,
  on import create an overlay directory with the file contents. [#4040 @hannesm]
* Optimize repository loading: we store the repository contents as .tar.gz
  files in ~/.opam/repo instead. [#3752 @AltGr - fix #3721]
* Handle failure or interruption of tar during `opam update`. [#3861 @AltGr]
* Fallback in case repository archive doesn't exist. [#4008 @rjbou]
* In case repository archive is corrupted, delete it and ask to launch an
  update. [#4075 @rjbou - fix #4053]
* When adding a repository, an error is displayed in case of mismatching urls,
  now both urls are displayed. [#4086 @rjbou - fix #4085]
* Handle url backend change to VCS of a package from repository. [#4007 @rjbou
  - fix #3991]
* Allow local compiler switch creation. [#3720 @rjbou - fix #3713]
* Switch creation, fix multiple compiler candidate. [#3884 @rjbou - fix #3874]
* Make reinstall handling stricter. [#3907 @AltGr]
* (*) `opam list --resolve`: restrain test dependencies to direct one instead of
  listing all test dependencies of queried package(s) [#3923 @rjbou - fix
  ocaml-opam/opam-depext#121]
* Update pin-depends confirmation message to add a skip option. [#3852 @rjbou -
  fix #3840]
* Add OPAMDROPWORKINGDIR environment variable for C. [#3792 @rjbou - fix #3727]
* Don't restrain copy to versioned file. [#3759 @rjbou]
* Don't fetch sources when working-dir is set. [#4046 @rjbou]
* Update in place source copy: [#3948 @rjbou]
  - review `sync_dirty` on VCS:
    - use VCS to synchronize, then rsync & remove others files
    - exclude `_build`, `_opam` & VCS directories
  - when `--inplace-build` is given, it does a dirty synchronization of the
    sources, in order to keep tracking package stats (clean, local or dirty).
* Fix `working-dir` messages on update command. [#3824 @rjbou]
* Working-dir fixes. [#3982 @rjbou]
* Update download errors handling during actions processing. [#3811 @AltGr]
* Update `ftp` command, to pass url last. [#3910 @hannesm]
* Terminate (with double dashes) list of command-line download option.
  [#3913 @cfcs]
* Repository: remove 'file://' prefix for darcs. [#3761 @rjbou]
* Opam{Git,Hg}: Fix diffs in presence of binary file. [#3879 @kit-ty-kate]
* Set core.autocrlf and core.eol for Git remotes. [#3882 @dra27]
* Add a git clean on `reset_tree` to keep source dir clean. [#3948 @rjbou]
* Lint W62: Add a lint check for SPDX license. [#3976 @AltGr]
* Lint: add result in json output. [#3848 @rjbou - fix #3046]
* Add lint codes in manpage. [#3903 @rjbou]
* Default configuration file: add `getconf` to required tools. [#3813 @rjbou]
* Clarify message in `opam init --yes`. [#3892 @dra27]
* Shell setup: don't advice an infinite sourcing loop. [#3832 @rjbou]
* Default configuration file: Add compilation target globals, `sys-ocaml-arch,
  `sys-ocaml-cc`, and `sys-ocaml-libc`. [#3900 @dra27]
* Ensure that environment is initialized lazily, not before init functions are
  called [#4111 @gasche]
* Fix OPAMLOGS handling, and logdir `opam_init` argument [#4117 @rjbou - fix
  #4076]
* Include base packages configuration variables in opam config report.
  [#3798 @dra27]
* Determine jobs number at launch (`OpamStateConfig`) [#4004 @rjbou - fix
  #3986]
* Fully test native Windows in the testsuite. [#3260 @dra27]
* Allow native Windows to use Cygwin tool. [#3348 @dra27]
* Deal with Windows path conventions (backslashes, .exe, etc.) [#3350 @dra27]
* Correct display of dir separator on Windows. [#3893 @dra27]
* Tested wrong variable in OPAMW_HasGlyp. [#3898 @dra27]
* Default use `fetch` on FreeBSD, `ftp` on OpenBSD. [#3904 @hannesm]
* Don't overwrite user's sandbow script modification. [#4020 #4092 @rjbou]
* Handle `CCACHE_DIR` environment variable in sandbox script. [#4087 @rjbou -
  fix #4079]
* Follow links of `~/.cache` & `~/.cache/dune` for bwrap call. [#4087 @rjbou -
  fix #4086]
* On MacOS sandbox script, always read write mount `/tmp` [#3742 @rjbou - fix
  ocaml/opam-repository#13339]
* Environment file right handling for empty switch. [#3899 @dra27]
* Add colon for fish MANPATH fix. [#4084 @rjbou - fix #4078]
* Update zsh check interactive terminal [#4095 @OCamlPro-mattiasdrp #4128
  @AltGr]
* Add package selection to `opam admin add-hashes` [#3787 @rjbou - fix #3767]
* Download files (patches, etc.) using a safe filename. [#3900 @dra27]
* `opam admin --add-constraints`, add constraint on depopts. [#4002 @rjbou -
  fix #3994]
* Add `format-version` field to all opam files. [#3478 @AltGr] [#3906 @AltGr]
* Clarify pin depend parse error. [#3762 @rjbou]
* Opam file extensions (`x-` fields) enhancement. [#4049 @hannesm]
* Add support for Z3 as a solver backend. [#3845 @AltGr]
* Interleave download actions with build/install actions. [#3777 @Armael]
  [#4083 @rjbou - fix #4080]
* Generalization of the job scheduler: provide separate job pools for different
  subsets of the tasks. [#3778 @AltGr]
* Refactor the return types of `OpamSolution.{apply,resolve_and_apply}`
  [#3781 @Armael]
* Use the scheduler pools to respect the download-jobs parameter.
  [#3791 @AltGr]
* Set the right opam file `format-version` field on upgrade. [#4014 @rjbou]
* Streamline the output from download action. [#3794 @AltGr]
* Use a character that displays better on terminals for download action. [
  #3802 @AltGr]
* Change symbol for download action. [#3862 @AltGr]
* Include the version number in "compilation failed" message. [#4052 @Armael]
* Propagate `--force` remove option to directory tracking revert function.
  [#4094 @rjbou - fix #4091]
* Add `OpamDirTack.string_of_changes` [#4107 @rjbou @hannesm]
* Introduce state `drop` function to replace `ignore (unlock ..)` for more
  lock-type-safety. [#3783 @gasche - #3812 @rjbou]
* Change `OpamStateTypes.switch_state.conf_files `from package_map` to
  `name_map` [#3799 @dra27]
* Fix handling of availability outside of switches. [#3864 @AltGr]
* Sorting formulas function. [#3945 @rjbou]
* Sort formula: fix `compare_formula` & add `compare` [#3960 @rjbou]
* Patch rewrite test. [#3456 @dra27]
* Command errors display: differentiate command not found & permission denied.
  [#3865 @rjbou]
* Factorize option functions in `OpamProcess` [#4016 @nobrakal]
* Use ocaml code for looking up commands in `PATH` [#4072 @Armael]
* Copy files using OCaml code instead of calling to cp or install
  [#4064 @Armael]
* Sort & clean pkg:depend. [#4060 @rjbou - fix #4057]
* Add `of_json` functions & crowbar. [#3776 @gasche]
* JSON (de)serialization for OpamParallel graph. [#3786 @gasche]
* Url: catch failure & specific exception. [#3946 @rjbou]
* Update: don't update installed dev package that is not pinned. [#3947 @rjbou]
* Use `OpamArg` helpers for option. [#4059 @rjbou]
* Steps towards sudo-enabled make install. [#3522 @dra27]
* Port build system to Dune (1.2) [#3618 @dra27]
* Update shell/msvs-detect to 0.4.0. [#3869 @dra27]
* Sort out repository script mode. [#3963 @dra27]
* Preliminary support for Dune 2.0. [#3965 @dra27]
* Update mccs.1.1+11 [#4109 #4146 @MisterDA]
* Fix developer mode option. [#3646 @rjbou]
* Ensure configure generates consistently. [#3935 @dra27]
* Documentation [#3542 @0xflotus] [#3571 @hannesm] [#3780 @gasche]
  [#3944 @tchajed] [#3955 @nbraud] [#4106 @vp2177] [#3863 @dra27] [#3554 @rjbou - fix
  #3540 #2255c #3612 #3606c] [#4058 @rjbou] [#4114 @rjbou @AltGr]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants