Closed Halbaroth closed 1 month ago
I don't see a reason to test using 4.14.1 now that 4.14.2 is out. We can update the pinned nixpkgs if we want consistency with the nix version.
Couple questions:
In the current version of this PR, the CI on OCaml 4.08 and 5.0 uses only one constraint: the version of OCaml. In my opinion, the main purpose of the lock file is to automatize bisections and most of the time, it is sufficient to do it with our dev environment. Checking our code works with older version of libraries is made by the CI of opam-repository. We can reproduce this behaviour here. Basically the CI of opam-repository checks if our package builds with a smallest solution of the constraints on its dependencies. In my opinion, it makes more sense than checking arbitrary version of libraries.
All the current conflicts can be solved by choosing precise versions of libraries. Windows' support adds an extra layer of complexity when we have to choose the library.
In the current version of this PR, the CI on OCaml 4.08 and 5.0 uses only one constraint: the version of OCaml.
But they are still using the lockfile (at least the workflow sets OPAMLOCKED
), which now (I suppose — you did not include the new lockfile in the PR, which I assume is an omission) explicitly states the version of OCaml to use. I admit I am not 100% up to date on how lockfiles work but I thought that would not work.
@bclement-ocp It seems I cannot ping you for this review, uhm strange. Anyway, this PR is ready for a second pass.
In the current version of our workflow, we use an opam lock file to ensure that we can reproduce builds. Unfortunately, there are different conflicts depending on the plateform and OCaml version. We use a hack to prevent opam from saving the version of OCaml's toolchain (see the target
lock
in our Makfile). This hack is not sufficient if we want to use the current workflowbuild
on Windows.This PR modifies the workflow
build
and the Makefile as follows:-y
in the targetdev-switch
,deps
andtest-deps
because we useOCAMLYES
in our workflows and Makefile's users want to check dependencies before running a slow task asopam switch create
oropam install
.