Skip to content

Incompatability with ppx_deriving_qcheck #453

@adamsmd

Description

@adamsmd

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions