(not at the head of any monitored branch or PR)
2026-04-13 14:34.46: New job: test owork.0.1.1 with dune-configurator.3.22.2, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29704/head (3e0c395e7b1393a792367f8edca3654dac71e6fd)
                              on debian-13-ocaml-4.14/amd64

To reproduce locally:

cd $(mktemp -d)
git clone --recursive "https://github.com/ocaml/opam-repository.git" && cd "opam-repository" && git fetch origin "refs/pull/29704/head" && git reset --hard 3e0c395e
git fetch origin master
git merge --no-edit 6a41074e987f45580dd8672b99e1d9355175a27f
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-dev /usr/bin/opam
RUN opam init --reinit -ni
RUN opam option solver=builtin-0install && opam config report
ENV OPAMDOWNLOADJOBS="1"
ENV OPAMERRLOGLEN="0"
ENV OPAMPRECISETRACKING="1"
ENV CI="true"
ENV OPAM_REPO_CI="true"
RUN rm -rf opam-repository/
COPY --chown=1000:1000 . opam-repository/
RUN opam repository set-url --strict default opam-repository/
RUN opam update --depexts || true
RUN opam pin add -k version -yn dune-configurator.3.22.2 3.22.2
RUN opam reinstall dune-configurator.3.22.2; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'dune-configurator.3.22.2' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN opam reinstall owork.0.1.1; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'owork.0.1.1' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN (opam reinstall --with-test owork.0.1.1) || true
RUN opam reinstall --with-test --verbose owork.0.1.1; \
    res=$?; \
    test "$res" != 31 && exit "$res"; \
    export OPAMCLI=2.0; \
    build_dir=$(opam var prefix)/.opam-switch/build; \
    failed=$(ls "$build_dir"); \
    partial_fails=""; \
    for pkg in $failed; do \
    if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'owork.0.1.1' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1

END-OF-DOCKERFILE
docker build -f ../Dockerfile .

2026-04-13 14:34.46: Using cache hint "ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126-dune-configurator.3.22.2-owork.0.1.1-3e0c395e7b1393a792367f8edca3654dac71e6fd"
2026-04-13 14:34.46: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
 (run (network host)
      (shell "opam init --reinit --config .opamrc-sandbox -ni"))
 (run (shell "opam option solver=builtin-0install && opam config report"))
 (env OPAMDOWNLOADJOBS 1)
 (env OPAMERRLOGLEN 0)
 (env OPAMPRECISETRACKING 1)
 (env CI true)
 (env OPAM_REPO_CI true)
 (run (shell "rm -rf opam-repository/"))
 (copy (src .) (dst opam-repository/))
 (run (shell "opam repository set-url --strict default opam-repository/"))
 (run (network host)
      (shell "opam update --depexts || true"))
 (run (shell "opam pin add -k version -yn dune-configurator.3.22.2 3.22.2"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall dune-configurator.3.22.2;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'dune-configurator.3.22.2' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall owork.0.1.1;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'owork.0.1.1' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
 (run (network host)
      (shell "(opam reinstall --with-test owork.0.1.1) || true"))
 (run (shell  "opam reinstall --with-test --verbose owork.0.1.1;\
             \n        res=$?;\
             \n        test \"$res\" != 31 && exit \"$res\";\
             \n        export OPAMCLI=2.0;\
             \n        build_dir=$(opam var prefix)/.opam-switch/build;\
             \n        failed=$(ls \"$build_dir\");\
             \n        partial_fails=\"\";\
             \n        for pkg in $failed; do\
             \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'owork.0.1.1' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2026-04-13 14:34.46: Waiting for resource in pool OCluster
2026-04-13 14:40.07: Waiting for worker…
2026-04-13 14:43.30: Got resource from pool OCluster
Building on laodoke.caelum.ci.dev
All commits already cached
Updating files:  88% (16647/18720)
Updating files:  89% (16661/18720)
Updating files:  90% (16848/18720)
Updating files:  91% (17036/18720)
Updating files:  92% (17223/18720)
Updating files:  93% (17410/18720)
Updating files:  94% (17597/18720)
Updating files:  95% (17784/18720)
Updating files:  96% (17972/18720)
Updating files:  97% (18159/18720)
Updating files:  98% (18346/18720)
Updating files:  99% (18533/18720)
Updating files: 100% (18720/18720)
Updating files: 100% (18720/18720), done.
HEAD is now at 6a41074e98 Merge pull request #29690 from paurkedal/caqti.2.3.0
Merge made by the 'ort' strategy.
 packages/chrome-trace/chrome-trace.3.22.2/opam     | 39 +++++++++++
 .../dune-action-plugin.3.22.2/opam                 | 52 +++++++++++++++
 .../dune-action-trace.3.22.2/opam                  | 39 +++++++++++
 .../dune-build-info/dune-build-info.3.22.2/opam    | 45 +++++++++++++
 .../dune-configurator.3.22.2/opam                  | 49 ++++++++++++++
 packages/dune-glob/dune-glob.3.22.2/opam           | 42 ++++++++++++
 .../dune-private-libs.3.22.2/opam                  | 50 +++++++++++++++
 packages/dune-rpc-lwt/dune-rpc-lwt.3.22.2/opam     | 41 ++++++++++++
 packages/dune-rpc/dune-rpc.3.22.2/opam             | 44 +++++++++++++
 packages/dune-site/dune-site.3.22.2/opam           | 37 +++++++++++
 packages/dune/dune.3.22.2/opam                     | 75 ++++++++++++++++++++++
 packages/dyn/dyn.3.22.2/opam                       | 40 ++++++++++++
 packages/fs-io/fs-io.3.22.2/opam                   | 39 +++++++++++
 packages/ocamlc-loc/ocamlc-loc.3.22.2/opam         | 43 +++++++++++++
 packages/ordering/ordering.3.22.2/opam             | 38 +++++++++++
 packages/stdune/stdune.3.22.2/opam                 | 46 +++++++++++++
 packages/top-closure/top-closure.3.22.2/opam       | 38 +++++++++++
 packages/xdg/xdg.3.22.2/opam                       | 39 +++++++++++
 18 files changed, 796 insertions(+)
 create mode 100644 packages/chrome-trace/chrome-trace.3.22.2/opam
 create mode 100644 packages/dune-action-plugin/dune-action-plugin.3.22.2/opam
 create mode 100644 packages/dune-action-trace/dune-action-trace.3.22.2/opam
 create mode 100644 packages/dune-build-info/dune-build-info.3.22.2/opam
 create mode 100644 packages/dune-configurator/dune-configurator.3.22.2/opam
 create mode 100644 packages/dune-glob/dune-glob.3.22.2/opam
 create mode 100644 packages/dune-private-libs/dune-private-libs.3.22.2/opam
 create mode 100644 packages/dune-rpc-lwt/dune-rpc-lwt.3.22.2/opam
 create mode 100644 packages/dune-rpc/dune-rpc.3.22.2/opam
 create mode 100644 packages/dune-site/dune-site.3.22.2/opam
 create mode 100644 packages/dune/dune.3.22.2/opam
 create mode 100644 packages/dyn/dyn.3.22.2/opam
 create mode 100644 packages/fs-io/fs-io.3.22.2/opam
 create mode 100644 packages/ocamlc-loc/ocamlc-loc.3.22.2/opam
 create mode 100644 packages/ordering/ordering.3.22.2/opam
 create mode 100644 packages/stdune/stdune.3.22.2/opam
 create mode 100644 packages/top-closure/top-closure.3.22.2/opam
 create mode 100644 packages/xdg/xdg.3.22.2/opam

(from ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126)
Unable to find image 'ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126' locally
docker.io/ocaml/opam@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126: Pulling from ocaml/opam
8f6ad858d0a4: Already exists
9cb5e198c8cf: Already exists
2d346d36dcf2: Already exists
cdc35e289b8d: Already exists
aeb7244bb580: Already exists
fc1943254a0d: Already exists
84238c416f8e: Already exists
fbbfe75d3112: Already exists
221fdc5d9929: Already exists
1fec9149b52a: Already exists
9c6e52557f24: Already exists
8737f5036aae: Already exists
d69c4074de14: Already exists
7237152a5f04: Already exists
fba4b414d8a0: Already exists
40d552afb3ef: Already exists
077cc17dc8e4: Already exists
077cc17dc8e4: Already exists
169e1be36a55: Already exists
0a8a005097ab: Already exists
caba3ec4b361: Already exists
6a364dc641f8: Already exists
4f4fb700ef54: Already exists
ab8052928cdc: Already exists
f5717a28dd6a: Already exists
79233a9b9bed: Already exists
d832d53e7392: Already exists
1872dad82243: Already exists
bfd849b08ba7: Already exists
834a8024ef15: Already exists
98ccec79258b: Already exists
fb48f36a0542: Already exists
3688b13db8e7: Already exists
a5c099f5f72c: Already exists
1ff1760de5b0: Already exists
98eec6764aa5: Already exists
aa22ae69debd: Already exists
12bfb7b962a2: Already exists
ec25ce9bb816: Already exists
beadd3cf7357: Already exists
d0d0c65a426d: Already exists
27080da82c6b: Pulling fs layer
3b99adeb504e: Pulling fs layer
867c8a52ad10: Pulling fs layer
01ca275a6ca2: Pulling fs layer
01ca275a6ca2: Waiting
3b99adeb504e: Verifying Checksum
3b99adeb504e: Download complete
867c8a52ad10: Verifying Checksum
867c8a52ad10: Download complete
01ca275a6ca2: Verifying Checksum
01ca275a6ca2: Download complete
27080da82c6b: Verifying Checksum
27080da82c6b: Download complete
27080da82c6b: Pull complete
3b99adeb504e: Pull complete
867c8a52ad10: Pull complete
01ca275a6ca2: Pull complete
Digest: sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126
Status: Downloaded newer image for ocaml/opam@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126
2026-04-13 14:43.54 ---> using "d0e330c08fa445d83f06df86dbe749aac73c20b9c3be340824d01a143f189b82" from cache

/: (user (uid 1000) (gid 1000))

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2026-04-13 14:43.54 ---> using "3ec7ac935151f5277a236626f366bf7f6f18395cb01e6e86eff2abeffc750f69" from cache

/home/opam: (run (network host)
                 (shell "opam init --reinit --config .opamrc-sandbox -ni"))
Configuring from /home/opam/.opamrc-sandbox, then /home/opam/.opamrc, and finally 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-04-13 14:43.54 ---> using "b5a0847c35501fd963cedc3388b00c999e5617a9db85df5529c240a6fc10a617" from cache

/home/opam: (run (shell "opam option solver=builtin-0install && opam config report"))
Set to 'builtin-0install' the field solver in global configuration
# opam config report
# opam-version         2.5.0
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=debian os-version=13
# solver               builtin-0install
# install-criteria     -changed,-count[avoid-version,solution]
# upgrade-criteria     -count[avoid-version,solution]
# jobs                 71
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       4.14
# invariant            ["ocaml-base-compiler" {= "4.14.3"}]
# compiler-packages    ocaml-base-compiler.4.14.3, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/4.14/lib/ocaml/stublibs:/home/opam/.opam/4.14/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       4.14.3
2026-04-13 14:43.54 ---> using "28464b62e165a839b63b1c2ae024a4b4fcbe23c1802c3adf881d35db6bc1d4c2" from cache

/home/opam: (env OPAMDOWNLOADJOBS 1)

/home/opam: (env OPAMERRLOGLEN 0)

/home/opam: (env OPAMPRECISETRACKING 1)

/home/opam: (env CI true)

/home/opam: (env OPAM_REPO_CI true)

/home/opam: (run (shell "rm -rf opam-repository/"))
2026-04-13 14:43.54 ---> using "4dfd69403557bd9c8ecec7a8b2fdd9b50feea12943fd8b9150cd347ede8d5f38" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2026-04-13 14:43.55 ---> using "edfc1136fda934d7cb565de13b26830fecc90a7ab0b3857f616327ea2529452b" from cache

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-04-13 14:43.55 ---> using "b0e78c7a2e37b10ad9605e02581a51654b0778194c38cb8fb47cf5dccb0d651f" from cache

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://deb.debian.org/debian trixie InRelease
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Get:4 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [122 kB]
- Fetched 213 kB in 0s (846 kB/s)
- Reading package lists...
- 
2026-04-13 14:43.55 ---> using "044cfe461c26a47734ddd2294ed3e29edb1a69aa3837f8ab53eee87e4aaa3c6d" from cache

/home/opam: (run (shell "opam pin add -k version -yn dune-configurator.3.22.2 3.22.2"))
dune-configurator is now pinned to version 3.22.2
2026-04-13 14:43.55 ---> using "61822bc1c8d49457997d2abe2ac73ae0cfef8dbd04765bc8f20f4e4cd5cb318e" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall dune-configurator.3.22.2;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'dune-configurator.3.22.2' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
dune-configurator.3.22.2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 3 packages
  - install csexp             1.5.2           [required by dune-configurator]
  - install dune              3.22.2          [required by dune-configurator]
  - install dune-configurator 3.22.2 (pinned)

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved csexp.1.5.2  (cached)
-> retrieved dune.3.22.2, dune-configurator.3.22.2  (cached)
-> installed dune.3.22.2
-> installed csexp.1.5.2
-> installed dune-configurator.3.22.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-13 14:43.55 ---> using "de48ccc1a675ccb5bfaa4b65349d55fd7f562d3cece499473dd0a7edc9c09dd2" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall owork.0.1.1;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'owork.0.1.1' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
owork.0.1.1 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 38 packages
  - install astring             0.8.5   [required by owork]
  - install base                v0.16.4 [required by ppx_expect]
  - install base-bytes          base    [required by ocplib-endian]
  - install cmdliner            1.3.0   [required by owork]
  - install cppo                1.8.0   [required by ppx_deriving]
  - install duration            0.3.0   [required by owork]
  - install fmt                 0.11.0  [required by owork]
  - install jane-street-headers v0.16.0 [required by time_now]
  - install jst-config          v0.16.0 [required by time_now]
  - install logs                0.10.0  [required by owork]
  - install lwt                 5.9.2   [required by owork]
  - install lwt_ppx             5.9.1   [required by owork]
  - install ocaml-compiler-libs v0.12.4 [required by ppxlib]
  - install ocamlbuild          0.16.1  [required by fmt, astring, logs]
  - install ocamlfind           1.9.8   [required by logs, astring, fmt, ppx_deriving]
  - install ocplib-endian       1.2     [required by lwt]
  - install owork               0.1.1
  - install ppx_assert          v0.16.0 [required by jst-config]
  - install ppx_base            v0.16.0 [required by time_now]
  - install ppx_cold            v0.16.0 [required by ppx_base]
  - install ppx_compare         v0.16.0 [required by ppx_base]
  - install ppx_derivers        1.2.1   [required by ppx_deriving]
  - install ppx_deriving        6.0.3   [required by owork]
  - install ppx_enumerate       v0.16.0 [required by ppx_base]
  - install ppx_expect          v0.16.2 [required by owork]
  - install ppx_globalize       v0.16.0 [required by ppx_base]
  - install ppx_hash            v0.16.0 [required by ppx_base]
  - install ppx_here            v0.16.0 [required by ppx_expect]
  - install ppx_inline_test     v0.16.1 [required by ppx_expect]
  - install ppx_optcomp         v0.16.0 [required by time_now]
  - install ppx_sexp_conv       v0.16.0 [required by ppx_base]
  - install ppxlib              0.35.0  [required by ppx_deriving, lwt_ppx, ppx_expect]
  - install re                  1.14.0  [required by ppx_expect]
  - install sexplib0            v0.16.0 [required by ppxlib, base]
  - install stdio               v0.16.0 [required by ppx_expect]
  - install stdlib-shims        0.3.0   [required by ppxlib]
  - install time_now            v0.16.0 [required by ppx_inline_test]
  - install topkg               1.1.1   [required by fmt, astring, logs]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved astring.0.8.5  (cached)
-> retrieved base.v0.16.4  (cached)
-> retrieved cmdliner.1.3.0  (cached)
-> retrieved cppo.1.8.0  (cached)
-> retrieved duration.0.3.0  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved jane-street-headers.v0.16.0  (cached)
-> retrieved jst-config.v0.16.0  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved lwt.5.9.2  (cached)
-> retrieved lwt_ppx.5.9.1  (cached)
-> installed jane-street-headers.v0.16.0
-> retrieved ocaml-compiler-libs.v0.12.4  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> installed duration.0.3.0
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocplib-endian.1.2  (cached)
-> retrieved owork.0.1.1  (cached)
-> retrieved ppx_assert.v0.16.0  (cached)
-> retrieved ppx_base.v0.16.0  (cached)
-> retrieved ppx_cold.v0.16.0  (cached)
-> retrieved ppx_compare.v0.16.0  (cached)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved ppx_deriving.6.0.3  (cached)
-> retrieved ppx_enumerate.v0.16.0  (cached)
-> retrieved ppx_expect.v0.16.2  (cached)
-> retrieved ppx_globalize.v0.16.0  (cached)
-> retrieved ppx_hash.v0.16.0  (cached)
-> retrieved ppx_here.v0.16.0  (cached)
-> retrieved ppx_inline_test.v0.16.1  (cached)
-> retrieved ppx_optcomp.v0.16.0  (cached)
-> retrieved ppx_sexp_conv.v0.16.0  (cached)
-> installed ppx_derivers.1.2.1
-> retrieved ppxlib.0.35.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 time_now.v0.16.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> installed cppo.1.8.0
-> installed stdlib-shims.0.3.0
-> installed ocaml-compiler-libs.v0.12.4
-> installed sexplib0.v0.16.0
-> installed re.1.14.0
-> installed cmdliner.1.3.0
-> installed ocamlfind.1.9.8
-> installed base-bytes.base
-> installed ocplib-endian.1.2
-> installed ocamlbuild.0.16.1
-> installed base.v0.16.4
-> installed stdio.v0.16.0
-> installed lwt.5.9.2
-> installed topkg.1.1.1
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed logs.0.10.0
-> installed ppxlib.0.35.0
-> installed ppx_globalize.v0.16.0
-> installed ppx_optcomp.v0.16.0
-> installed ppx_cold.v0.16.0
-> installed ppx_here.v0.16.0
-> installed ppx_enumerate.v0.16.0
-> installed ppx_compare.v0.16.0
-> installed lwt_ppx.5.9.1
-> installed ppx_deriving.6.0.3
-> installed ppx_sexp_conv.v0.16.0
-> installed ppx_hash.v0.16.0
-> installed ppx_assert.v0.16.0
-> installed ppx_base.v0.16.0
-> installed jst-config.v0.16.0
-> installed time_now.v0.16.0
-> installed ppx_inline_test.v0.16.1
-> installed ppx_expect.v0.16.2
-> installed owork.0.1.1
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-13 14:44.43 ---> saved as "efab52c96ffe68b4fa9ae6a4739334a08bd5c50ddc74772b391b5c43e37e79db"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test owork.0.1.1) || true"))
The following actions will be performed:
=== recompile 1 package
  - recompile owork 0.1.1

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved owork.0.1.1  (https://opam.ocaml.org/cache)
[ERROR] The compilation of owork.0.1.1 failed at "dune runtest -p owork -j 71".

#=== ERROR while compiling owork.0.1.1 ========================================#
# context              2.5.0 | linux/x86_64 | ocaml-base-compiler.4.14.3 | file:///home/opam/opam-repository
# path                 ~/.opam/4.14/.opam-switch/build/owork.0.1.1
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune runtest -p owork -j 71
# exit-code            1
# env-file             ~/.opam/log/owork-7-79ad55.env
# output-file          ~/.opam/log/owork-7-79ad55.out
### output ###
# (cd _build/default/lib && .owork.inline-tests/inline-test-runner.exe inline-test-runner owork -partition timer.ml -source-tree-root .. -diff-cmd - -show-counts -strict)
# 4 tests ran, 0 test_modules ran
# File "lib/timer.ml", line 1, characters 0-0:
# /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/lib/timer.ml _build/default/lib/timer.ml.corrected
# diff --git a/_build/default/lib/timer.ml b/_build/default/lib/timer.ml.corrected
# index 063e0c9..17e8855 100644
# --- a/_build/default/lib/timer.ml
# +++ b/_build/default/lib/timer.ml.corrected
# @@ -59,16 +59,16 @@ module Test = struct
#      let timer = create (Duration.of_min 25) in
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = 25 minutes; paused = true;
# -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
# +      { Timer.duration_remaining = 25m00s; paused = true; next_duration = <fun>;
# +        unpause_cvar = <opaque> } |}]
#  
#    let%expect_test "start timer" =
#      let timer = create (Duration.of_min 25) in
#      start timer ;
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = 25 minutes; paused = false;
# -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
# +      { Timer.duration_remaining = 25m00s; paused = false; next_duration = <fun>;
# +        unpause_cvar = <opaque> } |}]
#  
#    let%expect_test "pause timer" =
#      let timer = create (Duration.of_min 25) in
# @@ -76,8 +76,8 @@ module Test = struct
#      stop timer ;
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = 25 minutes; paused = true;
# -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
# +      { Timer.duration_remaining = 25m00s; paused = true; next_duration = <fun>;
# +        unpause_cvar = <opaque> } |}]
#  
#    let%expect_test "timer created with 0 time" =
#      let timer = create (Duration.of_sec 0) in
# @@ -85,7 +85,7 @@ module Test = struct
#      stop timer ;
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = ; paused = true; next_duration = <fun>;
# +      { Timer.duration_remaining = 0.000μs; paused = true; next_duration = <fun>;
#          unpause_cvar = <opaque> } |}]
#  
#  end



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build owork 0.1.1
+- 
- No changes have been performed
# To update the current shell environment, run: eval $(opam env)
2026-04-13 14:44.52 ---> saved as "2283a2cbb169edf0d81987fae4286f7693c527ca3e53c8462aa37f67107cf044"

/home/opam: (run (shell  "opam reinstall --with-test --verbose owork.0.1.1;\
                        \n        res=$?;\
                        \n        test \"$res\" != 31 && exit \"$res\";\
                        \n        export OPAMCLI=2.0;\
                        \n        build_dir=$(opam var prefix)/.opam-switch/build;\
                        \n        failed=$(ls \"$build_dir\");\
                        \n        partial_fails=\"\";\
                        \n        for pkg in $failed; do\
                        \n          if opam show -f x-ci-accept-failures: \"$pkg\" | grep -qF \"\\\"debian-13\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'owork.0.1.1' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
The following actions will be performed:
=== recompile 1 package
  - recompile owork 0.1.1

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  1/4: [owork.0.1.1: extract]
-> retrieved owork.0.1.1  (cached)
Processing  2/4: [owork: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "owork" "-j" "71" (CWD=/home/opam/.opam/4.14/.opam-switch/build/owork.0.1.1)
- (cd _build/default && /home/opam/.opam/4.14/bin/ocamlc.opt -w -40 -g -bin-annot -I exe/.main.eobjs/byte -I /home/opam/.opam/4.14/lib/astring -I /home/opam/.opam/4.14/lib/base -I /home/opam/.opam/4.14/lib/base/base_internalhash_types -I /home/opam/.opam/4.14/lib/base/caml -I /home/opam/.opam/4.14/lib/base/shadow_stdlib -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/cmdliner -I /home/opam/.opam/4.14/lib/duration -I /home/opam/.opam/4.14/lib/fmt -I /home/opam/.opam/4.14/lib/fmt/cli -I /home/opam/.opam/4.14/lib/fmt/tty -I /home/opam/.opam/4.14/lib/jane-street-headers -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/cli -I /home/opam/.opam/4.14/lib/logs/fmt -I /home/opam/.opam/4.14/lib/logs/lwt -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I /home/opam/.opam/4.14/lib/ppx_compare/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_deriving/runtime -I /home/opam/.opam/4.14/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_expect/collector -I /home/opam/.opam/4.14/lib/ppx_expect/common -I /home/opam/.opam/4.14/lib/ppx_expect/config -I /home/opam/.opam/4.14/lib/ppx_expect/config_types -I /home/opam/.opam/4.14/lib/ppx_hash/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_here/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_inline_test/config -I /home/opam/.opam/4.14/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/time_now -I lib/.owork.objs/byte -no-alias-deps -o exe/.main.eobjs/byte/main.cmo -c -impl exe/main.pp.ml)
- File "exe/main.ml", line 56, characters 2-11:
- 56 |   Term.info "owork" ~doc ~exits:Term.default_exits
-        ^^^^^^^^^
- Alert deprecated: Cmdliner.Term.info
- Use Cmd.info instead.
- File "exe/main.ml", line 56, characters 32-50:
- 56 |   Term.info "owork" ~doc ~exits:Term.default_exits
-                                      ^^^^^^^^^^^^^^^^^^
- Alert deprecated: Cmdliner.Term.default_exits
- Use Cmd.Exit.defaults or Cmd.info's defaults ~exits value instead.
- File "exe/main.ml", line 58, characters 9-18:
- 58 | let () = Term.exit @@ Term.eval (program, info)
-               ^^^^^^^^^
- Alert deprecated: Cmdliner.Term.exit
- Use Stdlib.exit and Cmd.eval instead.
- File "exe/main.ml", line 58, characters 22-31:
- 58 | let () = Term.exit @@ Term.eval (program, info)
-                            ^^^^^^^^^
- Alert deprecated: Cmdliner.Term.eval
- Use Cmd.v and one of Cmd.eval* instead.
- (cd _build/default && /home/opam/.opam/4.14/bin/ocamlopt.opt -w -40 -g -I lib/.owork.objs/byte -I lib/.owork.objs/native -I /home/opam/.opam/4.14/lib/astring -I /home/opam/.opam/4.14/lib/base -I /home/opam/.opam/4.14/lib/base/base_internalhash_types -I /home/opam/.opam/4.14/lib/base/caml -I /home/opam/.opam/4.14/lib/base/shadow_stdlib -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/duration -I /home/opam/.opam/4.14/lib/jane-street-headers -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/lwt -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I /home/opam/.opam/4.14/lib/ppx_compare/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_deriving/runtime -I /home/opam/.opam/4.14/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_expect/collector -I /home/opam/.opam/4.14/lib/ppx_expect/common -I /home/opam/.opam/4.14/lib/ppx_expect/config -I /home/opam/.opam/4.14/lib/ppx_expect/config_types -I /home/opam/.opam/4.14/lib/ppx_hash/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_here/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_inline_test/config -I /home/opam/.opam/4.14/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/time_now -intf-suffix .ml -no-alias-deps -open Owork -o lib/.owork.objs/native/owork__Timer.cmx -c -impl lib/timer.pp.ml)
- File "lib/timer.ml", line 30, characters 19-33:
- 30 |       let%lwt () = Lwt_unix.yield () in
-                         ^^^^^^^^^^^^^^
- Alert deprecated: Lwt_unix.yield
- Use Lwt.pause instead
- (cd _build/default && /home/opam/.opam/4.14/bin/ocamlopt.opt -w -40 -g -I exe/.main.eobjs/byte -I exe/.main.eobjs/native -I /home/opam/.opam/4.14/lib/astring -I /home/opam/.opam/4.14/lib/base -I /home/opam/.opam/4.14/lib/base/base_internalhash_types -I /home/opam/.opam/4.14/lib/base/caml -I /home/opam/.opam/4.14/lib/base/shadow_stdlib -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/cmdliner -I /home/opam/.opam/4.14/lib/duration -I /home/opam/.opam/4.14/lib/fmt -I /home/opam/.opam/4.14/lib/fmt/cli -I /home/opam/.opam/4.14/lib/fmt/tty -I /home/opam/.opam/4.14/lib/jane-street-headers -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/cli -I /home/opam/.opam/4.14/lib/logs/fmt -I /home/opam/.opam/4.14/lib/logs/lwt -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I /home/opam/.opam/4.14/lib/ppx_compare/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_deriving/runtime -I /home/opam/.opam/4.14/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_expect/collector -I /home/opam/.opam/4.14/lib/ppx_expect/common -I /home/opam/.opam/4.14/lib/ppx_expect/config -I /home/opam/.opam/4.14/lib/ppx_expect/config_types -I /home/opam/.opam/4.14/lib/ppx_hash/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_here/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_inline_test/config -I /home/opam/.opam/4.14/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/time_now -I lib/.owork.objs/byte -I lib/.owork.objs/native -intf-suffix .ml -no-alias-deps -o exe/.main.eobjs/native/main.cmx -c -impl exe/main.pp.ml)
- File "exe/main.ml", line 56, characters 2-11:
- 56 |   Term.info "owork" ~doc ~exits:Term.default_exits
-        ^^^^^^^^^
- Alert deprecated: Cmdliner.Term.info
- Use Cmd.info instead.
- File "exe/main.ml", line 56, characters 32-50:
- 56 |   Term.info "owork" ~doc ~exits:Term.default_exits
-                                      ^^^^^^^^^^^^^^^^^^
- Alert deprecated: Cmdliner.Term.default_exits
- Use Cmd.Exit.defaults or Cmd.info's defaults ~exits value instead.
- File "exe/main.ml", line 58, characters 9-18:
- 58 | let () = Term.exit @@ Term.eval (program, info)
-               ^^^^^^^^^
- Alert deprecated: Cmdliner.Term.exit
- Use Stdlib.exit and Cmd.eval instead.
- File "exe/main.ml", line 58, characters 22-31:
- 58 | let () = Term.exit @@ Term.eval (program, info)
-                            ^^^^^^^^^
- Alert deprecated: Cmdliner.Term.eval
- Use Cmd.v and one of Cmd.eval* instead.
Processing  2/4: [owork: dune runtest]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "runtest" "-p" "owork" "-j" "71" (CWD=/home/opam/.opam/4.14/.opam-switch/build/owork.0.1.1)
- (cd _build/default/lib && .owork.inline-tests/inline-test-runner.exe inline-test-runner owork -partition timer.ml -source-tree-root .. -diff-cmd - -show-counts -strict)
- 4 tests ran, 0 test_modules ran
- File "lib/timer.ml", line 1, characters 0-0:
- /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/lib/timer.ml _build/default/lib/timer.ml.corrected
- diff --git a/_build/default/lib/timer.ml b/_build/default/lib/timer.ml.corrected
- index 063e0c9..17e8855 100644
- --- a/_build/default/lib/timer.ml
- +++ b/_build/default/lib/timer.ml.corrected
- @@ -59,16 +59,16 @@ module Test = struct
-      let timer = create (Duration.of_min 25) in
-      print_timer timer ;
-      [%expect {|
- -      { Timer.duration_remaining = 25 minutes; paused = true;
- -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
- +      { Timer.duration_remaining = 25m00s; paused = true; next_duration = <fun>;
- +        unpause_cvar = <opaque> } |}]
-  
-    let%expect_test "start timer" =
-      let timer = create (Duration.of_min 25) in
-      start timer ;
-      print_timer timer ;
-      [%expect {|
- -      { Timer.duration_remaining = 25 minutes; paused = false;
- -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
- +      { Timer.duration_remaining = 25m00s; paused = false; next_duration = <fun>;
- +        unpause_cvar = <opaque> } |}]
-  
-    let%expect_test "pause timer" =
-      let timer = create (Duration.of_min 25) in
- @@ -76,8 +76,8 @@ module Test = struct
-      stop timer ;
-      print_timer timer ;
-      [%expect {|
- -      { Timer.duration_remaining = 25 minutes; paused = true;
- -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
- +      { Timer.duration_remaining = 25m00s; paused = true; next_duration = <fun>;
- +        unpause_cvar = <opaque> } |}]
-  
-    let%expect_test "timer created with 0 time" =
-      let timer = create (Duration.of_sec 0) in
- @@ -85,7 +85,7 @@ module Test = struct
-      stop timer ;
-      print_timer timer ;
-      [%expect {|
- -      { Timer.duration_remaining = ; paused = true; next_duration = <fun>;
- +      { Timer.duration_remaining = 0.000μs; paused = true; next_duration = <fun>;
-          unpause_cvar = <opaque> } |}]
-  
-  end
[ERROR] The compilation of owork.0.1.1 failed at "dune runtest -p owork -j 71".

#=== ERROR while compiling owork.0.1.1 ========================================#
# context              2.5.0 | linux/x86_64 | ocaml-base-compiler.4.14.3 | file:///home/opam/opam-repository
# path                 ~/.opam/4.14/.opam-switch/build/owork.0.1.1
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune runtest -p owork -j 71
# exit-code            1
# env-file             ~/.opam/log/owork-7-2f7fab.env
# output-file          ~/.opam/log/owork-7-2f7fab.out
### output ###
# (cd _build/default/lib && .owork.inline-tests/inline-test-runner.exe inline-test-runner owork -partition timer.ml -source-tree-root .. -diff-cmd - -show-counts -strict)
# 4 tests ran, 0 test_modules ran
# File "lib/timer.ml", line 1, characters 0-0:
# /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/lib/timer.ml _build/default/lib/timer.ml.corrected
# diff --git a/_build/default/lib/timer.ml b/_build/default/lib/timer.ml.corrected
# index 063e0c9..17e8855 100644
# --- a/_build/default/lib/timer.ml
# +++ b/_build/default/lib/timer.ml.corrected
# @@ -59,16 +59,16 @@ module Test = struct
#      let timer = create (Duration.of_min 25) in
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = 25 minutes; paused = true;
# -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
# +      { Timer.duration_remaining = 25m00s; paused = true; next_duration = <fun>;
# +        unpause_cvar = <opaque> } |}]
#  
#    let%expect_test "start timer" =
#      let timer = create (Duration.of_min 25) in
#      start timer ;
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = 25 minutes; paused = false;
# -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
# +      { Timer.duration_remaining = 25m00s; paused = false; next_duration = <fun>;
# +        unpause_cvar = <opaque> } |}]
#  
#    let%expect_test "pause timer" =
#      let timer = create (Duration.of_min 25) in
# @@ -76,8 +76,8 @@ module Test = struct
#      stop timer ;
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = 25 minutes; paused = true;
# -        next_duration = <fun>; unpause_cvar = <opaque> } |}]
# +      { Timer.duration_remaining = 25m00s; paused = true; next_duration = <fun>;
# +        unpause_cvar = <opaque> } |}]
#  
#    let%expect_test "timer created with 0 time" =
#      let timer = create (Duration.of_sec 0) in
# @@ -85,7 +85,7 @@ module Test = struct
#      stop timer ;
#      print_timer timer ;
#      [%expect {|
# -      { Timer.duration_remaining = ; paused = true; next_duration = <fun>;
# +      { Timer.duration_remaining = 0.000μs; paused = true; next_duration = <fun>;
#          unpause_cvar = <opaque> } |}]
#  
#  end



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build owork 0.1.1
+- 
- No changes have been performed
# To update the current shell environment, run: eval $(opam env)
'opam reinstall --with-test --verbose owork.0.1.1' failed.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
[WARNING] OPAMCONFIRMLEVEL was ignored because CLI 2.0 was requested and it was introduced in 2.1.
"/usr/bin/env" "bash" "-c" "opam reinstall --with-test --verbose owork.0.1.1;
        res=$?;
        test "$res" != 31 && exit "$res";
        export OPAMCLI=2.0;
        build_dir=$(opam var prefix)/.opam-switch/build;
        failed=$(ls "$build_dir");
        partial_fails="";
        for pkg in $failed; do
          if opam show -f x-ci-accept-failures: "$pkg" | grep -qF "\"debian-13\""; then
            echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.";
          fi;
          test "$pkg" != 'owork.0.1.1' && partial_fails="$partial_fails $pkg";
        done;
        test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}";
        exit 1" failed with exit status 1
2026-04-13 14:45.16: Job failed: Failed: Build failed
2026-04-13 14:45.16: Log analysis:
2026-04-13 14:45.16: >>> 
[ERROR] The compilation of owork.0.1.1 failed at "dune runtest -p owork -j 71".
 (score = 20)
2026-04-13 14:45.16: >>> 
[ERROR] The compilation of owork.0.1.1 failed at "dune runtest -p owork -j 71".
 (score = 20)
2026-04-13 14:45.16: The compilation of owork.0.1.1 failed at "dune runtest -p owork -j 71".