-
-
Notifications
You must be signed in to change notification settings - Fork 66
Description
It seems it is impossible to install bisect_ppx and ppx_deriving_qcheck at the same time.
I think this is because the declared dependency versions are non-overlapping in the versions in the opam repository, though the it looks like the dependency versions in the dune file in the GitHub might be updated and compatible.
(I am filing this against bisect_ppx and not ppx_deriving_qcheck because I think bisect_ppx is the one (perhaps unintentionally) placing an upper limit on the version number.)
Probable Cause
The version of bisect_ppx in the opam repositories has the dependency constraint: ppxlib >=0.28.0 & <0.36.0
The version of ppx_deriving_qcheck in the opam repositories has the dependency constraint: ppxlib >=0.36.0
Proposed Fix
I note that the bisect_ppx.opam in the GitHub repository has only the constraint: "ppxlib" {>= "0.28.0"}
Thus, perhaps deploying a new release to the opam repositories or providing instructions for how to install into an opam switch directly from the GitHub, would resolve this issue.
To reproduce
Create a fresh opam switch
$ opam switch create test2 5.4.0
<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><>
Switch invariant: ["ocaml-base-compiler" {= "5.4.0"} | "ocaml-system" {= "5.4.0"}]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⬇ retrieved ocaml-config.3 (cached)
∗ installed base-bigarray.base
∗ installed base-threads.base
∗ installed base-unix.base
∗ installed ocaml-options-vanilla.1
⬇ retrieved ocaml-compiler.5.4.0 (https://opam.ocaml.org/cache)
∗ installed ocaml-compiler.5.4.0
∗ installed ocaml-base-compiler.5.4.0
∗ installed ocaml-config.3
∗ installed ocaml.5.4.0
∗ installed base-domains.base
∗ installed base-effects.base
∗ installed base-nnp.base
Done.
# To update the current shell environment, run: eval $(opam env --switch=test2)
Try to use opam to install both ppx_deriving_qcheck and bisect_ppx
$ opam install ppx_deriving_qcheck bisect_ppx
[ERROR] Package conflict!
* No agreement on the version of ocaml-base-compiler:
- (invariant) → ocaml-base-compiler >= 5.4.0
- bisect_ppx → ocaml < 5.0 → ocaml-base-compiler < 4.14.3~
You can temporarily relax the switch invariant with `--update-invariant'
* No agreement on the version of ocaml-base-compiler:
- (invariant) → ocaml-base-compiler >= 5.4.0
- bisect_ppx → ppxlib < 0.36.0 → ocaml < 5.4.0 → ocaml-base-compiler < 5.3.1~
* Incompatible packages:
- (invariant) → ocaml-base-compiler >= 5.4.0
- bisect_ppx → ocaml < 5.0 → dkml-base-compiler
* Incompatible packages:
- (invariant) → ocaml-base-compiler >= 5.4.0
- bisect_ppx → ocaml < 5.0 → ocaml-variants
* Incompatible packages:
- (invariant) → ocaml-base-compiler >= 5.4.0 → ocaml-compiler = 5.4.0 → base-effects
- bisect_ppx → ocaml-migrate-parsetree
* Incompatible packages:
- (invariant) → ocaml-base-compiler >= 5.4.0 → ocaml-compiler = 5.4.0 → base-effects
- bisect_ppx → ppxlib < 0.36.0
* Missing dependency:
- bisect_ppx → ocaml-migrate-parsetree → ocaml-variants (= 4.08.0+beta2 | = 4.08.0+beta3)
no matching version
* Missing dependency:
- bisect_ppx → ocaml < 5.0 → ocaml-variants → ocaml-beta
unmet availability conditions: 'enable-ocaml-beta-repository'
* Missing dependency:
- bisect_ppx → ocaml < 5.0 → ocaml-variants → system-msvc
unmet availability conditions: 'os = "win32"'
No solution found, exiting