Skip to content

chore: update CI to OCaml 5.5 - #15446

Open
Alizter wants to merge 1 commit into
ocaml:mainfrom
Alizter:push-lmmktyrynlor
Open

chore: update CI to OCaml 5.5#15446
Alizter wants to merge 1 commit into
ocaml:mainfrom
Alizter:push-lmmktyrynlor

Conversation

@Alizter

@Alizter Alizter commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Description

Update the OCaml version used by CI and development tooling from 5.4 to 5.5.

This updates the opam CI matrix, benchmark workflow, local development switch,
tutorial, and Nix development shell. The flake inputs are refreshed for the
matching Melange 5.5 stack and include the MinGW OCaml 5.5 fixes needed by the
static Windows package set.

Package-set consistency

nix-overlays selects a post-0.38.0 ppxlib commit that no longer depends on
stdlib-shims, while opam installs the official ppxlib 0.38.0 release that
still declares this dependency. This made dune describe report different
dependency graphs in the two CI environments.

The Nix package set now uses nixpkgs ppxlib 0.38.0 release source, matching
opam and keeping the stdlib-shims dependency graph consistent across package
managers.

OCaml 5.5 test compatibility

OCaml 5.5 relocatable compiler lookup fails in tests that construct a restricted
PATH from symlinked compiler tools. Those tests now capture the real standard
library directory in OCAMLLIB before replacing PATH.

Findlib 1.9.8 also warns about the relative stub-library entries in OCaml 5.5
ld.conf. Tests that invoke findlib without exercising stub lookup set
OCAMLFIND_LDCONF=ignore, preventing those unrelated warnings from changing
cram output.

Related Issue and Motivation

The OCaml 5 release tested by CI and used by local development should track the
current release.

Fixes #15445

Validation

  • ./dune.exe build @check @fmt @runtest
  • Affected cram tests under the OCaml 5.5 Nix shell
  • Nix ppxlib and its reverse-dependency closure
  • git diff --check

Checklist

  • Existing tests cover the affected behavior.
  • No changelog entry is required for CI and test-environment changes.
  • The development tutorial uses OCaml 5.5.

@Alizter
Alizter force-pushed the push-lmmktyrynlor branch from 9b647e7 to 5ece035 Compare July 8, 2026 20:28

@shonfeder shonfeder left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@Alizter
Alizter force-pushed the push-lmmktyrynlor branch 2 times, most recently from 644cdb9 to 64d8a43 Compare July 8, 2026 21:28
@Alizter

Alizter commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

Current CI failure checklist:

  • Make dune describe expectations consistent across Nix and opam OCaml 5.5. Nix now uses the same ppxlib 0.38.0 release source as opam, so both dependency closures include stdlib-shims.

  • Preserve the real OCaml standard-library path in tests that fake PATH while hiding tools such as melc. The affected tests now set OCAMLLIB before constructing the restricted path.

  • Remove unrelated ocamlfind warning noise about relative stublibs entries. Tests that do not exercise stub lookup now set OCAMLFIND_LDCONF=ignore.

@Alizter
Alizter marked this pull request as draft July 9, 2026 11:56
@Alizter
Alizter force-pushed the push-lmmktyrynlor branch 2 times, most recently from 3288b9a to d17d4bb Compare July 24, 2026 17:44
@Alizter
Alizter marked this pull request as ready for review July 24, 2026 17:54
Update the opam and benchmark CI matrices, local development switch,
documentation, Nix shell, and Melange inputs to OCaml 5.5.

Use nixpkgs ppxlib 0.38.0 in the Nix package set so its
stdlib-shims dependency graph matches opam. Adapt tests for OCaml 5.5
relocatable compiler paths and findlib relative ld.conf entries.

Signed-off-by: Ali Caglayan <alizter@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

update OCaml version to 5.5

2 participants