2026-04-13 11:51.36: New job: test hannesm/duration https://github.com/hannesm/duration.git#refs/heads/main (35555bd1082d8ffad74eee090670e5f826791f76) (linux-x86_64:debian-13-4.14_opam-2.5) Base: ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126 Opam project build To reproduce locally: git clone --recursive "https://github.com/hannesm/duration.git" -b "main" && cd "duration" && git reset --hard 35555bd1 cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126 # debian-13-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 d06cfb1853afceb1dc127f88edaac3f8110bf6cc || git fetch origin master) && git reset -q --hard d06cfb1853afceb1dc127f88edaac3f8110bf6cc && git log --no-decorate -n1 --oneline && opam update -u COPY --chown=1000:1000 duration.opam ./ RUN opam pin add -yn duration.dev './' RUN echo '(lang dune 3.0)' > './dune-project' ENV DEPS="alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-threads.base base-unix.base cmdliner.2.1.0 dune.3.22.1 fmt.0.11.0 ocaml.4.14.3 ocaml-base-compiler.4.14.3 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.14.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4" ENV CI="true" ENV OCAMLCI="true" RUN opam update --depexts && opam install --cli=2.5 --depext-only -y duration.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-04-13 11:51.36: Using cache hint "hannesm/duration-ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126-debian-13-4.14_opam-2.5-8443bdcb30f0dcfef175315e01b3cb68" 2026-04-13 11:51.36: Using OBuilder spec: ((from ocaml/opam:debian-13-ocaml-4.14@sha256:ec5999d94ff5da2754b2d163583ef868ccaefbaaabbe66412fde8712ae6f5126) (comment debian-13-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 d06cfb1853afceb1dc127f88edaac3f8110bf6cc || git fetch origin master) && git reset -q --hard d06cfb1853afceb1dc127f88edaac3f8110bf6cc && git log --no-decorate -n1 --oneline && opam update -u")) (copy (src duration.opam) (dst ./)) (run (network host) (shell "opam pin add -yn duration.dev './'")) (run (shell "echo '(lang dune 3.0)' > './dune-project'")) (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-threads.base base-unix.base cmdliner.2.1.0 dune.3.22.1 fmt.0.11.0 ocaml.4.14.3 ocaml-base-compiler.4.14.3 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.14.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4") (env CI true) (env OCAMLCI true) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y duration.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-04-13 11:51.36: Waiting for resource in pool OCluster 2026-04-13 11:51.36: Waiting for worker… 2026-04-13 11:51.55: Cancelling: Auto-cancelling job because it is no longer needed 2026-04-13 11:51.55: Got resource from pool OCluster Building on clete.caelum.ci.dev HEAD is now at d9be09e Improve documentation for of_string{,_exn} HEAD is now at 35555bd Merge pull request #10 from dinosaure/of_string_exn (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 867c8a52ad10: Download complete 01ca275a6ca2: Verifying Checksum 01ca275a6ca2: Download complete 3b99adeb504e: Verifying Checksum 3b99adeb504e: 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 11:51.57 ---> using "d0e330c08fa445d83f06df86dbe749aac73c20b9c3be340824d01a143f189b82" from cache /: (comment debian-13-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-04-13 11:51.57 ---> using "f59e5580f17ca54c6c0f0e8726a93a153599c5e1ef8bf3f75a71ea998e4d5bd4" 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-04-13 11:51.57 ---> using "e5f050c685be6325713c9c81ec0604f69b60a3eb2e3c52aa4f8819fabb9fa2cd" from cache /src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) Linux 6.8.0-107-generic The OCaml toplevel, version 4.14.3 2.5.0 2026-04-13 11:51.57 ---> using "71c131cebc84b80d37c64736b2b671e51b17c599ce05b0c60675c940259a4b2d" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2026-04-13 11:51.57 ---> using "a5f96b2cefe3b06adfa1cbb2cf3eb286dd052053da8bf6c0b210857fc5d42690" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e d06cfb1853afceb1dc127f88edaac3f8110bf6cc || git fetch origin master) && git reset -q --hard d06cfb1853afceb1dc127f88edaac3f8110bf6cc && git log --no-decorate -n1 --oneline && opam update -u")) d06cfb1853 Merge pull request #29632 from shonfeder/release-dune-3.22.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.5.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-04-13 11:51.57 ---> using "2dc58a852cf9690148b067a959473338a0a7bfd031c39e51e4e30dcacfedb076" from cache /src: (copy (src duration.opam) (dst ./)) 2026-04-13 11:51.57 ---> using "cf61b82bebea5f3c234a1ba117977793a7bdf09687ae7bead5fa23df1f76e216" from cache /src: (run (network host) (shell "opam pin add -yn duration.dev './'")) [duration.dev] synchronised (file:///src) duration is now pinned to file:///src (version dev) 2026-04-13 11:51.57 ---> using "b3bd444edd53918931c7ceb7d658d0a2993acbe5cd1f69556d29f4455f8cd81f" from cache /src: (run (shell "echo '(lang dune 3.0)' > './dune-project'")) 2026-04-13 11:51.57 ---> using "53e5d743e34c2a2a2a27999661f37ce4bf29797adf6fd77af4fb7a6bafa3603a" from cache /src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-threads.base base-unix.base cmdliner.2.1.0 dune.3.22.1 fmt.0.11.0 ocaml.4.14.3 ocaml-base-compiler.4.14.3 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.14.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4") /src: (env CI true) /src: (env OCAMLCI true) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y duration.dev $DEPS")) + /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 (936 kB/s) - Reading package lists... - <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> [duration.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.3). [NOTE] Package ocaml is already installed (current version is 4.14.3). [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-04-13 11:51.57 ---> using "49be6af09b58f230e52367f547bd99c3b458d4b06374a2694444775fa5a70117" 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.3). [NOTE] Package ocaml is already installed (current version is 4.14.3). [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 12 packages - install alcotest 1.9.1 - install astring 0.8.5 - install cmdliner 2.1.0 - install dune 3.22.1 - install fmt 0.11.0 - install ocaml-syntax-shims 1.0.0 - install ocamlbuild 0.16.1 - install ocamlfind 1.9.8 - install re 1.14.0 - install stdlib-shims 0.3.0 - install topkg 1.1.1 - install uutf 1.0.4 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved alcotest.1.9.1 (cached) -> retrieved astring.0.8.5 (cached) -> retrieved cmdliner.2.1.0 (cached) -> retrieved fmt.0.11.0 (cached) -> retrieved ocaml-syntax-shims.1.0.0 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved re.1.14.0 (cached) -> retrieved stdlib-shims.0.3.0 (cached) -> retrieved uutf.1.0.4 (cached) -> retrieved topkg.1.1.1 (cached) -> retrieved dune.3.22.1 (cached) -> installed cmdliner.2.1.0 -> 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 dune.3.22.1 -> installed stdlib-shims.0.3.0 -> installed ocaml-syntax-shims.1.0.0 -> installed re.1.14.0 -> installed alcotest.1.9.1 Done. # To update the current shell environment, run: eval $(opam env) 2026-04-13 11:51.57 ---> using "e26523ba10c243057713762671b9c6fc58378470f368af9fc07235508bdf5975" from cache /src: (copy (src .) (dst /src)) 2026-04-13 11:51.57 ---> using "40fc8bc5ee1483beb8efcfa84f6b87aeaf6951510b2b72230e23e88c8b50c9d1" from cache /src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) (cd _build/default && ./tests.exe) Testing `Duration tests'. This run has ID `OZAN7OQJ'. [OK] Duration 0 of_us is good. [OK] Duration 1 to_us is good. [OK] Duration 2 inverse of/to_us. [OK] Duration 3 of_us is good. [OK] Duration 4 to_us is good. [OK] Duration 5 inverse of/to_us. [OK] Duration 6 of_ms is good. [OK] Duration 7 to_ms is good. [OK] Duration 8 inverse of/to_ms. [OK] Duration 9 of_ms is good. [OK] Duration 10 to_ms is good. [OK] Duration 11 inverse of/to_ms. [OK] Duration 12 of_sec is good. [OK] Duration 13 to_sec is good. [OK] Duration 14 inverse of/to_sec. [OK] Duration 15 of_sec is good. [OK] Duration 16 to_sec is good. [OK] Duration 17 inverse of/to_sec. [OK] Duration 18 of_min is good. [OK] Duration 19 to_min is good. [OK] Duration 20 inverse of/to_min. [OK] Duration 21 of_hour is good. [OK] Duration 22 to_hour is good. [OK] Duration 23 inverse of/to_hour. [OK] Duration 24 of_day is good. [OK] Duration 25 to_day is good. [OK] Duration 26 inverse of/to_day. [OK] Duration 27 of_year is good. [OK] Duration 28 to_year is good. [OK] Duration 29 inverse of/to_year. [OK] Duration 30 of_f is good. [OK] Duration 31 to_f is good. [OK] Duration 32 inverse of/to_f. [OK] Duration 33 of_string_exn. [OK] Duration 34 of_string_exn: composite. [OK] Duration 35 of_string_exn: duplicate metrics. [OK] Duration 36 of_string_exn: invalid metric. [OK] Duration 37 of_string_exn: malformed input. [OK] Duration 38 of_string_exn: out of range. [OK] Duration 39 of_string_exn: empty string. Full test results in `/src/_build/default/_build/_tests/Duration tests'. Test Successful in 0.006s. 40 tests run. 2026-04-13 11:51.57 ---> using "1a389cd09d34aa59c67ed21120a9c2619b5d3cd02d6c1ddc5529f6f3de356828" from cache Job succeeded