Organisationshannesmduration42b811 (main)ubuntu-22.04-4.14_opam-2.5

ubuntu-22.04-4.14_opam-2.5

Link Copied
Code Copied

Logs

2026-04-03 11:37.23: New job: test hannesm/duration https://github.com/hannesm/duration.git#refs/heads/main (42b811fcf5c0e07ccf17601d9a8a2c7f11e6f272) (linux-x86_64:ubuntu-22.04-4.14_opam-2.5)
Base: ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00
Opam project build


To reproduce locally:


git clone --recursive "https://github.com/hannesm/duration.git" -b "main" && cd "duration" && git reset --hard 42b811fc
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00
# ubuntu-22.04-4.14_opam-2.5
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN cd ~/opam-repository && (git cat-file -e 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.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 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-03 11:37.23: Using cache hint "hannesm/duration-ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00-ubuntu-22.04-4.14_opam-2.5-cf21013b5cc119165eeed9829ead8841"
2026-04-03 11:37.23: Using OBuilder spec:
((from ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00)
(comment ubuntu-22.04-4.14_opam-2.5)
(user (uid 1000) (gid 1000))
(env CLICOLOR_FORCE 1)
(env OPAMCOLOR always)
(workdir /src)
(run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam"))
(run (shell "opam init --reinit -ni"))
(run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
(workdir /src)
(run (shell "sudo chown opam /src"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 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.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 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-03 11:37.23: Waiting for resource in pool OCluster
2026-04-03 19:19.37: Waiting for worker…
2026-04-03 19:23.10: Got resource from pool OCluster
Building on doris.caelum.ci.dev
All commits already cached
HEAD is now at 42b811f add maintenance intent


(from ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00)
Unable to find image 'ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00' locally
docker.io/ocaml/opam@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00: Pulling from ocaml/opam
b1cba2e842ca: Pulling fs layer
421afdaed246: Pulling fs layer
4f870a39d887: Pulling fs layer
55a213a632b1: Pulling fs layer
45b4d0733e62: Pulling fs layer
3aeb1fde2a5c: Pulling fs layer
aafef83927b6: Pulling fs layer
bcf6200713a7: Pulling fs layer
44126a1f4f31: Pulling fs layer
640d0ce4ea89: Pulling fs layer
b5d13c755b81: Pulling fs layer
d4f408980979: Pulling fs layer
45b4d0733e62: Waiting
421afdaed246: Waiting
3aeb1fde2a5c: Waiting
a89dafa13071: Pulling fs layer
aafef83927b6: Waiting
b1cba2e842ca: Waiting
bcf6200713a7: Waiting
636fd786dcef: Pulling fs layer
640d0ce4ea89: Waiting
44126a1f4f31: Waiting
4f870a39d887: Waiting
b5d13c755b81: Waiting
31dae2391bd4: Pulling fs layer
d4f408980979: Waiting
55a213a632b1: Waiting
a89dafa13071: Waiting
8b28883ae878: Pulling fs layer
31dae2391bd4: Waiting
4a187d75ee24: Pulling fs layer
4a187d75ee24: Waiting
4f4fb700ef54: Pulling fs layer
15ef0a4fe052: Pulling fs layer
8b28883ae878: Waiting
4f4fb700ef54: Waiting
81aef10b7468: Pulling fs layer
8492c04426b2: Pulling fs layer
15ef0a4fe052: Waiting
81aef10b7468: Waiting
931be6b45df3: Pulling fs layer
8492c04426b2: Waiting
b3b41b093e1c: Pulling fs layer
931be6b45df3: Waiting
c66a499f18f1: Pulling fs layer
b3b41b093e1c: Waiting
dc859d65a979: Pulling fs layer
f9a4b7e83cbc: Pulling fs layer
dc859d65a979: Waiting
8406175b74f2: Pulling fs layer
d8a867e68b39: Pulling fs layer
8406175b74f2: Waiting
1b4507b9d94f: Pulling fs layer
86753f729f41: Pulling fs layer
1b4507b9d94f: Waiting
bb1554100fd0: Pulling fs layer
86753f729f41: Waiting
79f063451047: Pulling fs layer
bb1554100fd0: Waiting
af19aefa8c28: Pulling fs layer
18ae77be10c6: Pulling fs layer
af19aefa8c28: Waiting
23748796c9e7: Pulling fs layer
8a87c1d60ed6: Pulling fs layer
23748796c9e7: Waiting
18ae77be10c6: Waiting
f59dc0679c75: Pulling fs layer
8a87c1d60ed6: Waiting
d71672fc129c: Pulling fs layer
f59dc0679c75: Waiting
44dd0ab5fdef: Pulling fs layer
d71672fc129c: Waiting
931c13510f32: Pulling fs layer
44dd0ab5fdef: Waiting
75ed66e4849a: Pulling fs layer
931c13510f32: Waiting
19cc32431784: Pulling fs layer
6b082b8f59d1: Pulling fs layer
6b082b8f59d1: Waiting
19cc32431784: Waiting
421afdaed246: Verifying Checksum
421afdaed246: Download complete
4f870a39d887: Verifying Checksum
4f870a39d887: Download complete
b1cba2e842ca: Verifying Checksum
b1cba2e842ca: Download complete
45b4d0733e62: Download complete
55a213a632b1: Verifying Checksum
55a213a632b1: Download complete
aafef83927b6: Verifying Checksum
aafef83927b6: Download complete
b1cba2e842ca: Pull complete
421afdaed246: Pull complete
4f870a39d887: Pull complete
44126a1f4f31: Verifying Checksum
44126a1f4f31: Download complete
55a213a632b1: Pull complete
45b4d0733e62: Pull complete
bcf6200713a7: Verifying Checksum
bcf6200713a7: Download complete
3aeb1fde2a5c: Verifying Checksum
3aeb1fde2a5c: Download complete
d4f408980979: Verifying Checksum
d4f408980979: Download complete
640d0ce4ea89: Verifying Checksum
640d0ce4ea89: Download complete
b5d13c755b81: Verifying Checksum
b5d13c755b81: Download complete
636fd786dcef: Verifying Checksum
636fd786dcef: Download complete
a89dafa13071: Download complete
31dae2391bd4: Download complete
8b28883ae878: Verifying Checksum
8b28883ae878: Download complete
4a187d75ee24: Download complete
4f4fb700ef54: Download complete
15ef0a4fe052: Download complete
81aef10b7468: Download complete
8492c04426b2: Verifying Checksum
8492c04426b2: Download complete
931be6b45df3: Download complete
b3b41b093e1c: Verifying Checksum
b3b41b093e1c: Download complete
c66a499f18f1: Verifying Checksum
c66a499f18f1: Download complete
dc859d65a979: Download complete
f9a4b7e83cbc: Download complete
8406175b74f2: Verifying Checksum
8406175b74f2: Download complete
d8a867e68b39: Verifying Checksum
d8a867e68b39: Download complete
1b4507b9d94f: Download complete
86753f729f41: Download complete
bb1554100fd0: Verifying Checksum
bb1554100fd0: Download complete
79f063451047: Verifying Checksum
79f063451047: Download complete
af19aefa8c28: Download complete
23748796c9e7: Download complete
f59dc0679c75: Verifying Checksum
f59dc0679c75: Download complete
d71672fc129c: Verifying Checksum
d71672fc129c: Download complete
44dd0ab5fdef: Download complete
3aeb1fde2a5c: Pull complete
aafef83927b6: Pull complete
bcf6200713a7: Pull complete
44126a1f4f31: Pull complete
640d0ce4ea89: Pull complete
b5d13c755b81: Pull complete
d4f408980979: Pull complete
8a87c1d60ed6: Verifying Checksum
8a87c1d60ed6: Download complete
a89dafa13071: Pull complete
75ed66e4849a: Verifying Checksum
636fd786dcef: Pull complete
18ae77be10c6: Verifying Checksum
18ae77be10c6: Download complete
19cc32431784: Download complete
31dae2391bd4: Pull complete
8b28883ae878: Pull complete
4a187d75ee24: Pull complete
6b082b8f59d1: Download complete
931c13510f32: Verifying Checksum
931c13510f32: Download complete
4f4fb700ef54: Pull complete
15ef0a4fe052: Pull complete
81aef10b7468: Pull complete
8492c04426b2: Pull complete
931be6b45df3: Pull complete
b3b41b093e1c: Pull complete
c66a499f18f1: Pull complete
dc859d65a979: Pull complete
f9a4b7e83cbc: Pull complete
8406175b74f2: Pull complete
d8a867e68b39: Pull complete
1b4507b9d94f: Pull complete
86753f729f41: Pull complete
bb1554100fd0: Pull complete
79f063451047: Pull complete
af19aefa8c28: Pull complete
18ae77be10c6: Pull complete
23748796c9e7: Pull complete
8a87c1d60ed6: Pull complete
f59dc0679c75: Pull complete
d71672fc129c: Pull complete
44dd0ab5fdef: Pull complete
931c13510f32: Pull complete
75ed66e4849a: Pull complete
19cc32431784: Pull complete
6b082b8f59d1: Pull complete
Digest: sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00
Status: Downloaded newer image for ocaml/opam@sha256:ee7d8a3a4cace31d410c47ddbd98caf693324ad5c7e83d32c213a00aabdb9d00
2026-04-03 19:25.23 ---> saved as "752ab5c6ad79de967908e3073b7fceaa0abf89b6f293aaa06b19d969149dde3c"


/: (comment ubuntu-22.04-4.14_opam-2.5)


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


/: (env CLICOLOR_FORCE 1)


/: (env OPAMCOLOR always)


/: (workdir /src)


/src: (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam"))
2026-04-03 19:25.23 ---> saved as "1a1eff4052ea3104fb7e5ec5761842d0cfe9656287a6882b1eac7caa3efa349f"


/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
[NOTE] The 'jobs' option was reset, its value was 71 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
opam option jobs=71 --global
Format upgrade done.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-04-03 19:25.48 ---> saved as "2e1e4395ca2a0d261913003a3e43f34a1f0efdc272202fe92ed711df2d6f3e43"


/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 6.8.0-106-generic
The OCaml toplevel, version 4.14.2
2.5.0
2026-04-03 19:25.49 ---> saved as "95ff2ee8d7fe66b59ec0e45f834976653a81c7090dc41602580dd6f1b36445d7"


/src: (workdir /src)


/src: (run (shell "sudo chown opam /src"))
2026-04-03 19:25.50 ---> saved as "71b4ea2e8ceb4f55c80eaf0cf25522e581c7d7b5464709106ded0f2c4ab7d51b"


/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"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
ffb54b9bdd..d28e8bf13a  master     -> origin/master
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-03 19:26.08 ---> saved as "d2fc587568fdb697f243ec999a343ce42a59de5bbedc08f2c588b9895362d2ac"


/src: (copy (src duration.opam) (dst ./))
2026-04-03 19:26.08 ---> saved as "6228ee261813ef98f03e05014783397fd51875ae867694b7548a467f1309992c"


/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-03 19:26.11 ---> saved as "fa129a0b9c0b982a8d23151569df4f1a783ba40a2640d840d5c51e9905810925"


/src: (run (shell "echo '(lang dune 3.0)' > './dune-project'"))
2026-04-03 19:26.11 ---> saved as "cf0fd4c692dc1a491dddd81e372fcc27e15187a5b3b36c12fa0825ea43787581"


/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.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 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://archive.ubuntu.com/ubuntu jammy InRelease
- Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
- Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
- Get:4 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1310 kB]
- Get:5 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [6803 kB]
- Get:6 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [3844 kB]
- Get:7 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
- Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [4219 kB]
- Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1622 kB]
- Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [7125 kB]
- Get:11 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [35.6 kB]
- Get:12 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [84.0 kB]
- Fetched 25.4 MB in 6s (4053 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.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
# To update the current shell environment, run: eval $(opam env)
2026-04-03 19:26.31 ---> saved as "30af54b9a0e0fd0140e1aff50c0a17fac7996df5ebb2e7323ee90bbe15759bad"


/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 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 ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> 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-03 19:27.14 ---> saved as "2b9a70daf39b1bdf0b9031612d111c6db07df2b011b83f9d85a79c8ff94388ee"


/src: (copy (src .) (dst /src))
2026-04-03 19:27.15 ---> saved as "6f06f5db08f1c949044b1250a55e767c1ad313f900f36b4592f22745a76ab0f6"


/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 `IVKRNU5W'.


[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.


Full test results in `/src/_build/default/_build/_tests/Duration tests'.
Test Successful in 0.003s. 33 tests run.
2026-04-03 19:27.17 ---> saved as "20bbeea4b42664cce404fd9851d4663fb7f40e024907260cc9c43208ccc61fed"
Job succeeded
2026-04-03 19:27.17: Job succeeded