2026-01-16 13:57.18: New job: test realworldocaml/mdx https://github.com/realworldocaml/mdx.git#refs/heads/main (5c97b27cf8723d87fd00d350b75e7f32f021c8d6) (linux-x86_64:alpine-3.22-5.4_opam-2.5) Base: ocaml/opam:alpine-3.22-ocaml-5.4@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5 Opam project build To reproduce locally: git clone --recursive "https://github.com/realworldocaml/mdx.git" -b "main" && cd "mdx" && git reset --hard 5c97b27c cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:alpine-3.22-ocaml-5.4@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5 # alpine-3.22-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 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && 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.21.0 dune-configurator.3.21.0 fmt.0.11.0 logs.0.10.0 lwt.6.0.0 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.3 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-01-16 13:57.18: Using cache hint "realworldocaml/mdx-ocaml/opam:alpine-3.22-ocaml-5.4@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5-alpine-3.22-5.4_opam-2.5-3e885998169855a0cc4d9665bebb64d9" 2026-01-16 13:57.18: Using OBuilder spec: ((from ocaml/opam:alpine-3.22-ocaml-5.4@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5) (comment alpine-3.22-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 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && 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 (network host) (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.21.0 dune-configurator.3.21.0 fmt.0.11.0 logs.0.10.0 lwt.6.0.0 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.3 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-01-16 13:57.18: Waiting for resource in pool OCluster 2026-01-16 17:02.51: Waiting for worker… 2026-01-16 17:07.27: Got resource from pool OCluster Building on eumache All commits already cached HEAD is now at 5c97b27 Merge pull request #472 from jonludlam/release-2.5.1 (from ocaml/opam:alpine-3.22-ocaml-5.4@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5) Unable to find image 'ocaml/opam:alpine-3.22-ocaml-5.4@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5' locally docker.io/ocaml/opam@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5: Pulling from ocaml/opam 2d35ebdb57d9: Already exists adfc86c1accf: Already exists d09377907434: Already exists a699cf44908b: Already exists c088e74f1f31: Already exists 7e99e6eaa847: Already exists db4b89a22482: Already exists f1f17593da04: Already exists bb79fbf72548: Already exists cf69890848e3: Already exists 80e325d6146c: Already exists 66a526c41d4c: Already exists 347d38b311ac: Already exists 984612fde4c4: Already exists 0ac0da982daa: Already exists 209c9bca9b0e: Already exists 3d3356d548ff: Already exists c072da09f122: Already exists 4f4fb700ef54: Already exists eff3d806a4a8: Already exists f5c413f5234b: Already exists 09ddc5430e22: Already exists 2c7c283b1afc: Already exists 4af9a971b585: Already exists df8d9be3e30d: Already exists 5e55ae3325a7: Already exists 635cb27b4304: Already exists 898fbde8ad42: Already exists 66c0ffc92413: Already exists c8cca855638d: Already exists 45d2501a899c: Already exists 10b0fe6926c2: Already exists 0a1d7b83a687: Already exists 2c3441915309: Already exists 3d1a575b1bb0: Already exists 6e5fa830b59d: Already exists 72225f5a6449: Already exists 76933219c737: Already exists e40a4a6bb223: Already exists 57877bdece39: Already exists 7f25b65fc90c: Already exists 83104ccb4b47: Already exists 448ea50ba83e: Already exists Digest: sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5 Status: Downloaded newer image for ocaml/opam@sha256:7d7dd1f15b5b094a8c6ec589b462e81fe5f982c5d6f2ac4af2e5e3dcdc1525e5 2026-01-16 17:07.28 ---> using "8e7368a35b514e2f693b7ef97549c85525e506baecfd9cb71dfa7c1285b9bf9e" from cache /: (comment alpine-3.22-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-01-16 17:07.28 ---> using "5de1607ed24a4d9a94f038b30a5d26051019ad9d567bd9b920207c8a8790958e" from cache /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-01-16 17:07.28 ---> using "9a9c4e5cee84ea1f4dd03ef20c73db2f8677135dce421b26bfc6a84a6e4cec86" from cache /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-01-16 17:07.28 ---> using "667074f5be2334a92415ceab74ec15bb59d47bdf0e2beb825eaa389555f40c78" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2026-01-16 17:07.28 ---> using "33c7b91e3a3fd17dd0b670dfb64c2fe390ea331270d4439429317512d6a40df2" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD a6b2f19780..92679ed614 master -> origin/master 873cb18c37 Merge pull request #29216 from shonfeder/release-dune-3.21.0 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Already up-to-date. Nothing to do. # To update the current shell environment, run: eval $(opam env) 2026-01-16 17:07.28 ---> using "4184b41a9a82b3669f30a95932bd76a185cc6536c8f133518b5ae3e7d0ad06aa" from cache /src: (copy (src mdx.opam) (dst ./)) 2026-01-16 17:07.28 ---> saved as "6ff366abebe9f9a2e5f7f07fac169ae0ff8423e8b98ad952a40e5f38d34b88d4" /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-01-16 17:07.34 ---> saved as "36d2f28f230d9501b509f888cb4d506469b71f9738139b17f85e6832fa7cc991" /src: (run (network host) (shell "echo '(lang dune 3.0)' > './dune-project'")) 2026-01-16 17:07.34 ---> saved as "7e2821a03e52ec5e2cea9d55acc8f3a834ccbc73d99cc1351fa9955688648654" /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.21.0 dune-configurator.3.21.0 fmt.0.11.0 logs.0.10.0 lwt.6.0.0 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.3 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 "apk" "update" - fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz - fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz - fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz - fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz - fetch https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz - v3.22.2-345-g80278e42c54 [https://dl-cdn.alpinelinux.org/alpine/v3.22/main] - v3.22.2-350-ga346423740a [https://dl-cdn.alpinelinux.org/alpine/v3.22/community] - v20251224-1517-g76c24b64e20 [https://dl-cdn.alpinelinux.org/alpine/edge/main] - v20251224-1496-g03a612442a1 [https://dl-cdn.alpinelinux.org/alpine/edge/community] - v20251224-1495-g0eba70fbcb6 [https://dl-cdn.alpinelinux.org/alpine/edge/testing] - OK: 60721 distinct packages available <><> 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-01-16 17:07.59 ---> saved as "2a948116c20817178df732963d5f924b2f72968025455036e4984320192d1818" /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.21.0 - install dune-configurator 3.21.0 - install fmt 0.11.0 - install logs 0.10.0 - install lwt 6.0.0 - install ocaml-syntax-shims 1.0.0 - install ocaml-version 4.0.3 - 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 ocaml-syntax-shims.1.0.0 (cached) -> retrieved ocaml-version.4.0.3 (cached) -> retrieved lwt.6.0.0 (cached) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved ocamlfind.1.9.8 (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.21.0, dune-configurator.3.21.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.21.0 -> installed csexp.1.5.2 -> installed camlp-streams.5.0.1 -> installed cppo.1.8.0 -> installed ocaml-syntax-shims.1.0.0 -> installed ocaml-version.4.0.3 -> installed re.1.14.0 -> installed result.1.5 -> installed stdlib-shims.0.3.0 -> installed ocplib-endian.1.2 -> installed alcotest.1.9.1 -> installed dune-configurator.3.21.0 -> installed lwt.6.0.0 -> installed logs.0.10.0 Done. # To update the current shell environment, run: eval $(opam env) 2026-01-16 17:09.46 ---> saved as "467f1dfa2e6132c8521cbc19ea4b702065b89806f43f1b4c950e934e7a913465" /src: (copy (src .) (dst /src)) 2026-01-16 17:09.47 ---> saved as "6eda2987c112b2b95604c95310fa6f32ac82fe5c78d1095c3c3fc0063e1b1539" /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 `RWKPF8YO'. [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.015s. 56 tests run. 2026-01-16 17:10.06 ---> saved as "1b3a5e6f548aad861cb511b4fa531d7ea90fa6e971db57a8a2ffc256a93aa0dc" Job succeeded 2026-01-16 17:10.06: Job succeeded