Organisationsrobur-coopdnsvizor193130 ()(lint-doc)

(lint-doc)

Link Copied
Code Copied

Logs

2026-01-13 13:21.24: New job: test robur-coop/dnsvizor https://github.com/robur-coop/dnsvizor.git#refs/heads/main (19313098a479e6f7be472480bec51084b90be9f0) (linux-x86_64:(lint-doc))
Base: ocaml/opam:alpine-3.22-ocaml-4.14@sha256:a0c1723a110c08defb88eb348da408dda1e97cc67f7b5978091a31df7eb5720a
Opam project lint documentation


To reproduce locally:


git clone --recursive "https://github.com/robur-coop/dnsvizor.git" -b "main" && cd "dnsvizor" && git reset --hard 19313098
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:alpine-3.22-ocaml-4.14@sha256:a0c1723a110c08defb88eb348da408dda1e97cc67f7b5978091a31df7eb5720a
# alpine-3.22-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.2 /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 7d22a58614c38be74d79ae6ef2b64994ca4ffef0 || git fetch origin master) && git reset -q --hard 7d22a58614c38be74d79ae6ef2b64994ca4ffef0 && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 dnsvizor.opam ./
RUN opam pin add -yn dnsvizor.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="alcotest.1.9.1 angstrom.0.16.1 arp.4.1.0 astring.0.8.5 base-bigarray.base base-bytes.base base-threads.base base-unix.base bigstringaf.0.10.0 charrua.3.0.0 cmdliner.2.1.0 cppo.1.8.0 csexp.1.5.2 cstruct.6.2.0 cstruct-lwt.6.2.0 digestif.1.3.0 domain-name.0.5.0 dune.3.20.2 dune-configurator.3.20.2 duration.0.2.1 eqaf.0.10 ethernet.3.2.0 fmt.0.11.0 ipaddr.5.6.1 ipaddr-cstruct.5.6.1 logs.0.10.0 lru.0.3.1 lwt.6.0.0 lwt-dllist.1.1.0 macaddr.5.6.1 macaddr-cstruct.5.6.1 metrics.0.5.0 mirage-crypto.2.0.2 mirage-crypto-rng.2.0.2 mirage-flow.5.0.0 mirage-mtime.5.2.0 mirage-net.4.0.0 mirage-sleep.4.1.0 mtime.2.1.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 ohex.0.2.0 psq.0.2.1 randomconv.0.2.0 re.1.14.0 seq.base stdlib-shims.0.3.0 tcpip.9.0.1 topkg.1.1.1 uutf.1.0.4"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.2 --depext-only -y dnsvizor.dev $DEPS
RUN opam install $DEPS
RUN opam install --yes dune 'odoc>=1.5.0'
COPY --chown=1000:1000 . /src/
RUN ODOC_WARN_ERROR=false opam exec -- dune build @doc || (echo "dune build @doc failed"; exit 2)


END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK


2026-01-13 13:21.24: Using cache hint "robur-coop/dnsvizor-ocaml/opam:alpine-3.22-ocaml-4.14@sha256:a0c1723a110c08defb88eb348da408dda1e97cc67f7b5978091a31df7eb5720a-alpine-3.22-4.14_opam-2.5-f6820e5c29e55977ab57d99c2bbc407d"
2026-01-13 13:21.24: Using OBuilder spec:
((from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:a0c1723a110c08defb88eb348da408dda1e97cc67f7b5978091a31df7eb5720a)
(comment alpine-3.22-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.2 /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 7d22a58614c38be74d79ae6ef2b64994ca4ffef0 || git fetch origin master) && git reset -q --hard 7d22a58614c38be74d79ae6ef2b64994ca4ffef0 && git log --no-decorate -n1 --oneline && opam update -u"))
(copy (src dnsvizor.opam) (dst ./))
(run (network host)
(shell "opam pin add -yn dnsvizor.dev './'"))
(run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
(env DEPS "alcotest.1.9.1 angstrom.0.16.1 arp.4.1.0 astring.0.8.5 base-bigarray.base base-bytes.base base-threads.base base-unix.base bigstringaf.0.10.0 charrua.3.0.0 cmdliner.2.1.0 cppo.1.8.0 csexp.1.5.2 cstruct.6.2.0 cstruct-lwt.6.2.0 digestif.1.3.0 domain-name.0.5.0 dune.3.20.2 dune-configurator.3.20.2 duration.0.2.1 eqaf.0.10 ethernet.3.2.0 fmt.0.11.0 ipaddr.5.6.1 ipaddr-cstruct.5.6.1 logs.0.10.0 lru.0.3.1 lwt.6.0.0 lwt-dllist.1.1.0 macaddr.5.6.1 macaddr-cstruct.5.6.1 metrics.0.5.0 mirage-crypto.2.0.2 mirage-crypto-rng.2.0.2 mirage-flow.5.0.0 mirage-mtime.5.2.0 mirage-net.4.0.0 mirage-sleep.4.1.0 mtime.2.1.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 ohex.0.2.0 psq.0.2.1 randomconv.0.2.0 re.1.14.0 seq.base stdlib-shims.0.3.0 tcpip.9.0.1 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.2 --depext-only -y dnsvizor.dev $DEPS"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install $DEPS"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install --yes dune 'odoc>=1.5.0'"))
(copy (src .) (dst /src/))
(run (shell "ODOC_WARN_ERROR=false opam exec -- dune build @doc || (echo \"dune build @doc failed\"; exit 2)"))
)


2026-01-13 13:21.24: Waiting for resource in pool OCluster
2026-01-13 13:21.24: Waiting for worker…
2026-01-13 13:37.14: Got resource from pool OCluster
Building on odawa.caelum.ci.dev
All commits already cached
HEAD is now at 1931309 Merge pull request #116 from robur-coop/fix-doh


(from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:a0c1723a110c08defb88eb348da408dda1e97cc67f7b5978091a31df7eb5720a)
2026-01-13 13:37.18 ---> saved as "ece82a8ac6d41a1ab09fb11091965cb1ec871520b8574cef65f50dce7f99ce3f"


/: (comment alpine-3.22-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.2 /usr/bin/opam"))
2026-01-13 13:37.18 ---> saved as "dc259fae3b6e8c59e91deb1a68cb33d41f4df7a2c13f42069a7f9aa8e4f051e3"


/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 development 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-01-13 13:37.43 ---> saved as "5ffd5788c0b473ccc5f03a0ae6600ec644a52df609d8a36c0001876446882986"


/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 6.8.0-87-generic
The OCaml toplevel, version 4.14.2
2.2.1
2026-01-13 13:37.43 ---> saved as "f226fa52ad75e888c3b73dc96140dc55558bada0d1c05f108027f6a0be7510b4"


/src: (workdir /src)


/src: (run (shell "sudo chown opam /src"))
2026-01-13 13:37.43 ---> saved as "3b32ee39ea453a7dabfa5538f7674f5c85b56e134cd347f0b6af0cf269d8fbc0"


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 7d22a58614c38be74d79ae6ef2b64994ca4ffef0 || git fetch origin master) && git reset -q --hard 7d22a58614c38be74d79ae6ef2b64994ca4ffef0 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
ee48e882f0..7d1fb28629  master     -> origin/master
7d22a58614 Merge pull request #29184 from raphael-proust/opam-publish-lwt.6.0.0


<><> 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, which will ask permission to downgrade or uninstall the conflicting packages.
Nothing to do.
# Run eval $(opam env) to update the current shell environment
2026-01-13 13:38.05 ---> saved as "37af9100975326f127dfca5fa3aed239f619a6ae1fea5c552cb914c122bd994c"


/src: (copy (src dnsvizor.opam) (dst ./))
2026-01-13 13:38.05 ---> saved as "caf140566d3f0f71917c7f0241bcfdefadefcda36332f1978d1708b0ea7708eb"


/src: (run (network host)
(shell "opam pin add -yn dnsvizor.dev './'"))
Package dnsvizor does not exist, create as a NEW package? [y/n] y
[dnsvizor.dev] synchronised (file:///src)
dnsvizor is now pinned to file:///src (version dev)
2026-01-13 13:38.07 ---> saved as "0ced1a86acdf23a70366ee0ef0f8a78cca3345e876476f49598a36649bcb6a59"


/src: (run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
2026-01-13 13:38.07 ---> saved as "73e6d76a18ca11aaad9d91b9bee3c4b925f464fa440c2c4284c9f97a498a303b"


/src: (env DEPS "alcotest.1.9.1 angstrom.0.16.1 arp.4.1.0 astring.0.8.5 base-bigarray.base base-bytes.base base-threads.base base-unix.base bigstringaf.0.10.0 charrua.3.0.0 cmdliner.2.1.0 cppo.1.8.0 csexp.1.5.2 cstruct.6.2.0 cstruct-lwt.6.2.0 digestif.1.3.0 domain-name.0.5.0 dune.3.20.2 dune-configurator.3.20.2 duration.0.2.1 eqaf.0.10 ethernet.3.2.0 fmt.0.11.0 ipaddr.5.6.1 ipaddr-cstruct.5.6.1 logs.0.10.0 lru.0.3.1 lwt.6.0.0 lwt-dllist.1.1.0 macaddr.5.6.1 macaddr-cstruct.5.6.1 metrics.0.5.0 mirage-crypto.2.0.2 mirage-crypto-rng.2.0.2 mirage-flow.5.0.0 mirage-mtime.5.2.0 mirage-net.4.0.0 mirage-sleep.4.1.0 mtime.2.1.0 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 ohex.0.2.0 psq.0.2.1 randomconv.0.2.0 re.1.14.0 seq.base stdlib-shims.0.3.0 tcpip.9.0.1 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.2 --depext-only -y dnsvizor.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-337-g720f0a85f77 [https://dl-cdn.alpinelinux.org/alpine/v3.22/main]
- v3.22.2-336-g51b5b1242c1 [https://dl-cdn.alpinelinux.org/alpine/v3.22/community]
- v20251224-1246-gd62455724bf [https://dl-cdn.alpinelinux.org/alpine/edge/main]
- v20251224-1117-g190ac52f0ce [https://dl-cdn.alpinelinux.org/alpine/edge/community]
- v20251224-1112-gd8771c356ad [https://dl-cdn.alpinelinux.org/alpine/edge/testing]
- OK: 60706 distinct packages available


<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[dnsvizor.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).
2026-01-13 13:38.18 ---> saved as "28992340e85ed308b663f39dc4a6a6bd6b3b28fb2ba23a14cd6401a1a9b307f0"


/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 49 packages
- install alcotest           1.9.1
- install angstrom           0.16.1
- install arp                4.1.0
- install astring            0.8.5
- install base-bytes         base
- install bigstringaf        0.10.0
- install charrua            3.0.0
- install cmdliner           2.1.0
- install cppo               1.8.0
- install csexp              1.5.2
- install cstruct            6.2.0
- install cstruct-lwt        6.2.0
- install digestif           1.3.0
- install domain-name        0.5.0
- install dune               3.20.2
- install dune-configurator  3.20.2
- install duration           0.2.1
- install eqaf               0.10
- install ethernet           3.2.0
- install fmt                0.11.0
- install ipaddr             5.6.1
- install ipaddr-cstruct     5.6.1
- install logs               0.10.0
- install lru                0.3.1
- install lwt                6.0.0
- install lwt-dllist         1.1.0
- install macaddr            5.6.1
- install macaddr-cstruct    5.6.1
- install metrics            0.5.0
- install mirage-crypto      2.0.2
- install mirage-crypto-rng  2.0.2
- install mirage-flow        5.0.0
- install mirage-mtime       5.2.0
- install mirage-net         4.0.0
- install mirage-sleep       4.1.0
- install mtime              2.1.0
- install ocaml-syntax-shims 1.0.0
- install ocamlbuild         0.16.1
- install ocamlfind          1.9.8
- install ocplib-endian      1.2
- install ohex               0.2.0
- install psq                0.2.1
- install randomconv         0.2.0
- install re                 1.14.0
- install seq                base
- install stdlib-shims       0.3.0
- install tcpip              9.0.1
- install topkg              1.1.1
- install uutf               1.0.4


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved arp.4.1.0  (cached)
-> retrieved angstrom.0.16.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved alcotest.1.9.1  (cached)
-> retrieved bigstringaf.0.10.0  (cached)
-> retrieved charrua.3.0.0  (cached)
-> retrieved cppo.1.8.0  (cached)
-> retrieved cmdliner.2.1.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved cstruct.6.2.0, cstruct-lwt.6.2.0  (cached)
-> retrieved domain-name.0.5.0  (cached)
-> retrieved duration.0.2.1  (cached)
-> retrieved eqaf.0.10  (cached)
-> retrieved ethernet.3.2.0  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved ipaddr.5.6.1, ipaddr-cstruct.5.6.1, macaddr.5.6.1, macaddr-cstruct.5.6.1  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved lru.0.3.1  (cached)
-> retrieved lwt.6.0.0  (cached)
-> retrieved lwt-dllist.1.1.0  (cached)
-> retrieved metrics.0.5.0  (cached)
-> retrieved digestif.1.3.0  (cached)
-> retrieved mirage-flow.5.0.0  (cached)
-> retrieved mirage-mtime.5.2.0  (cached)
-> retrieved mirage-net.4.0.0  (cached)
-> retrieved mirage-sleep.4.1.0  (cached)
-> retrieved mtime.2.1.0  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved dune.3.20.2, dune-configurator.3.20.2  (cached)
-> retrieved mirage-crypto.2.0.2, mirage-crypto-rng.2.0.2  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocplib-endian.1.2  (cached)
-> retrieved ohex.0.2.0  (cached)
-> retrieved psq.0.2.1  (cached)
-> retrieved seq.base  (cached)
-> retrieved randomconv.0.2.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved tcpip.9.0.1  (cached)
-> installed cmdliner.2.1.0
-> installed seq.base
-> retrieved topkg.1.1.1  (cached)
-> retrieved uutf.1.0.4  (cached)
-> installed ocamlfind.1.9.8
-> installed base-bytes.base
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed uutf.1.0.4
-> installed mtime.2.1.0
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed dune.3.20.2
-> installed duration.0.2.1
-> installed lwt-dllist.1.1.0
-> installed csexp.1.5.2
-> installed cppo.1.8.0
-> installed cstruct.6.2.0
-> installed domain-name.0.5.0
-> installed eqaf.0.10
-> installed macaddr.5.6.1
-> installed metrics.0.5.0
-> installed mirage-mtime.5.2.0
-> installed ocaml-syntax-shims.1.0.0
-> installed ohex.0.2.0
-> installed psq.0.2.1
-> installed randomconv.0.2.0
-> installed re.1.14.0
-> installed stdlib-shims.0.3.0
-> installed ocplib-endian.1.2
-> installed macaddr-cstruct.5.6.1
-> installed lru.0.3.1
-> installed ipaddr.5.6.1
-> installed ipaddr-cstruct.5.6.1
-> installed digestif.1.3.0
-> installed alcotest.1.9.1
-> installed dune-configurator.3.20.2
-> installed bigstringaf.0.10.0
-> installed angstrom.0.16.1
-> installed mirage-crypto.2.0.2
-> installed lwt.6.0.0
-> installed mirage-flow.5.0.0
-> installed mirage-net.4.0.0
-> installed cstruct-lwt.6.2.0
-> installed mirage-sleep.4.1.0
-> installed logs.0.10.0
-> installed ethernet.3.2.0
-> installed mirage-crypto-rng.2.0.2
-> installed arp.4.1.0
-> installed tcpip.9.0.1
-> installed charrua.3.0.0
Done.
# Run eval $(opam env) to update the current shell environment
2026-01-13 13:39.00 ---> saved as "6271c36e5e4cdebd1a2253d8bbc7387fd12bd015df9b4fcda0696f48f55510d2"


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install --yes dune 'odoc>=1.5.0'"))
[NOTE] Package dune is already installed (current version is 3.20.2).
The following actions will be performed:
=== install 7 packages
- install camlp-streams 5.0.1 [required by odoc-parser]
- install crunch        4.0.0 [required by odoc]
- install fpath         0.7.3 [required by odoc]
- install odoc          3.1.0
- install odoc-parser   3.1.0 [required by odoc]
- install ptime         1.2.0 [required by crunch]
- install tyxml         4.6.0 [required by odoc]


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved camlp-streams.5.0.1  (cached)
-> retrieved crunch.4.0.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved ptime.1.2.0  (cached)
-> retrieved tyxml.4.6.0  (cached)
-> installed camlp-streams.5.0.1
-> retrieved odoc.3.1.0, odoc-parser.3.1.0  (cached)
-> installed fpath.0.7.3
-> installed ptime.1.2.0
-> installed crunch.4.0.0
-> installed odoc-parser.3.1.0
-> installed tyxml.4.6.0
-> installed odoc.3.1.0
Done.
# Run eval $(opam env) to update the current shell environment
2026-01-13 13:39.19 ---> saved as "0bece3844adf2bd11c3a3a980d8f5ef50369f14357a35026fb217f197c47fe50"


/src: (copy (src .) (dst /src/))
2026-01-13 13:39.19 ---> saved as "61d3a091fdec29315fb02f94640ead941397dbabba139e3c75db6d9803f65afa"


/src: (run (shell "ODOC_WARN_ERROR=false opam exec -- dune build @doc || (echo \"dune build @doc failed\"; exit 2)"))
2026-01-13 13:39.20 ---> saved as "d4bd3595fec80125d13cdc477cc0039d95f2bb75065aba9b7c64d4145f342302"
Job succeeded
2026-01-13 13:39.20: Job succeeded