merlin icon indicating copy to clipboard operation
merlin copied to clipboard

CI failure

Open PizieDust opened this issue 3 months ago • 3 comments

When the CI runs, it fails with the log:

Run opam exec -- dune build @check
Entering directory '/home/runner/work/merlin/merlin'
File "irmin/duniverse/ppxlib/astlib/dune", lines 10-13, characters 0-94:
10 | (rule
11 |  (targets ast-version)
12 |  (action
13 |   (run %{ocaml} %{dep:config/gen.ml} %{ocaml_version})))
(cd _build/default/irmin/duniverse/ppxlib/astlib && /home/runner/work/merlin/merlin/_opam/bin/ocaml config/gen.ml 5.4.0)
Unknown OCaml version 5.4.0
File "irmin/duniverse/ppxlib/ast/dune", line 16, characters 5-58:
16 |      (run %{exe:pp/pp.exe} %{ocaml_version} %{input-file}))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(cd _build/.sandbox/75ac29a3e2509a443064b0b7f56d5e15/default && irmin/duniverse/ppxlib/ast/pp/pp.exe 5.4.0 irmin/duniverse/ppxlib/ast/versions.mli) > _build/.sandbox/75ac29a3e2509a443064b0b7f56d5e15/default/irmin/duniverse/ppxlib/ast/versions.pp.mli
Unknown OCaml version 5.4.0
File "irmin/duniverse/ppxlib/ast/dune", line 16, characters 5-58:
16 |      (run %{exe:pp/pp.exe} %{ocaml_version} %{input-file}))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(cd _build/.sandbox/1d3f17d59c00557c14acb4bdd25f714e/default && irmin/duniverse/ppxlib/ast/pp/pp.exe 5.4.0 irmin/duniverse/ppxlib/ast/versions.ml) > _build/.sandbox/1d3f17d59c00557c14acb4bdd25f714e/default/irmin/duniverse/ppxlib/ast/versions.pp.ml
Unknown OCaml version 5.4.0
Leaving directory '/home/runner/work/merlin/merlin'
Error: Process completed with exit code 1.

PizieDust avatar Nov 21 '25 06:11 PizieDust

https://github.com/ocaml/merlin/blob/main/.github/workflows/fuzzy-ci.yml#L42-L49

on line 42, we specify irmin 3.10.0 and on line 48/49 we specify ocaml.5.4.0 but if you check the opam.locked file for irmin 3.10.0 you will see it used ocaml 5.3.0

https://github.com/ocaml/merlin/blob/main/.github/fuzzy-ci-helpers/irmin.3.10.0.opam.locked#L43

so I think this is why the ci fails with Unknown OCaml version 5.4.0 probably ppxlib which is a dependency of irmin from the locked file of irmin was compiled with 5.3.0

if you see the release notes: ppxlib has support for ocaml 5.4 in v0.37.0

https://github.com/ocaml-ppx/ppxlib/releases/tag/0.37.0

our pin depends for the ci: https://github.com/ocaml/merlin/blob/main/.github/fuzzy-ci-helpers/irmin.3.10.0.opam.locked#L260-L261 pins ppxlib to 0.35.0

PizieDust avatar Nov 21 '25 06:11 PizieDust

After a few attempts, I was unable to get irmin.3.10.0 to use ocaml.5.4.0 due to some package conflicts. It appears that due to the dependency of ppx_repr, it requires ppxlib < 0.36.0, which is incompatible with ocaml.5.4.0.

I am not sure about what to do.

Lucccyo avatar Nov 21 '25 11:11 Lucccyo

One option is to wait for ppx_repr to be compatible with ppxlib >= 0.36.0. There is a PR opened: https://github.com/mirage/repr/pull/110

We could try to pin it too.

voodoos avatar Nov 21 '25 13:11 voodoos

As ppx_repr has been merged (https://github.com/mirage/repr/pull/110), we can now have irmin.3.10.0 on ocaml.5.4.0. New PR that runs the CI now succeeds on #2004, for example. To be sure, we need to verify if rerunning the tests fixes the issue on #1985.

Lucccyo avatar Dec 12 '25 14:12 Lucccyo

We are still waiting for the imminent (🌤️ @Julow ☀️) release of OCamlformat 0.28.2 for #1985.

Also #2004 does not run the fuzzy CI, so I don't think it's impacted anyway ?

voodoos avatar Dec 12 '25 14:12 voodoos