Organisationsrobur-coopdnsvizor7fd900 ()(lint-doc)

(lint-doc)

Link Copied
Code Copied

Logs

2025-10-22 07:46.28: New job: test robur-coop/dnsvizor https://github.com/robur-coop/dnsvizor.git#refs/heads/main (7fd9007e349e8e3e74e078dbee65981dfb0a6b19) (linux-x86_64:(lint-doc))
Base: ocaml/opam:alpine-3.22-ocaml-4.14@sha256:7061e4d210c551f55328c75cfe57a1297de774a191b5ef915d0cd2547319e29e
Opam project lint documentation


To reproduce locally:


git clone --recursive "https://github.com/robur-coop/dnsvizor.git" -b "main" && cd "dnsvizor" && git reset --hard 7fd9007e
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:alpine-3.22-ocaml-4.14@sha256:7061e4d210c551f55328c75cfe57a1297de774a191b5ef915d0cd2547319e29e
# alpine-3.22-4.14_opam-2.4
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 67d7ae91e5c5f3643a0baeae6111b4b6ab71e7c6 || git fetch origin master) && git reset -q --hard 67d7ae91e5c5f3643a0baeae6111b4b6ab71e7c6 && 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.2.1.1 cmdliner.2.0.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.9.0 lru.0.3.1 lwt.5.9.2 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.0 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


2025-10-22 07:46.28: Using cache hint "robur-coop/dnsvizor-ocaml/opam:alpine-3.22-ocaml-4.14@sha256:7061e4d210c551f55328c75cfe57a1297de774a191b5ef915d0cd2547319e29e-alpine-3.22-4.14_opam-2.4-c6c2e868390581555096a42121b565a3"
2025-10-22 07:46.28: Using OBuilder spec:
((from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:7061e4d210c551f55328c75cfe57a1297de774a191b5ef915d0cd2547319e29e)
(comment alpine-3.22-4.14_opam-2.4)
(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 67d7ae91e5c5f3643a0baeae6111b4b6ab71e7c6 || git fetch origin master) && git reset -q --hard 67d7ae91e5c5f3643a0baeae6111b4b6ab71e7c6 && 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.2.1.1 cmdliner.2.0.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.9.0 lru.0.3.1 lwt.5.9.2 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.0 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)"))
)


2025-10-22 07:46.28: Waiting for resource in pool OCluster
2025-10-22 07:46.28: Waiting for worker…
2025-10-22 07:46.29: Got resource from pool OCluster
Building on odawa.caelum.ci.dev
All commits already cached
HEAD is now at 7fd9007 support dns 10.2.2 (where some API was revised) (#94)


(from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:7061e4d210c551f55328c75cfe57a1297de774a191b5ef915d0cd2547319e29e)
2025-10-22 07:47.02 ---> saved as "764276640f5b3f4ce6b610321003cb55f6545c42846dc0b360f6be7a346afe65"


/: (comment alpine-3.22-4.14_opam-2.4)


/: (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"))
2025-10-22 07:47.02 ---> saved as "6720e54ae64afbb9960c6424bcdad63017c40b4d7d6d4b4cddab855f9e547dfb"


/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
2025-10-22 07:47.27 ---> saved as "491d46b321a60684e70ba78e8db58638ff14fd8a9fd56c82c70e400c4fccae72"


/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 6.8.0-85-generic
The OCaml toplevel, version 4.14.2
2.2.1
2025-10-22 07:47.27 ---> saved as "52a7f9418945eb9d3ce95ee8ffa06e22aca6dcb329d067c80a924b63b04e60fa"


/src: (workdir /src)


/src: (run (shell "sudo chown opam /src"))
2025-10-22 07:47.27 ---> saved as "73a15f0b31d765b8abc13f90f4829410080243cbd172c0dae4cd1714bb2eb89d"


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 67d7ae91e5c5f3643a0baeae6111b4b6ab71e7c6 || git fetch origin master) && git reset -q --hard 67d7ae91e5c5f3643a0baeae6111b4b6ab71e7c6 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
1abfcdbf14..0203713088  master     -> origin/master
67d7ae91e5 Merge pull request #28738 from hannesm/release-arp-v4.1.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
2025-10-22 07:47.46 ---> saved as "355ad1f377af0b43184c1989ffe3c40e8c9a0025372dcdefd712c93fc704b2c5"


/src: (copy (src dnsvizor.opam) (dst ./))
2025-10-22 07:47.46 ---> saved as "f7df319abf66f8656e5dc9d351c1afec239174e76e372b71795b0d7c7873ffb8"


/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)
2025-10-22 07:47.47 ---> saved as "f1847dbc49b6a1d960016cb4b44616ff7b8637e91933ec7820358c00e20d8027"


/src: (run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
2025-10-22 07:47.48 ---> saved as "d7c12eb609eeb80bbebd94b7f61d34a38b12008c88b52bbd069a2be817d52758"


/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.2.1.1 cmdliner.2.0.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.9.0 lru.0.3.1 lwt.5.9.2 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.0 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-63-g72b77057f08 [https://dl-cdn.alpinelinux.org/alpine/v3.22/main]
- v3.22.2-73-g7d8bd6aaa1b [https://dl-cdn.alpinelinux.org/alpine/v3.22/community]
- v20251016-465-geb9df8f98c1 [https://dl-cdn.alpinelinux.org/alpine/edge/main]
- v20251016-399-g2afe3391b8f [https://dl-cdn.alpinelinux.org/alpine/edge/community]
- v20251016-399-g2afe3391b8f [https://dl-cdn.alpinelinux.org/alpine/edge/testing]
- OK: 59636 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).
2025-10-22 07:47.56 ---> saved as "638ecd8da37c1daf000d2a2b0c7423c9381e93b21fe9ae78c0c8348ff3da62f5"


/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            2.1.1
- install cmdliner           2.0.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.9.0
- install lru                0.3.1
- install lwt                5.9.2
- 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.0
- 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 bigstringaf.0.10.0  (cached)
-> retrieved alcotest.1.9.1  (cached)
-> retrieved charrua.2.1.1  (cached)
-> retrieved cmdliner.2.0.0  (cached)
-> retrieved cppo.1.8.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.9.0  (cached)
-> retrieved lru.0.3.1  (cached)
-> retrieved lwt.5.9.2  (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 dune.3.20.2, dune-configurator.3.20.2  (cached)
-> retrieved mirage-crypto.2.0.2, mirage-crypto-rng.2.0.2  (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)
-> installed cmdliner.2.0.0
-> 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)
-> installed seq.base
-> retrieved randomconv.0.2.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved uutf.1.0.4  (cached)
-> retrieved tcpip.9.0.1  (cached)
-> retrieved topkg.1.1.0  (cached)
-> installed ocamlfind.1.9.8
-> installed base-bytes.base
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.0
-> 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.5.9.2
-> installed cstruct-lwt.6.2.0
-> installed mirage-flow.5.0.0
-> installed mirage-net.4.0.0
-> installed mirage-sleep.4.1.0
-> installed logs.0.9.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.2.1.1
Done.
# Run eval $(opam env) to update the current shell environment
2025-10-22 07:48.32 ---> saved as "f9976e28da8abef18101071aac3455d556414a7c98225f4c0e8b7190d1e3b2a0"


/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
2025-10-22 07:48.46 ---> saved as "3e70d62a62146164a694d70cbd0760d791c632c9ab01e516309958e078313611"


/src: (copy (src .) (dst /src/))
2025-10-22 07:48.46 ---> saved as "2a9924396750095ce72e4116cd62f74e6e980e7842e948830106c5ca3b68ea9c"


/src: (run (shell "ODOC_WARN_ERROR=false opam exec -- dune build @doc || (echo \"dune build @doc failed\"; exit 2)"))
2025-10-22 07:48.47 ---> saved as "d324585f1927bdaee6c10499f5c661f7791b838ad31a5364489006f5a15f0134"
Job succeeded
2025-10-22 07:48.47: Job succeeded