CI failure
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.
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
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.
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.
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.
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 ?