Organisationsocaml-ppxocamlformatb25c04 ()ubuntu-25.04-4.14_opam-2.5

ubuntu-25.04-4.14_opam-2.5

Logs

Show full logs
2026-03-03 16:31.30: New job: test ocaml-ppx/ocamlformat https://github.com/ocaml-ppx/ocamlformat.git#refs/heads/main (b25c048a73d31753f528719d9005eb63aa247979) (linux-x86_64:ubuntu-25.04-4.14_opam-2.5)
Base: ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d
Opam project build

To reproduce locally:

git clone --recursive "https://github.com/ocaml-ppx/ocamlformat.git" -b "main" && cd "ocamlformat" && git reset --hard b25c048a
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d
# ubuntu-25.04-4.14_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 302e116c4009da2f5a31c350a57c8b3c9b27289e || git fetch origin master) && git reset -q --hard 302e116c4009da2f5a31c350a57c8b3c9b27289e && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam ./
RUN opam pin add -yn ocamlformat.dev './' && \
    opam pin add -yn ocamlformat-rpc-lib.dev './' && \
    opam pin add -yn ocamlformat-lib.dev './' && \
    opam pin add -yn ocamlformat-bench.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bechamel.0.5.0 camlp-streams.5.0.1 cmdliner.2.1.0 csexp.1.5.2 dune.3.21.1 dune-build-info.3.21.1 dune-configurator.3.21.1 either.1.0.0 fix.20250919 fmt.0.11.0 fpath.0.7.3 menhir.20260209 menhirCST.20260209 menhirGLR.20260209 menhirLib.20260209 menhirSdk.20260209 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.3 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.1 uucp.17.0.0 uuseg.17.0.0 uutf.1.0.4 yojson.3.0.0"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.5 --depext-only -y ocamlformat.dev ocamlformat-rpc-lib.dev ocamlformat-lib.dev ocamlformat-bench.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-03 16:31.30: Using cache hint "ocaml-ppx/ocamlformat-ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d-ubuntu-25.04-4.14_opam-2.5-915889f8bc4f03c8f25b5143d521f425"
2026-03-03 16:31.30: Using OBuilder spec:
((from ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d)
 (comment ubuntu-25.04-4.14_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 302e116c4009da2f5a31c350a57c8b3c9b27289e || git fetch origin master) && git reset -q --hard 302e116c4009da2f5a31c350a57c8b3c9b27289e && git log --no-decorate -n1 --oneline && opam update -u"))
 (copy (src ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam)
       (dst ./))
 (run (network host)
      (shell  "opam pin add -yn ocamlformat.dev './' && \
             \nopam pin add -yn ocamlformat-rpc-lib.dev './' && \
             \nopam pin add -yn ocamlformat-lib.dev './' && \
             \nopam pin add -yn ocamlformat-bench.dev './'"))
 (run (shell "echo '(lang dune 3.0)' > './dune-project'"))
 (env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bechamel.0.5.0 camlp-streams.5.0.1 cmdliner.2.1.0 csexp.1.5.2 dune.3.21.1 dune-build-info.3.21.1 dune-configurator.3.21.1 either.1.0.0 fix.20250919 fmt.0.11.0 fpath.0.7.3 menhir.20260209 menhirCST.20260209 menhirGLR.20260209 menhirLib.20260209 menhirSdk.20260209 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.3 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.1 uucp.17.0.0 uuseg.17.0.0 uutf.1.0.4 yojson.3.0.0")
 (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 ocamlformat.dev ocamlformat-rpc-lib.dev ocamlformat-lib.dev ocamlformat-bench.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-03 16:31.30: Waiting for resource in pool OCluster
2026-03-03 16:31.30: Waiting for worker…
2026-03-03 16:31.41: Got resource from pool OCluster
Building on doris.caelum.ci.dev
HEAD is now at 2026265c Update CHANGES
HEAD is now at b25c048a Backport polymorphic parameters (#2772)

(from ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d)
Unable to find image 'ocaml/opam:ubuntu-25.04-ocaml-4.14@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d' locally
docker.io/ocaml/opam@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d: Pulling from ocaml/opam
c62190a9ab61: Already exists
9a2e0901dff5: Already exists
b1f9cc70ae42: Already exists
ce0546b0dd1f: Already exists
79301f00e8ba: Already exists
9b295b25667c: Already exists
a31f71beef5e: Already exists
5f6f7ff1dd75: Already exists
3326c804f772: Already exists
dbc305c5cd35: Already exists
c2cccf40b87f: Already exists
45e66d8ca585: Already exists
fcefa7241269: Already exists
5bf160151561: Already exists
874b2264723c: Already exists
ada98df8f669: Already exists
ab8d0ea6e4f6: Already exists
ab8d0ea6e4f6: Already exists
18a72a4bedd6: Already exists
bfcd7ea0ace8: Already exists
76a18c947be5: Already exists
6fd9d51ce26c: Already exists
4f4fb700ef54: Already exists
77d410803a59: Already exists
44e2dad9dd55: Already exists
b51e285283d3: Already exists
dd8da5b96ca2: Already exists
b46c436fcec9: Already exists
a9e62b40a1cc: Already exists
f5ab56558ad4: Already exists
8f52d3d09866: Already exists
39ac1f9b485e: Already exists
503fbe92c3b9: Already exists
f3db52c04fc1: Already exists
3bb40995af78: Already exists
7b86297d779e: Pulling fs layer
105dcde23ccd: Pulling fs layer
f59061871678: Pulling fs layer
536cb47a2e17: Pulling fs layer
0a2922aaae32: Pulling fs layer
e1d8bbe78506: Pulling fs layer
a7d7a0c35cb6: Pulling fs layer
3ff915cf3429: Pulling fs layer
61d320279e43: Pulling fs layer
26613761b3e5: Pulling fs layer
536cb47a2e17: Waiting
e1d8bbe78506: Waiting
0a2922aaae32: Waiting
61d320279e43: Waiting
a7d7a0c35cb6: Waiting
3ff915cf3429: Waiting
26613761b3e5: Waiting
105dcde23ccd: Verifying Checksum
105dcde23ccd: Download complete
536cb47a2e17: Verifying Checksum
536cb47a2e17: Download complete
0a2922aaae32: Download complete
e1d8bbe78506: Verifying Checksum
e1d8bbe78506: Download complete
a7d7a0c35cb6: Verifying Checksum
a7d7a0c35cb6: Download complete
3ff915cf3429: Verifying Checksum
3ff915cf3429: Download complete
61d320279e43: Download complete
f59061871678: Verifying Checksum
f59061871678: Download complete
26613761b3e5: Download complete
7b86297d779e: Verifying Checksum
7b86297d779e: Download complete
7b86297d779e: Pull complete
105dcde23ccd: Pull complete
f59061871678: Pull complete
536cb47a2e17: Pull complete
0a2922aaae32: Pull complete
e1d8bbe78506: Pull complete
a7d7a0c35cb6: Pull complete
3ff915cf3429: Pull complete
61d320279e43: Pull complete
26613761b3e5: Pull complete
Digest: sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d
Status: Downloaded newer image for ocaml/opam@sha256:da7613517228e8bc5eeff3cf5bac9398efb80c19b7ea755e716409551da66b9d
2026-03-03 16:54.12 ---> using "8be63355c4a8e3ed39d87c01aea6b840edfb27d913c4bf8d10e897ed2a19abfc" from cache

/: (comment ubuntu-25.04-4.14_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-03 16:54.12 ---> using "3b1e98180608464d3192a40cae49abc4c4587eaea469e083b8e472ec73c7e3c1" 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
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-03 16:54.12 ---> using "583d78b7fffcad4e88cae424d53ba5ac4a3e3790a595ddd962046db38e042d30" from cache

/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 6.8.0-94-generic
The OCaml toplevel, version 4.14.2
2.5.0
2026-03-03 16:54.12 ---> using "f4244c896864227bd06aeeb7ac784ad0bfd433e02369b85f090428a206231b60" from cache

/src: (workdir /src)

/src: (run (shell "sudo chown opam /src"))
2026-03-03 16:54.12 ---> using "1a3b68cfb51618716d7579238e673bc499d9d801120048d3b72adb12ef5cb0bb" from cache

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "cd ~/opam-repository && (git cat-file -e 302e116c4009da2f5a31c350a57c8b3c9b27289e || git fetch origin master) && git reset -q --hard 302e116c4009da2f5a31c350a57c8b3c9b27289e && git log --no-decorate -n1 --oneline && opam update -u"))
302e116c40 Merge pull request #29374 from shonfeder/release-dune-3.21.1

<><> 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.4.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-03 16:54.12 ---> using "96a9419734c95a42bc80054b9330385bdcf80e38a17d39af09c2eb6434f5b52b" from cache

/src: (copy (src ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam)
            (dst ./))
2026-03-03 16:54.12 ---> using "ea32b8fe460c02c3c8f9cc3c3bea1d6a6fca20a304db379398c5a6332a6b4dc3" from cache

/src: (run (network host)
           (shell  "opam pin add -yn ocamlformat.dev './' && \
                  \nopam pin add -yn ocamlformat-rpc-lib.dev './' && \
                  \nopam pin add -yn ocamlformat-lib.dev './' && \
                  \nopam pin add -yn ocamlformat-bench.dev './'"))
[ocamlformat.dev] synchronised (file:///src)
ocamlformat is now pinned to file:///src (version dev)
[ocamlformat-rpc-lib.dev] synchronised (file:///src)
ocamlformat-rpc-lib is now pinned to file:///src (version dev)
[ocamlformat-lib.dev] synchronised (file:///src)
ocamlformat-lib is now pinned to file:///src (version dev)
[NOTE] Package ocamlformat-bench does not exist in opam repositories registered in the current switch.
[ocamlformat-bench.dev] synchronised (file:///src)
[WARNING] Failed checks on ocamlformat-bench package definition from source at file:///src:
  warning 68: Missing field 'license'
ocamlformat-bench is now pinned to file:///src (version dev)
2026-03-03 16:54.12 ---> using "59b7566d9db8fd9ff41b7f2be739e874643d13071eb99881d883c7ea0586f45a" from cache

/src: (run (shell "echo '(lang dune 3.0)' > './dune-project'"))
2026-03-03 16:54.12 ---> using "f62ae89e204541274dd9d756c31ae5f8683f93d0e47b1debbc9828290c3aaa47" from cache

/src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bechamel.0.5.0 camlp-streams.5.0.1 cmdliner.2.1.0 csexp.1.5.2 dune.3.21.1 dune-build-info.3.21.1 dune-configurator.3.21.1 either.1.0.0 fix.20250919 fmt.0.11.0 fpath.0.7.3 menhir.20260209 menhirCST.20260209 menhirGLR.20260209 menhirLib.20260209 menhirSdk.20260209 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.3 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.1 uucp.17.0.0 uuseg.17.0.0 uutf.1.0.4 yojson.3.0.0")

/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 ocamlformat.dev ocamlformat-rpc-lib.dev ocamlformat-lib.dev ocamlformat-bench.dev $DEPS"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://security.ubuntu.com/ubuntu plucky-security InRelease
- Hit:2 http://archive.ubuntu.com/ubuntu plucky InRelease
- Hit:3 http://archive.ubuntu.com/ubuntu plucky-updates InRelease
- Hit:4 http://archive.ubuntu.com/ubuntu plucky-backports InRelease
- Reading package lists...
- 

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[ocamlformat.dev] synchronised (file:///src)
[ocamlformat-bench.dev] synchronised (file:///src)
[ocamlformat-lib.dev] synchronised (file:///src)
[ocamlformat-rpc-lib.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 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[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-bigarray is already installed (current version is base).
# To update the current shell environment, run: eval $(opam env)
2026-03-03 16:54.12 ---> using "467934744b8fa8812c2e053de9227406f925d038219afe22bddfb905d8c27c16" from cache

/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 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[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-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 33 packages
  - install alcotest           1.9.1
  - install astring            0.8.5
  - install base               v0.16.4
  - install bechamel           0.5.0
  - install camlp-streams      5.0.1
  - install cmdliner           2.1.0
  - install csexp              1.5.2
  - install dune               3.21.1
  - install dune-build-info    3.21.1
  - install dune-configurator  3.21.1
  - install either             1.0.0
  - install fix                20250919
  - install fmt                0.11.0
  - install fpath              0.7.3
  - install menhir             20260209
  - install menhirCST          20260209
  - install menhirGLR          20260209
  - install menhirLib          20260209
  - install menhirSdk          20260209
  - install ocaml-syntax-shims 1.0.0
  - install ocaml-version      4.0.3
  - install ocamlbuild         0.16.1
  - install ocamlfind          1.9.8
  - install ocp-indent         1.9.0
  - install re                 1.14.0
  - install sexplib0           v0.16.0
  - install stdio              v0.16.0
  - install stdlib-shims       0.3.0
  - install topkg              1.1.1
  - install uucp               17.0.0
  - install uuseg              17.0.0
  - install uutf               1.0.4
  - install yojson             3.0.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved base.v0.16.4  (cached)
-> retrieved bechamel.0.5.0  (cached)
-> retrieved camlp-streams.5.0.1  (cached)
-> retrieved cmdliner.2.1.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved either.1.0.0  (cached)
-> retrieved fix.20250919  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocaml-version.4.0.3  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved menhir.20260209, menhirCST.20260209, menhirGLR.20260209, menhirLib.20260209, menhirSdk.20260209  (cached)
-> retrieved dune.3.21.1, dune-build-info.3.21.1, dune-configurator.3.21.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocp-indent.1.9.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved sexplib0.v0.16.0  (cached)
-> retrieved stdio.v0.16.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved uuseg.17.0.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved uutf.1.0.4  (cached)
-> installed cmdliner.2.1.0
-> retrieved yojson.3.0.0  (cached)
-> retrieved uucp.17.0.0  (cached)
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed fpath.0.7.3
-> installed dune.3.21.1
-> installed bechamel.0.5.0
-> installed camlp-streams.5.0.1
-> installed csexp.1.5.2
-> installed either.1.0.0
-> installed fix.20250919
-> installed menhirCST.20260209
-> installed menhirGLR.20260209
-> installed menhirLib.20260209
-> installed menhirSdk.20260209
-> installed ocaml-syntax-shims.1.0.0
-> installed ocaml-version.4.0.3
-> installed ocp-indent.1.9.0
-> installed re.1.14.0
-> installed sexplib0.v0.16.0
-> installed stdlib-shims.0.3.0
-> installed yojson.3.0.0
-> installed dune-build-info.3.21.1
-> installed alcotest.1.9.1
-> installed dune-configurator.3.21.1
-> installed menhir.20260209
-> installed base.v0.16.4
-> installed stdio.v0.16.0
-> installed uucp.17.0.0
-> installed uuseg.17.0.0
Done.

<><> ocp-indent.1.9.0 installed successfully ><><><><><><><><><><><><><><><><><>
=> This package requires additional configuration for use in editors. Install package 'user-setup', or manually:

   * for Emacs, add these lines to ~/.emacs:
     (add-to-list 'load-path "/home/opam/.opam/4.14/share/emacs/site-lisp")
     (require 'ocp-indent)

   * for Vim, add this line to ~/.vimrc:
     set rtp^="/home/opam/.opam/4.14/share/ocp-indent/vim"
# To update the current shell environment, run: eval $(opam env)
2026-03-03 16:54.12 ---> using "4b4ee02553d7b1b3b76e07cabae10611f7afd2dacdc7068d26323939822ea04c" from cache

/src: (copy (src .) (dst /src))
2026-03-03 16:54.12 ---> using "dcd9ab2b880ae372226e7ff2a5b445d2b51a758204d3712e67f2498b4aa20b7c" from cache

/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
(cd _build/default/test/unit && ./test_unit.exe)
Testing `ocamlformat'.
This run has ID `56QZL92I'.

................................................................................
................................................................................
............................................

2026-03-03 16:54.12 ---> using "b5837d51bce403f60403ff6726eb9aa1e9ecdebf631959af9108e20d7df7b35a" from cache
Job succeeded
2026-03-03 16:54.12: Job succeeded