Switches to https://github.com/ocaml/setup-ocaml for the ocaml installation step. Adds a hazel.opam.locked file to keep track of exact dependency versions that we depend on. Also adds a dune-project file to manage project dependencies and it generates the hazel.opam file on dune build. So we can keep track of intentional vs unintentional dependency locking which should be useful for upgrading. Also intentionally caching the opam switch separately from the ocaml compiler itself which seems more deterministic as far as caches go.
Switches to https://github.com/ocaml/setup-ocaml for the ocaml installation step. Adds a
hazel.opam.locked
file to keep track of exact dependency versions that we depend on. Also adds adune-project
file to manage project dependencies and it generates thehazel.opam
file ondune build
. So we can keep track of intentional vs unintentional dependency locking which should be useful for upgrading. Also intentionally caching the opam switch separately from the ocaml compiler itself which seems more deterministic as far as caches go.The last cached build took about 3m https://github.com/hazelgrove/hazel/actions/runs/10115441982/job/27976209701