2026-03-23 09:24.49: New job: test realworldocaml/mdx https://github.com/realworldocaml/mdx.git#refs/heads/main (4607ca057db2fe8ecbad638ec906f4b24e554965) (linux-x86_64:ubuntu-25.10-5.4_opam-2.5) Base: ocaml/opam:ubuntu-25.10-ocaml-5.4@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67 Opam project build To reproduce locally: git clone --recursive "https://github.com/realworldocaml/mdx.git" -b "main" && cd "mdx" && git reset --hard 4607ca05 cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:ubuntu-25.10-ocaml-5.4@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67 # ubuntu-25.10-5.4_opam-2.5 USER 1000:1000 ENV CLICOLOR_FORCE="1" ENV OPAMCOLOR="always" WORKDIR /src RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam RUN opam init --reinit -ni RUN uname -rs && opam exec -- ocaml -version && opam --version WORKDIR /src RUN sudo chown opam /src RUN cd ~/opam-repository && (git cat-file -e b479391466e5245dda12ec6a6de5f4b13b6d603f || git fetch origin master) && git reset -q --hard b479391466e5245dda12ec6a6de5f4b13b6d603f && git log --no-decorate -n1 --oneline && opam update -u COPY --chown=1000:1000 mdx.opam ./ RUN opam pin add -yn mdx.dev './' RUN echo '(lang dune 3.0)' > './dune-project' ENV DEPS="alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-bytes.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base camlp-streams.5.0.1 cmdliner.2.1.0 cppo.1.8.0 csexp.1.5.2 dune.3.22.0 dune-configurator.3.22.0 fmt.0.11.0 logs.0.10.0 lwt.6.1.1 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.4 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 re.1.14.0 result.1.5 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4" ENV CI="true" ENV OCAMLCI="true" RUN opam update --depexts && opam install --cli=2.5 --depext-only -y mdx.dev $DEPS RUN opam install $DEPS COPY --chown=1000:1000 . /src RUN opam exec -- dune build @install @check @runtest && rm -rf _build END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2026-03-23 09:24.49: Using cache hint "realworldocaml/mdx-ocaml/opam:ubuntu-25.10-ocaml-5.4@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67-ubuntu-25.10-5.4_opam-2.5-3958cd1c3a5d9f3355c7bd5ce7a2452d" 2026-03-23 09:24.49: Using OBuilder spec: ((from ocaml/opam:ubuntu-25.10-ocaml-5.4@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67) (comment ubuntu-25.10-5.4_opam-2.5) (user (uid 1000) (gid 1000)) (env CLICOLOR_FORCE 1) (env OPAMCOLOR always) (workdir /src) (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam")) (run (shell "opam init --reinit -ni")) (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) (workdir /src) (run (shell "sudo chown opam /src")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e b479391466e5245dda12ec6a6de5f4b13b6d603f || git fetch origin master) && git reset -q --hard b479391466e5245dda12ec6a6de5f4b13b6d603f && git log --no-decorate -n1 --oneline && opam update -u")) (copy (src mdx.opam) (dst ./)) (run (network host) (shell "opam pin add -yn mdx.dev './'")) (run (shell "echo '(lang dune 3.0)' > './dune-project'")) (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-bytes.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base camlp-streams.5.0.1 cmdliner.2.1.0 cppo.1.8.0 csexp.1.5.2 dune.3.22.0 dune-configurator.3.22.0 fmt.0.11.0 logs.0.10.0 lwt.6.1.1 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.4 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 re.1.14.0 result.1.5 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4") (env CI true) (env OCAMLCI true) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y mdx.dev $DEPS")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) (copy (src .) (dst /src)) (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) ) 2026-03-23 09:24.49: Waiting for resource in pool OCluster 2026-03-23 10:02.52: Waiting for worker… 2026-03-23 10:07.55: Got resource from pool OCluster Building on eumache All commits already cached HEAD is now at 4607ca0 Merge pull request #475 from anmonteiro/anmonteiro/ocaml-5.5 (from ocaml/opam:ubuntu-25.10-ocaml-5.4@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67) Unable to find image 'ocaml/opam:ubuntu-25.10-ocaml-5.4@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67' locally docker.io/ocaml/opam@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67: Pulling from ocaml/opam 16c195d4c5e9: Already exists eef1e591e8a9: Already exists 475b07e782b4: Already exists 18fb99e993e1: Already exists ca37c6a45798: Already exists c57691858953: Already exists 5512f1558e14: Already exists 43fe003df081: Already exists 6e925d30090e: Already exists 3417bab79df5: Already exists 0aa36f5a555a: Already exists 474fc3d17365: Already exists 49a3768a5f63: Already exists c5abc7eafdff: Already exists 62941fb37fba: Already exists 378967450a13: Already exists b77cfa4e2ae3: Already exists cb268f925fd0: Already exists cb268f925fd0: Already exists 3bf4591bde94: Already exists 34a47fe3891d: Already exists 0e9e8d8d7a8c: Already exists 024b2f94e104: Already exists 4f4fb700ef54: Already exists 071fbbcf50f3: Already exists b43a2046bab2: Already exists f34036196a91: Already exists b07913c71979: Already exists f1c987ef231c: Already exists 1a8485ec060a: Already exists aa1dac00c891: Already exists 215e9614a861: Already exists 117130324f1d: Already exists edf62db1b518: Already exists 0db4778affc6: Already exists a7061a59a18a: Already exists 1a46a132d40e: Already exists e461a5dda351: Already exists baef187c60a6: Already exists 60fb67301e08: Already exists bf681241fc68: Already exists 23eaa9b4d484: Already exists 1c659a6a7694: Already exists dba14649d85a: Already exists 141dacab2962: Already exists 77e0ad4866d4: Already exists 401d82f13ac3: Already exists 29458acfee8b: Already exists 0f86b9a8699c: Already exists Digest: sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67 Status: Downloaded newer image for ocaml/opam@sha256:fef8e549d57e6bc872bbfcde9f96e896c31281f4865349518cb000e3667d4a67 2026-03-23 10:09.08 ---> saved as "a781d67ad57eb4ac231790d4a694bd40cad33d7e4b31ef1def44795689b32c1f" /: (comment ubuntu-25.10-5.4_opam-2.5) /: (user (uid 1000) (gid 1000)) /: (env CLICOLOR_FORCE 1) /: (env OPAMCOLOR always) /: (workdir /src) /src: (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam")) 2026-03-23 10:09.09 ---> saved as "abe213cdc34cea893280fdf44cd1cad04b0a7e440d2650b191efdd05f6df5c7e" /src: (run (shell "opam init --reinit -ni")) Configuring from /home/opam/.opamrc and then from built-in defaults. Checking for available remotes: rsync and local, git. - you won't be able to use mercurial repositories unless you install the hg command on your system. - you won't be able to use darcs repositories unless you install the darcs command on your system. This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted. You may want to back it up before going further. Continue? [Y/n] y [NOTE] The 'jobs' option was reset, its value was 255 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using: opam option jobs=255 --global Format upgrade done. <><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><> [default] Initialised 2026-03-23 10:09.57 ---> saved as "7659bfa6fdb9326b707eb9973ad8bcdf27440a4236f27ab86e5cd85886d159d5" /src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) Linux 5.15.0-131-generic The OCaml toplevel, version 5.4.0 2.5.0 2026-03-23 10:10.00 ---> saved as "d964b47b2ae170f14fe1436dc3eb59c3e2c6b43393eaab8966e7fb9cece21c97" /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2026-03-23 10:10.02 ---> saved as "ee14fa90ac6cc53c98770e42e923950defb8fc6d617d34e15b97a90e3fef1b0c" /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e b479391466e5245dda12ec6a6de5f4b13b6d603f || git fetch origin master) && git reset -q --hard b479391466e5245dda12ec6a6de5f4b13b6d603f && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD 4f056bfedf..63b7ba71be master -> origin/master b479391466 Merge pull request #29567 from mtelvers/opam-publish-ocaml-version.4.0.4 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.5.0"), which will ask permission to downgrade or uninstall the conflicting packages. Nothing to do. # To update the current shell environment, run: eval $(opam env) 2026-03-23 10:10.36 ---> saved as "7f3a166d7e1db51521a4986863a9e1a50253358533b565671f12ff351de7de4a" /src: (copy (src mdx.opam) (dst ./)) 2026-03-23 10:10.38 ---> saved as "d1855a70c86a56de5ea54ef62a6b552c74c61a1747e1c013c9a23fb4a1a78a5d" /src: (run (network host) (shell "opam pin add -yn mdx.dev './'")) [mdx.dev] synchronised (file:///src) mdx is now pinned to file:///src (version dev) 2026-03-23 10:10.43 ---> saved as "f3c0e0ab4016772b17d2ef9b2f4b035dff60096647b463f34c104bac7b1729fe" /src: (run (shell "echo '(lang dune 3.0)' > './dune-project'")) 2026-03-23 10:10.44 ---> saved as "a2837c1c912e3e1e87e214761283e886a4e984b9f4f85ecd21590f28bb4d380f" /src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-bytes.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base camlp-streams.5.0.1 cmdliner.2.1.0 cppo.1.8.0 csexp.1.5.2 dune.3.22.0 dune-configurator.3.22.0 fmt.0.11.0 logs.0.10.0 lwt.6.1.1 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.4 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 re.1.14.0 result.1.5 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4") /src: (env CI true) /src: (env OCAMLCI true) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y mdx.dev $DEPS")) + /usr/bin/sudo "apt-get" "update" - Get:1 http://security.ubuntu.com/ubuntu questing-security InRelease [136 kB] - Hit:2 http://archive.ubuntu.com/ubuntu questing InRelease - Get:3 http://archive.ubuntu.com/ubuntu questing-updates InRelease [136 kB] - Get:4 http://archive.ubuntu.com/ubuntu questing-backports InRelease [133 kB] - Get:5 http://security.ubuntu.com/ubuntu questing-security/universe amd64 Packages [194 kB] - Get:6 http://archive.ubuntu.com/ubuntu questing-updates/universe amd64 Packages [265 kB] - Get:7 http://archive.ubuntu.com/ubuntu questing-updates/main amd64 Packages [428 kB] - Get:8 http://security.ubuntu.com/ubuntu questing-security/main amd64 Packages [302 kB] - Fetched 1594 kB in 3s (554 kB/s) - Reading package lists... - <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> [mdx.dev] synchronised (file:///src) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 3). [NOTE] Package ocaml-compiler is already installed (current version is 5.4.0). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0). [NOTE] Package ocaml is already installed (current version is 5.4.0). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-nnp is already installed (current version is base). [NOTE] Package base-effects is already installed (current version is base). [NOTE] Package base-domains is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). # To update the current shell environment, run: eval $(opam env) 2026-03-23 10:11.08 ---> saved as "edf12a37a45b1fa729dd7ecffdbf47ea52613cbf6d5ae2e74bce7632c3611480" /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 3). [NOTE] Package ocaml-compiler is already installed (current version is 5.4.0). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0). [NOTE] Package ocaml is already installed (current version is 5.4.0). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-nnp is already installed (current version is base). [NOTE] Package base-effects is already installed (current version is base). [NOTE] Package base-domains is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following actions will be performed: === install 22 packages - install alcotest 1.9.1 - install astring 0.8.5 - install base-bytes base - install camlp-streams 5.0.1 - install cmdliner 2.1.0 - install cppo 1.8.0 - install csexp 1.5.2 - install dune 3.22.0 - install dune-configurator 3.22.0 - install fmt 0.11.0 - install logs 0.10.0 - install lwt 6.1.1 - install ocaml-syntax-shims 1.0.0 - install ocaml-version 4.0.4 - install ocamlbuild 0.16.1 - install ocamlfind 1.9.8 - install ocplib-endian 1.2 - install re 1.14.0 - install result 1.5 - install stdlib-shims 0.3.0 - install topkg 1.1.1 - install uutf 1.0.4 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved alcotest.1.9.1 (cached) -> retrieved astring.0.8.5 (cached) -> retrieved camlp-streams.5.0.1 (cached) -> retrieved cmdliner.2.1.0 (cached) -> retrieved cppo.1.8.0 (cached) -> retrieved csexp.1.5.2 (cached) -> retrieved fmt.0.11.0 (cached) -> retrieved logs.0.10.0 (cached) -> retrieved lwt.6.1.1 (cached) -> retrieved ocaml-syntax-shims.1.0.0 (cached) -> retrieved ocaml-version.4.0.4 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved ocplib-endian.1.2 (cached) -> retrieved re.1.14.0 (cached) -> retrieved result.1.5 (cached) -> retrieved stdlib-shims.0.3.0 (cached) -> retrieved uutf.1.0.4 (cached) -> retrieved topkg.1.1.1 (cached) -> retrieved dune.3.22.0, dune-configurator.3.22.0 (cached) -> installed cmdliner.2.1.0 -> installed ocamlbuild.0.16.1 -> installed ocamlfind.1.9.8 -> installed base-bytes.base -> installed topkg.1.1.1 -> installed uutf.1.0.4 -> installed fmt.0.11.0 -> installed astring.0.8.5 -> installed dune.3.22.0 -> installed ocaml-version.4.0.4 -> installed csexp.1.5.2 -> installed camlp-streams.5.0.1 -> installed cppo.1.8.0 -> installed ocaml-syntax-shims.1.0.0 -> installed result.1.5 -> installed stdlib-shims.0.3.0 -> installed re.1.14.0 -> installed ocplib-endian.1.2 -> installed alcotest.1.9.1 -> installed dune-configurator.3.22.0 -> installed lwt.6.1.1 -> installed logs.0.10.0 Done. # To update the current shell environment, run: eval $(opam env) 2026-03-23 10:13.02 ---> saved as "bd4d2e1f4442e33d99603f1cbd5e6e0818c2c7a078bbe1dfad8605a9d127d693" /src: (copy (src .) (dst /src)) 2026-03-23 10:13.05 ---> saved as "c396340bc26b512662c2db6d11ce7f264ab1487d55b32e85b995542876b403f8" /src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) (cd _build/default/test/lib && ./test_mdx_lib.exe) Testing `Mdx'. This run has ID `HPS2D614'. [OK] Block 0 Header.infer_from_file: "". [OK] Block 1 Header.infer_from_file: "foo". [OK] Block 2 Header.infer_from_file: "foo.bar". [OK] Block 3 Header.infer_from_file: "dune". [OK] Block 4 Header.infer_from_file: "dune-project". [OK] Block 5 Header.infer_from_file: "foo.sh". [OK] Block 6 Header.infer_from_file: "foo/foo/foo.ml". [OK] Block 7 mk: "invalid ocaml". [OK] Block 8 mk: "invalid toplevel". [OK] Label 0 raw_parse: "". [OK] Label 1 raw_parse: "foo=". [OK] Label 2 raw_parse: "foo<>bar". [OK] Label 3 raw_parse: "<bar". [OK] Label 4 raw_parse: "foo<=bar". [OK] Label 5 raw_parse: "foo>bar". [OK] Label 6 raw_parse: ">=". [OK] Label 7 raw_parse: "FOO_BAR=foo_bar". [OK] Label 8 interpret: "". [OK] Label 9 interpret: "foo". [OK] Label 10 interpret: "skip". [OK] Label 11 interpret: "skip". [OK] Label 12 interpret: "version". [OK] Label 13 interpret: "non-deterministic". [OK] Label 14 interpret: "dir". [OK] Label 15 interpret: "set-foo". [OK] Label 16 of_string: "". [OK] Label 17 of_string: ",". [OK] Label 18 of_string: "skip,". [OK] Label 19 of_string: "skip,file=foo.ml". [OK] Dep 0 of_block: "Empty". [OK] Dep 1 of_block: "file:toto.ml". [OK] Dep 2 of_block: "dir:tata/". [OK] Dep 3 of_block: "dir=tata/,skip". [OK] Dep 4 of_line: "block: file=tikitaka.ml". [OK] Dep 5 of_line: "skip + file + dir". [OK] Dep 6 to_sexp: file. [OK] Dep 7 to_sexp: dir. [OK] Syntax 0 infer: "". [OK] Syntax 1 infer: "test.md". [OK] Syntax 2 infer: "test.t". [OK] Syntax 3 infer: "test.ml". [OK] Syntax 4 infer: "test.mli". [OK] Syntax 5 infer: "no_ext". [OK] Util 0 String.english_conjonction: single. [OK] Util 1 String.english_conjonction: two. [OK] Util 2 String.english_conjonction: three. [OK] Util 3 String.english_conjonction: more. [OK] Parts 0 parse: "". [OK] Parts 1 parse: "foo". [OK] Parts 2 parse: " (* $MDX part-begin=bar *) ". [OK] Parts 3 parse: "(* $MDX part-begin=bar ". [OK] Parts 4 parse: " (* $MDX part-end *) ". [OK] Parts 5 parse: " [@@@part \"foobar\"] ". [OK] Parts 6 parse: "[@@@foo \"bar\"]". [OK] Parts 7 parse: "(* $MDX foo *)". [OK] Parts 8 parse: "(* $MDX part-end=foo *)". Full test results in `/src/_build/default/test/lib/_build/_tests/Mdx'. Test Successful in 0.010s. 56 tests run. 2026-03-23 10:13.22 ---> saved as "b620ae65533b9deaacb17bfe3e014b1cccbdc81e335226d503688314909ffeb4" Job succeeded 2026-03-23 10:13.23: Job succeeded