(for PR #28919)

2025-11-18 17:32.01: New job: test yocaml.2.7.0, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/28919/head (d4ca2c8996e7b80cf11028ad8c43876c747e0880)
                              on fedora-43-ocaml-5.4/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/28919/head" && git reset --hard d4ca2c89
git fetch origin master
git merge --no-edit 5b6623e1a6044ddcc5808644cab9ba88dfd5e8c3
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:fedora-43-ocaml-5.4@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566
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 yocaml.2.7.0 2.7.0
RUN opam reinstall yocaml.2.7.0; \
    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 "\"fedora-43\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'yocaml.2.7.0' && 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 yocaml.2.7.0) || true
RUN opam reinstall --with-test --verbose yocaml.2.7.0; \
    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 "\"fedora-43\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'yocaml.2.7.0' && 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 .

2025-11-18 17:32.01: Using cache hint "ocaml/opam:fedora-43-ocaml-5.4@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566-yocaml.2.7.0-d4ca2c8996e7b80cf11028ad8c43876c747e0880"
2025-11-18 17:32.01: Using OBuilder spec:
((from ocaml/opam:fedora-43-ocaml-5.4@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566)
 (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 yocaml.2.7.0 2.7.0"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall yocaml.2.7.0;\
             \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 \"\\\"fedora-43\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'yocaml.2.7.0' && 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 yocaml.2.7.0) || true"))
 (run (shell  "opam reinstall --with-test --verbose yocaml.2.7.0;\
             \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 \"\\\"fedora-43\\\"\"; then\
             \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
             \n          fi;\
             \n          test \"$pkg\" != 'yocaml.2.7.0' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2025-11-18 17:32.01: Waiting for resource in pool OCluster
2025-11-18 17:34.48: Waiting for worker…
2025-11-18 17:38.57: Got resource from pool OCluster
Building on doris.caelum.ci.dev
All commits already cached
HEAD is now at 5b6623e1a6 Merge pull request #28905 from lindig/expr
Updating 5b6623e1a6..d4ca2c8996
Fast-forward
 packages/yocaml/yocaml.2.7.0/opam                  | 50 ++++++++++++++++++++++
 packages/yocaml_cmarkit/yocaml_cmarkit.2.7.0/opam  | 42 ++++++++++++++++++
 packages/yocaml_eio/yocaml_eio.2.7.0/opam          | 44 +++++++++++++++++++
 packages/yocaml_git/yocaml_git.2.7.0/opam          | 49 +++++++++++++++++++++
 packages/yocaml_jingoo/yocaml_jingoo.2.7.0/opam    | 41 ++++++++++++++++++
 packages/yocaml_liquid/yocaml_liquid.2.7.0/opam    | 41 ++++++++++++++++++
 .../yocaml_markdown/yocaml_markdown.2.7.0/opam     | 44 +++++++++++++++++++
 .../yocaml_mustache/yocaml_mustache.2.7.0/opam     | 41 ++++++++++++++++++
 packages/yocaml_omd/yocaml_omd.2.7.0/opam          | 42 ++++++++++++++++++
 packages/yocaml_otoml/yocaml_otoml.2.7.0/opam      | 41 ++++++++++++++++++
 packages/yocaml_runtime/yocaml_runtime.2.7.0/opam  | 45 +++++++++++++++++++
 .../yocaml_syndication.2.7.0/opam                  | 44 +++++++++++++++++++
 packages/yocaml_unix/yocaml_unix.2.7.0/opam        | 42 ++++++++++++++++++
 packages/yocaml_yaml/yocaml_yaml.2.7.0/opam        | 41 ++++++++++++++++++
 14 files changed, 607 insertions(+)
 create mode 100644 packages/yocaml/yocaml.2.7.0/opam
 create mode 100644 packages/yocaml_cmarkit/yocaml_cmarkit.2.7.0/opam
 create mode 100644 packages/yocaml_eio/yocaml_eio.2.7.0/opam
 create mode 100644 packages/yocaml_git/yocaml_git.2.7.0/opam
 create mode 100644 packages/yocaml_jingoo/yocaml_jingoo.2.7.0/opam
 create mode 100644 packages/yocaml_liquid/yocaml_liquid.2.7.0/opam
 create mode 100644 packages/yocaml_markdown/yocaml_markdown.2.7.0/opam
 create mode 100644 packages/yocaml_mustache/yocaml_mustache.2.7.0/opam
 create mode 100644 packages/yocaml_omd/yocaml_omd.2.7.0/opam
 create mode 100644 packages/yocaml_otoml/yocaml_otoml.2.7.0/opam
 create mode 100644 packages/yocaml_runtime/yocaml_runtime.2.7.0/opam
 create mode 100644 packages/yocaml_syndication/yocaml_syndication.2.7.0/opam
 create mode 100644 packages/yocaml_unix/yocaml_unix.2.7.0/opam
 create mode 100644 packages/yocaml_yaml/yocaml_yaml.2.7.0/opam

(from ocaml/opam:fedora-43-ocaml-5.4@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566)
Unable to find image 'ocaml/opam:fedora-43-ocaml-5.4@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566' locally
docker.io/ocaml/opam@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566: Pulling from ocaml/opam
3a6ccf50917d: Pulling fs layer
2ac39db0f7b1: Pulling fs layer
4ab95fa37585: Pulling fs layer
ef05642a6c19: Pulling fs layer
6ce4105a6817: Pulling fs layer
3a6ccf50917d: Waiting
2ac39db0f7b1: Waiting
4ab95fa37585: Waiting
ef05642a6c19: Waiting
6ce4105a6817: Waiting
482e731bee2c: Pulling fs layer
82b20b1785fc: Pulling fs layer
5033efba3ea4: Pulling fs layer
482e731bee2c: Waiting
ac061f34d5de: Pulling fs layer
82b20b1785fc: Waiting
5033efba3ea4: Waiting
ac061f34d5de: Waiting
3699d934db19: Pulling fs layer
c70084606501: Pulling fs layer
92cba88bcd96: Pulling fs layer
3699d934db19: Waiting
87d6cf018c95: Pulling fs layer
92cba88bcd96: Waiting
47a5774c8fa4: Pulling fs layer
a7a793f430ef: Pulling fs layer
c70084606501: Waiting
50749af763e4: Pulling fs layer
1931ff52ea8f: Pulling fs layer
d6cbdb0b2976: Pulling fs layer
87d6cf018c95: Waiting
c21f3fb8010b: Pulling fs layer
006e8a0d5bfe: Pulling fs layer
a7a793f430ef: Waiting
1931ff52ea8f: Waiting
4f4fb700ef54: Pulling fs layer
50749af763e4: Waiting
bff3cbb02176: Pulling fs layer
b5138c38b1e4: Pulling fs layer
f9df0a6b27ec: Pulling fs layer
199f7dd22bb1: Pulling fs layer
d6cbdb0b2976: Waiting
4704820b8848: Pulling fs layer
4f4fb700ef54: Waiting
813e8e89161a: Pulling fs layer
c21f3fb8010b: Waiting
bff3cbb02176: Waiting
3fef5dd9f9c7: Pulling fs layer
f9df0a6b27ec: Waiting
33b83451bd83: Pulling fs layer
199f7dd22bb1: Waiting
3fef5dd9f9c7: Waiting
f32a57644710: Pulling fs layer
4704820b8848: Waiting
813e8e89161a: Waiting
40216abfd9f1: Pulling fs layer
f32a57644710: Waiting
33b83451bd83: Waiting
d689b2a1b34b: Pulling fs layer
c515a0f2353f: Pulling fs layer
6b7f7c537f40: Pulling fs layer
d689b2a1b34b: Waiting
2def47abdae6: Pulling fs layer
fd11b9527539: Pulling fs layer
b49b2a2f9119: Pulling fs layer
c515a0f2353f: Waiting
23b9806e7d7a: Pulling fs layer
6b7f7c537f40: Waiting
251f6be3be0f: Pulling fs layer
b49b2a2f9119: Waiting
fd11b9527539: Waiting
77df5933f202: Pulling fs layer
2def47abdae6: Waiting
f363410542aa: Pulling fs layer
251f6be3be0f: Waiting
23b9806e7d7a: Waiting
02b0f83c8144: Pulling fs layer
561ad12063d7: Pulling fs layer
bb777ec2f169: Pulling fs layer
02b0f83c8144: Waiting
561ad12063d7: Waiting
3a6ccf50917d: Verifying Checksum
3a6ccf50917d: Download complete
2ac39db0f7b1: Verifying Checksum
2ac39db0f7b1: Download complete
3a6ccf50917d: Pull complete
2ac39db0f7b1: Pull complete
ef05642a6c19: Verifying Checksum
ef05642a6c19: Download complete
6ce4105a6817: Verifying Checksum
6ce4105a6817: Download complete
482e731bee2c: Verifying Checksum
482e731bee2c: Download complete
82b20b1785fc: Verifying Checksum
82b20b1785fc: Download complete
5033efba3ea4: Verifying Checksum
5033efba3ea4: Download complete
ac061f34d5de: Verifying Checksum
ac061f34d5de: Download complete
3699d934db19: Verifying Checksum
3699d934db19: Download complete
c70084606501: Verifying Checksum
c70084606501: Download complete
92cba88bcd96: Verifying Checksum
92cba88bcd96: Download complete
87d6cf018c95: Download complete
47a5774c8fa4: Download complete
a7a793f430ef: Verifying Checksum
a7a793f430ef: Download complete
50749af763e4: Download complete
1931ff52ea8f: Download complete
d6cbdb0b2976: Verifying Checksum
d6cbdb0b2976: Download complete
c21f3fb8010b: Verifying Checksum
c21f3fb8010b: Download complete
006e8a0d5bfe: Verifying Checksum
006e8a0d5bfe: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
bff3cbb02176: Verifying Checksum
bff3cbb02176: Download complete
b5138c38b1e4: Verifying Checksum
b5138c38b1e4: Download complete
f9df0a6b27ec: Verifying Checksum
f9df0a6b27ec: Download complete
199f7dd22bb1: Verifying Checksum
199f7dd22bb1: Download complete
4704820b8848: Verifying Checksum
4704820b8848: Download complete
813e8e89161a: Verifying Checksum
813e8e89161a: Download complete
3fef5dd9f9c7: Verifying Checksum
3fef5dd9f9c7: Download complete
33b83451bd83: Verifying Checksum
33b83451bd83: Download complete
f32a57644710: Verifying Checksum
f32a57644710: Download complete
4ab95fa37585: Verifying Checksum
4ab95fa37585: Download complete
40216abfd9f1: Verifying Checksum
40216abfd9f1: Download complete
c515a0f2353f: Download complete
d689b2a1b34b: Verifying Checksum
d689b2a1b34b: Download complete
2def47abdae6: Download complete
4ab95fa37585: Pull complete
6b7f7c537f40: Verifying Checksum
6b7f7c537f40: Download complete
b49b2a2f9119: Download complete
23b9806e7d7a: Verifying Checksum
23b9806e7d7a: Download complete
251f6be3be0f: Download complete
77df5933f202: Verifying Checksum
77df5933f202: Download complete
f363410542aa: Verifying Checksum
f363410542aa: Download complete
02b0f83c8144: Verifying Checksum
02b0f83c8144: Download complete
561ad12063d7: Verifying Checksum
561ad12063d7: Download complete
bb777ec2f169: Download complete
ef05642a6c19: Pull complete
6ce4105a6817: Pull complete
482e731bee2c: Pull complete
82b20b1785fc: Pull complete
5033efba3ea4: Pull complete
ac061f34d5de: Pull complete
3699d934db19: Pull complete
c70084606501: Pull complete
92cba88bcd96: Pull complete
87d6cf018c95: Pull complete
47a5774c8fa4: Pull complete
a7a793f430ef: Pull complete
50749af763e4: Pull complete
1931ff52ea8f: Pull complete
d6cbdb0b2976: Pull complete
c21f3fb8010b: Pull complete
006e8a0d5bfe: Pull complete
4f4fb700ef54: Pull complete
bff3cbb02176: Pull complete
b5138c38b1e4: Pull complete
f9df0a6b27ec: Pull complete
199f7dd22bb1: Pull complete
4704820b8848: Pull complete
813e8e89161a: Pull complete
3fef5dd9f9c7: Pull complete
33b83451bd83: Pull complete
f32a57644710: Pull complete
40216abfd9f1: Pull complete
d689b2a1b34b: Pull complete
c515a0f2353f: Pull complete
fd11b9527539: Verifying Checksum
fd11b9527539: Download complete
6b7f7c537f40: Pull complete
2def47abdae6: Pull complete
fd11b9527539: Pull complete
b49b2a2f9119: Pull complete
23b9806e7d7a: Pull complete
251f6be3be0f: Pull complete
77df5933f202: Pull complete
f363410542aa: Pull complete
02b0f83c8144: Pull complete
561ad12063d7: Pull complete
bb777ec2f169: Pull complete
Digest: sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566
Status: Downloaded newer image for ocaml/opam@sha256:4f40afaba9cb3bfe7873dfa507d3cbd0919bdc57e78356dc26bf8ab981ba6566
2025-11-18 17:49.54 ---> using "ba6d18b62928370460223f977de9308ec394ac268d94d34b0cee5d6ca2044b67" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2025-11-18 17:49.54 ---> using "2af20f9dacf67a00fdee051badb171aa9252a2154923b73aed2da040979cb4fc" 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
[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
2025-11-18 17:49.54 ---> using "29cc486361475418e98d7a0325ecaf3bcc46421c8fccc55ee7f2c76f0dff6312" 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~beta1
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=fedora os-version=43
# solver               builtin-0install
# install-criteria     -changed,-count[avoid-version,solution]
# upgrade-criteria     -count[avoid-version,solution]
# jobs                 255
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       5.4
# invariant            ["ocaml-base-compiler" {>= "5.4.0"}]
# compiler-packages    ocaml-base-compiler.5.4.0, ocaml-compiler.5.4.0, ocaml-options-vanilla.1
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/5.4/lib/ocaml/stublibs:/home/opam/.opam/5.4/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       5.4.0
2025-11-18 17:49.54 ---> using "ff4aa20ec8e23fe0934e50f3648e55a5f20425e96d3527dee20ebeccb1003061" 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/"))
2025-11-18 17:49.54 ---> using "8fe5d4b633e4dd527548a91dbf6488a7d1d0b91fa5dccb8bf8863a9fb54b4956" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2025-11-18 17:49.55 ---> using "69342d72ad384e86fc9099a6c2e99ec16eb0b0d784fcf8c2fa8f7b370e8adf55" from cache

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2025-11-18 17:49.55 ---> using "92bf5801bd91ad6458b990f71382c0905982388b7d1a54ce9b7225f4f2ce24f4" from cache

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/sbin/sudo "yum" "makecache"
- Updating and loading repositories:
-  Fedora 43 - x86_64 - Updates           100% |  60.4 KiB/s |  21.6 KiB |  00m00s
- Repositories loaded.
- Metadata cache created.
2025-11-18 17:49.55 ---> using "6abe7ee3697feba934aed1d57fff9d6750a1494e64e7bde70c91a44dd51e3d38" from cache

/home/opam: (run (shell "opam pin add -k version -yn yocaml.2.7.0 2.7.0"))
yocaml is now pinned to version 2.7.0
2025-11-18 17:49.55 ---> using "fe63a0427147609173ec21b5d7fd8b4179c9e333b5e88559379782723f1a8aaf" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall yocaml.2.7.0;\
                        \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 \"\\\"fedora-43\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'yocaml.2.7.0' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
yocaml.2.7.0 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 32 packages
  - install base                    v0.17.3        [required by ppx_expect]
  - install csexp                   1.5.2          [required by dune-configurator]
  - install dune                    3.20.2         [required by yocaml]
  - install dune-configurator       3.20.2         [required by base]
  - install jane-street-headers     v0.17.0        [required by time_now]
  - install jst-config              v0.17.0        [required by time_now]
  - install logs                    0.10.0         [required by yocaml]
  - install ocaml-compiler-libs     v0.17.0        [required by ppxlib]
  - install ocaml_intrinsics_kernel v0.17.1        [required by base]
  - install ocamlbuild              0.16.1         [required by logs]
  - install ocamlfind               1.9.8          [required by logs]
  - install ppx_assert              v0.17.0        [required by jst-config]
  - install ppx_base                v0.17.0        [required by time_now]
  - install ppx_cold                v0.17.0        [required by ppx_base]
  - install ppx_compare             v0.17.0        [required by ppx_base]
  - install ppx_derivers            1.2.1          [required by ppxlib]
  - install ppx_enumerate           v0.17.0        [required by ppx_base]
  - install ppx_expect              v0.17.3        [required by yocaml]
  - install ppx_globalize           v0.17.2        [required by ppx_base]
  - install ppx_hash                v0.17.0        [required by ppx_base]
  - install ppx_here                v0.17.0        [required by ppx_expect]
  - install ppx_inline_test         v0.17.1        [required by ppx_expect]
  - install ppx_optcomp             v0.17.1        [required by time_now]
  - install ppx_sexp_conv           v0.17.1        [required by ppx_base]
  - install ppxlib                  0.37.0         [required by ppx_expect]
  - install ppxlib_jane             v0.17.4        [required by ppx_globalize, ppx_enumerate, ppx_hash]
  - install sexplib0                v0.17.0        [required by base]
  - install stdio                   v0.17.0        [required by ppx_expect]
  - install stdlib-shims            0.3.0          [required by ppxlib]
  - install time_now                v0.17.0        [required by ppx_inline_test]
  - install topkg                   1.1.1          [required by logs]
  - install yocaml                  2.7.0 (pinned)

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved base.v0.17.3  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved dune.3.20.2, dune-configurator.3.20.2  (cached)
-> retrieved jane-street-headers.v0.17.0  (cached)
-> retrieved jst-config.v0.17.0  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved ocaml-compiler-libs.v0.17.0  (cached)
-> retrieved ocaml_intrinsics_kernel.v0.17.1  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ppx_assert.v0.17.0  (cached)
-> retrieved ppx_base.v0.17.0  (cached)
-> retrieved ppx_cold.v0.17.0  (cached)
-> retrieved ppx_compare.v0.17.0  (cached)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved ppx_enumerate.v0.17.0  (cached)
-> retrieved ppx_expect.v0.17.3  (cached)
-> retrieved ppx_globalize.v0.17.2  (cached)
-> retrieved ppx_hash.v0.17.0  (cached)
-> retrieved ppx_here.v0.17.0  (cached)
-> retrieved ppx_inline_test.v0.17.1  (cached)
-> retrieved ppx_optcomp.v0.17.1  (cached)
-> retrieved ppx_sexp_conv.v0.17.1  (cached)
-> retrieved ppxlib.0.37.0  (cached)
-> retrieved ppxlib_jane.v0.17.4  (cached)
-> retrieved sexplib0.v0.17.0  (cached)
-> retrieved stdio.v0.17.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved time_now.v0.17.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved yocaml.2.7.0  (cached)
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed logs.0.10.0
-> installed dune.3.20.2
-> installed jane-street-headers.v0.17.0
-> installed ppx_derivers.1.2.1
-> installed csexp.1.5.2
-> installed ocaml-compiler-libs.v0.17.0
-> installed ocaml_intrinsics_kernel.v0.17.1
-> installed sexplib0.v0.17.0
-> installed stdlib-shims.0.3.0
-> installed dune-configurator.3.20.2
-> installed base.v0.17.3
-> installed stdio.v0.17.0
-> installed ppxlib.0.37.0
-> installed ppx_optcomp.v0.17.1
-> installed ppxlib_jane.v0.17.4
-> installed ppx_cold.v0.17.0
-> installed ppx_here.v0.17.0
-> installed ppx_enumerate.v0.17.0
-> installed ppx_globalize.v0.17.2
-> installed ppx_compare.v0.17.0
-> installed ppx_sexp_conv.v0.17.1
-> installed ppx_hash.v0.17.0
-> installed ppx_assert.v0.17.0
-> installed ppx_base.v0.17.0
-> installed jst-config.v0.17.0
-> installed time_now.v0.17.0
-> installed ppx_inline_test.v0.17.1
-> installed ppx_expect.v0.17.3
-> installed yocaml.2.7.0
Done.
# To update the current shell environment, run: eval $(opam env)
2025-11-18 17:50.29 ---> saved as "b72a9cb5b46b0a440f602d4b94251b90e60172f684a4264306fc4fdf9b8e71c5"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test yocaml.2.7.0) || true"))
The following actions will be performed:
=== recompile 2 packages
  - recompile logs               0.10.0         [uses cmdliner]
  - recompile yocaml             2.7.0 (pinned)
=== install 18 packages
  - install   alcotest           1.9.1          [required by yocaml]
  - install   astring            0.8.5          [required by alcotest, mdx]
  - install   camlp-streams      5.0.1          [required by mdx]
  - install   cmdliner           2.0.0          [required by alcotest, mdx]
  - install   cppo               1.8.0          [required by mdx]
  - install   fmt                0.11.0         [required by yocaml]
  - install   mdx                2.5.1          [required by yocaml]
  - install   ocaml-syntax-shims 1.0.0          [required by alcotest]
  - install   ocaml-version      4.0.3          [required by mdx]
  - install   ounit2             2.2.7          [required by qcheck-ounit]
  - install   qcheck             0.27           [required by yocaml]
  - install   qcheck-alcotest    0.27           [required by yocaml]
  - install   qcheck-core        0.27           [required by qcheck, qcheck-alcotest]
  - install   qcheck-ounit       0.27           [required by qcheck]
  - install   re                 1.14.0         [required by alcotest, mdx]
  - install   result             1.5            [required by mdx]
  - install   seq                base           [required by ounit2]
  - install   uutf               1.0.4          [required by alcotest]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (https://opam.ocaml.org/cache)
-> retrieved astring.0.8.5  (https://opam.ocaml.org/cache)
-> retrieved camlp-streams.5.0.1  (https://opam.ocaml.org/cache)
-> retrieved cmdliner.2.0.0  (https://opam.ocaml.org/cache)
-> retrieved cppo.1.8.0  (https://opam.ocaml.org/cache)
-> retrieved fmt.0.11.0  (https://opam.ocaml.org/cache)
-> retrieved logs.0.10.0  (https://opam.ocaml.org/cache)
-> installed camlp-streams.5.0.1
-> retrieved mdx.2.5.1  (https://opam.ocaml.org/cache)
-> retrieved ocaml-syntax-shims.1.0.0  (https://opam.ocaml.org/cache)
-> retrieved ocaml-version.4.0.3  (https://opam.ocaml.org/cache)
-> retrieved ounit2.2.2.7  (https://opam.ocaml.org/cache)
-> retrieved qcheck.0.27, qcheck-alcotest.0.27, qcheck-core.0.27, qcheck-ounit.0.27  (https://opam.ocaml.org/cache)
-> installed ocaml-version.4.0.3
-> retrieved re.1.14.0  (https://opam.ocaml.org/cache)
-> retrieved result.1.5  (https://opam.ocaml.org/cache)
-> installed cppo.1.8.0
-> retrieved seq.base  (2 extra sources)
-> retrieved seq.base  (2 extra sources)
-> installed seq.base
-> retrieved uutf.1.0.4  (https://opam.ocaml.org/cache)
-> installed result.1.5
-> installed astring.0.8.5
-> installed ocaml-syntax-shims.1.0.0
-> installed re.1.14.0
-> installed ounit2.2.2.7
-> installed qcheck-core.0.27
-> installed qcheck-ounit.0.27
-> installed qcheck.0.27
-> removed   yocaml.2.7.0
-> removed   logs.0.10.0
-> installed cmdliner.2.0.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed alcotest.1.9.1
-> installed logs.0.10.0
-> installed qcheck-alcotest.0.27
-> installed mdx.2.5.1
-> installed yocaml.2.7.0
Done.
# To update the current shell environment, run: eval $(opam env)
2025-11-18 17:51.04 ---> saved as "4eaa76fa0f9cd3c8e67bc2ac4a3b8ac36909a09ff88042c2c45ab4ae71248cc2"

/home/opam: (run (shell  "opam reinstall --with-test --verbose yocaml.2.7.0;\
                        \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 \"\\\"fedora-43\\\"\"; then\
                        \n            echo \"A package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\";\
                        \n          fi;\
                        \n          test \"$pkg\" != 'yocaml.2.7.0' && 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 yocaml 2.7.0 (pinned)

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  2/4: [yocaml: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "yocaml" "-j" "255" "@install" "@runtest" (CWD=/home/opam/.opam/5.4/.opam-switch/build/yocaml.2.7.0)
- (cd _build/default/test/archetype && ./yocaml_archetype_test.exe)
- Testing `Yocaml Archetype test'.
- This run has ID `F248N4XB'.
- 
-   [OK]          Yocaml.Archetype.Date          0   make a valid datetime - 1.
-   [OK]          Yocaml.Archetype.Date          1   make a valid datetime - 2.
-   [OK]          Yocaml.Archetype.Date          2   make a valid datetime - 3.
-   [OK]          Yocaml.Archetype.Date          3   make a valid datetime - 4.
-   [OK]          Yocaml.Archetype.Date          4   make a valid datetime - 5.
-   [OK]          Yocaml.Archetype.Date          5   make a valid datetime - 6.
-   [OK]          Yocaml.Archetype.Date          6   make a valid datetime - 7.
-   [OK]          Yocaml.Archetype.Date          7   make a valid datetime - 8.
-   [OK]          Yocaml.Archetype.Date          8   validate datetime - 1.
-   [OK]          Yocaml.Archetype.Date          9   validate datetime - 2.
-   [OK]          Yocaml.Archetype.Date         10   validate datetime - 3.
-   [OK]          Yocaml.Archetype.Date         11   validate datetime - 4.
-   [OK]          Yocaml.Archetype.Date         12   validate datetime - 5.
-   [OK]          Yocaml.Archetype.Date         13   validate and normalize dat...
-   [OK]          Yocaml.Archetype.Date         14   validate and normalize dat...
-   [OK]          Yocaml.Archetype.Date         15   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         16   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         17   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         18   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         19   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         20   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         21   comparison between datetim...
-   [OK]          Yocaml.Archetype.Date         22   pretty-print a date accord...
-   [OK]          Yocaml.Archetype.Date         23   pretty-print a date accord...
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/yocaml.2.7.0/_build/default/test/archetype/_build/_tests/Yocaml Archetype test'.
- Test Successful in 0.002s. 24 tests run.
- (cd _build/default/test/yocaml && ./yocaml_test.exe)
- qcheck random seed: 630039973
- Testing `Yocaml test'.
- This run has ID `BFYKTVEZ'.
- 
-   [OK]          Test_lib.Fs                  0   Ensures that the [get] primi...
-   [OK]          Test_lib.Fs                  1   Ensure that the [update] pri...
-   [OK]          Yocaml.Nel                   0   cons - 1.
-   [OK]          Yocaml.Nel                   1   singleton - 1.
-   [OK]          Yocaml.Nel                   2   init - 1.
-   [OK]          Yocaml.Nel                   3   from_list - when a list is n...
-   [OK]          Yocaml.Nel                   4   from_list - when a list is e...
-   [OK]          Yocaml.Nel                   5   from_seq - when a seq is not...
-   [OK]          Yocaml.Nel                   6   from_list - when a seq is em...
-   [OK]          Yocaml.Nel                   7   to_list - from a Nel to a list.
-   [OK]          Yocaml.Nel                   8   to_seq - from a Nel to a seq.
-   [OK]          Yocaml.Nel                   9   lengt - simple test on length.
-   [OK]          Yocaml.Nel                  10   is_singleton - simple test o...
-   [OK]          Yocaml.Nel                  11   hd - fetch the head of a Nel.
-   [OK]          Yocaml.Nel                  12   tl - fetch the tail of a Nel.
-   [OK]          Yocaml.Nel                  13   rev - simple test on rev.
-   [OK]          Yocaml.Nel                  14   rev_append - simple test on ...
-   [OK]          Yocaml.Nel                  15   concat - simple test on concat.
-   [OK]          Yocaml.Nel                  16   iter - simple test on iter.
-   [OK]          Yocaml.Nel                  17   iteri - simple test on iteri.
-   [OK]          Yocaml.Nel                  18   map - simple test on map.
-   [OK]          Yocaml.Nel                  19   mapi - simple test on mapi.
-   [OK]          Yocaml.Nel                  20   rev_map - simple test on rev...
-   [OK]          Yocaml.Nel                  21   rev_mapi - simple test on re...
-   [OK]          Yocaml.Nel                  22   concat_map - simple test on ...
-   [OK]          Yocaml.Nel                  23   concat_mapi - simple test on...
-   [OK]          Yocaml.Nel                  24   fold_left - simple test on f...
-   [OK]          Yocaml.Nel                  25   fold_right - simple test on ...
-   [OK]          Yocaml.Nel                  26   fold_lefti - simple test on ...
-   [OK]          Yocaml.Nel                  27   fold_righti - simple test on...
-   [OK]          Yocaml.Nel                  28   equal - two equal nels.
-   [OK]          Yocaml.Nel                  29   equal - two different nels.
-   [OK]          Yocaml.Nel                  30   append - simple test on append.
-   [OK]          Yocaml.Path                  0   to_string for relative path ...
-   [OK]          Yocaml.Path                  1   to_string for absolute path ...
-   [OK]          Yocaml.Path                  2   to_string for relative path ...
-   [OK]          Yocaml.Path                  3   to_string for absolute path ...
-   [OK]          Yocaml.Path                  4   to_string for root should re...
-   [OK]          Yocaml.Path                  5   to_string for cwd should ret...
-   [OK]          Yocaml.Path                  6   extension when path has an e...
-   [OK]          Yocaml.Path                  7   extension_opt when path has ...
-   [OK]          Yocaml.Path                  8   extension when path has no e...
-   [OK]          Yocaml.Path                  9   extension_opt when path has ...
-   [OK]          Yocaml.Path                 10   extension and extension_opt ...
-   [OK]          Yocaml.Path                 11   remove_extension with extens...
-   [OK]          Yocaml.Path                 12   remove_extension with no ext...
-   [OK]          Yocaml.Path                 13   add_extension with a regular...
-   [OK]          Yocaml.Path                 14   add_extension with a regular...
-   [OK]          Yocaml.Path                 15   add_extension with an empty ...
-   [OK]          Yocaml.Path                 16   add_extension with a dot ext...
-   [OK]          Yocaml.Path                 17   add_extension on root or cwd...
-   [OK]          Yocaml.Path                 18   change_extension with valid ...
-   [OK]          Yocaml.Path                 19   change_extension with valid ...
-   [OK]          Yocaml.Path                 20   basename test 1.
-   [OK]          Yocaml.Path                 21   basename test 2.
-   [OK]          Yocaml.Path                 22   basename test 1.
-   [OK]          Yocaml.Path                 23   dirname test 1.
-   [OK]          Yocaml.Path                 24   dirname test 2.
-   [OK]          Yocaml.Path                 25   dirname test 2.
-   [OK]          Yocaml.Path                 26   move test 1.
-   [OK]          Yocaml.Path                 27   move test 2.
-   [OK]          Yocaml.Path                 28   relocate when both path are ...
-   [OK]          Yocaml.Path                 29   relocate when both path are ...
-   [OK]          Yocaml.Path                 30   relocate when one path is ab...
-   [OK]          Yocaml.Path                 31   relocate when one path is re...
-   [OK]          Yocaml.Path                 32   relocate when common suffixe...
-   [OK]          Yocaml.Path                 33   relocate when common suffixe...
-   [OK]          Yocaml.Path                 34   from_string 1.
-   [OK]          Yocaml.Path                 35   from_string 2.
-   [OK]          Yocaml.Path                 36   from_string 2.
-   [OK]          Yocaml.Path                 37   to_string -> from_string rou...
-   [OK]          Yocaml.Path                 38   to_csexp -> from_csexp round...
-   [OK]          Yocaml.Sexp                  0   canonical serialized length ...
-   [OK]          Yocaml.Sexp                  1   canonical serialized length ...
-   [OK]          Yocaml.Sexp                  2   canonical serialized length ...
-   [OK]          Yocaml.Sexp                  3   canonical serialized length ...
-   [OK]          Yocaml.Sexp                  4   canonical to_string case 1.
-   [OK]          Yocaml.Sexp                  5   canonical to_string case 2.
-   [OK]          Yocaml.Sexp                  6   canonical to_string case 3.
-   [OK]          Yocaml.Sexp                  7   canonical from_string case 1.
-   [OK]          Yocaml.Sexp                  8   canonical from_string case 2.
-   [OK]          Yocaml.Sexp                  9   canonical from_string case 3.
-   [OK]          Yocaml.Sexp                 10   canonical from_string case 4.
-   [OK]          Yocaml.Sexp                 11   canonical from_string case 5.
-   [OK]          Yocaml.Sexp                 12   canonical from_string case 6.
-   [OK]          Yocaml.Sexp                 13   canonical from_string case 7.
-   [OK]          Yocaml.Sexp                 14   canonical from_string case 8.
-   [OK]          Yocaml.Sexp                 15   canonical from_string case 9.
-   [OK]          Yocaml.Sexp                 16   canonical to_string -> from_...
-   [OK]          Yocaml.Sexp                 17   from_string case 1.
-   [OK]          Yocaml.Sexp                 18   from_string case 2.
-   [OK]          Yocaml.Sexp                 19   from_string case 3.
-   [OK]          Yocaml.Sexp                 20   from_string case 4.
-   [OK]          Yocaml.Sexp                 21   from_string case 5.
-   [OK]          Yocaml.Sexp                 22   from_string case 6.
-   [OK]          Yocaml.Sexp                 23   to_string -> from_string rou...
-   [OK]          Yocaml.Sexp                 24   Provider.normalize case 1.
-   [OK]          Yocaml.Sexp                 25   Provider.normalize case 2.
-   [OK]          Yocaml.Sexp                 26   Test string normalization.
-   [OK]          Yocaml.Data                  0   validation sample 1 - valid ...
-   [OK]          Yocaml.Data                  1   validation sample 1 - invali...
-   [OK]          Yocaml.Data                  2   validation sample 1 - invali...
-   [OK]          Yocaml.Data                  3   validate null - validate gen...
-   [OK]          Yocaml.Data                  4   validate null - validate fro...
-   [OK]          Yocaml.Data                  5   validate null - validate fro...
-   [OK]          Yocaml.Data                  6   validate bool - validate fro...
-   [OK]          Yocaml.Data                  7   validate bool - validate fro...
-   [OK]          Yocaml.Data                  8   validate int - validate from...
-   [OK]          Yocaml.Data                  9   validate int - validate from...
-   [OK]          Yocaml.Data                 10   validate int - validate from...
-   [OK]          Yocaml.Data                 11   validate float - validate fr...
-   [OK]          Yocaml.Data                 12   validate float - validate fr...
-   [OK]          Yocaml.Data                 13   validate strict string - val...
-   [OK]          Yocaml.Data                 14   validate strict string - val...
-   [OK]          Yocaml.Data                 15   validate non-strict string -...
-   [OK]          Yocaml.Data                 16   validate non-strict string -...
-   [OK]          Yocaml.Data                 17   validate non-strict string -...
-   [OK]          Yocaml.Data                 18   validate non-strict string -...
-   [OK]          Yocaml.Data                 19   validate non-strict string -...
-   [OK]          Yocaml.Data                 20   validate list - validate a g...
-   [OK]          Yocaml.Data                 21   validate list - validate an ...
-   [OK]          Yocaml.Data                 22   validate list - validate som...
-   [OK]          Yocaml.Data                 23   validate record - validate a...
-   [OK]          Yocaml.Data                 24   validate record - validate a...
-   [OK]          Yocaml.Data                 25   validate record - validate a...
-   [OK]          Yocaml.Data                 26   validate record - validate a...
-   [OK]          Yocaml.Data                 27   validate record - validate a...
-   [OK]          Yocaml.Data                 28   option - validate a null value.
-   [OK]          Yocaml.Data                 29   option - validate a filled v...
-   [OK]          Yocaml.Data                 30   option - validate with an in...
-   [OK]          Yocaml.Data                 31   pair - validate a generated ...
-   [OK]          Yocaml.Data                 32   pair - validate an invalid v...
-   [OK]          Yocaml.Data                 33   pair - validate an invalid o...
-   [OK]          Yocaml.Data                 34   pair - validate an invalid o...
-   [OK]          Yocaml.Data                 35   pair - validate an invalid o...
-   [OK]          Yocaml.Data                 36   triple - validate a generate...
-   [OK]          Yocaml.Data                 37   quad - validate a generated ...
-   [OK]          Yocaml.Data                 38   sum - validate sums.
-   [OK]          Yocaml.Data                 39   positive - validate positive.
-   [OK]          Yocaml.Data                 40   positive' - validate positive.
-   [OK]          Yocaml.Data                 41   bounded - validate bounded.
-   [OK]          Yocaml.Data                 42   bounded' - validate bounded.
-   [OK]          Yocaml.Data                 43   non_empty - validate non_empty.
-   [OK]          Yocaml.Data                 44   equal - validate equal.
-   [OK]          Yocaml.Data                 45   not_equal - validate not_equal.
-   [OK]          Yocaml.Data                 46   gt - validate gt.
-   [OK]          Yocaml.Data                 47   ge - validate ge.
-   [OK]          Yocaml.Data                 48   lt - validate lt.
-   [OK]          Yocaml.Data                 49   le - validate le.
-   [OK]          Yocaml.Data                 50   one_of - validate one_of.
-   [OK]          Yocaml.Data                 51   multi-combinators tests.
-   [OK]          Yocaml.Data                 52   String.equal.
-   [OK]          Yocaml.Data                 53   String.not_equal.
-   [OK]          Yocaml.Data                 54   String.not_empty.
-   [OK]          Yocaml.Data                 55   String.not_blank.
-   [OK]          Yocaml.Data                 56   String.has_prefix.
-   [OK]          Yocaml.Data                 57   String.has_suffix.
-   [OK]          Yocaml.Data                 58   String.has_length.
-   [OK]          Yocaml.Data                 59   String.length_gt.
-   [OK]          Yocaml.Data                 60   String.length_ge.
-   [OK]          Yocaml.Data                 61   String.length_lt.
-   [OK]          Yocaml.Data                 62   String.length_le.
-   [OK]          Yocaml.Data                 63   String.contains_only.
-   [OK]          Yocaml.Data                 64   String.exclude_chars.
-   [OK]          Yocaml.Data                 65   String.one_of.
-   [OK]          Yocaml.Data                 66   String.where.
-   [OK]          Yocaml.Data                 67   negate.
-   [OK]          Yocaml.Metadata              0   extract_from_content - 1.
-   [OK]          Yocaml.Metadata              1   extract_from_content - 2.
-   [OK]          Yocaml.Metadata              2   extract_from_content - 3.
-   [OK]          Yocaml.Metadata              3   extract_from_content - 4.
-   [OK]          Yocaml.Metadata              4   extract_from_content - 5.
-   [OK]          Yocaml.Metadata              5   extract_from_content - 6.
-   [OK]          Yocaml.Metadata              6   validate dummy metadata - 1.
-   [OK]          Yocaml.Metadata              7   validate dummy metadata - 2.
-   [OK]          Yocaml.Metadata              8   validate dummy metadata - 3.
-   [OK]          Yocaml.Metadata              9   validate dummy metadata - 4.
-   [OK]          Yocaml.Metadata             10   validate dummy metadata - 5.
-   [OK]          Yocaml.Eff                   0   file_exists should return tr...
-   [OK]          Yocaml.Eff                   1   read_file should read the co...
-   [OK]          Yocaml.Eff                   2   mtime should return the modi...
-   [OK]          Yocaml.Eff                   3   is_directory should returns ...
-   [OK]          Yocaml.Eff                   4   read_directory should return...
-   [OK]          Yocaml.Eff                   5   mtime on directory should re...
-   [OK]          Yocaml.Eff                   6   List.fold_left on empty list...
-   [OK]          Yocaml.Eff                   7   List.fold_left on list shoul...
-   [OK]          Yocaml.Cache                 0   to_sexp -> from_sexp roundtrip.
-   [OK]          Yocaml.Pipeline              0   when there is no dependencie...
-   [OK]          Yocaml.Pipeline              1   when there is dependencies i...
-   [OK]          Yocaml.Pipeline              2   when there is dependencies i...
-   [OK]          Yocaml.Pipeline              3   when there is dependencies i...
-   [OK]          Yocaml.Pipeline              4   when there is dependencies i...
-   [OK]          Yocaml.Action                0   test of a complete action ex...
-   [OK]          Yocaml.Action                1   test of a complete action ex...
-   [OK]          Yocaml.Action                2   test of a complete action ex...
-   [OK]          Yocaml.Action                3   test of a complete action ex...
-   [OK]          Yocaml.Action                4   an example using dynamic dep...
-   [OK]          Yocaml.Action                5   batch should performs action...
-   [OK]          Yocaml.Action                6   copy_directory - should copy...
-   [OK]          Yocaml.Action                7   copy_directory - should copy...
-   [OK]          Yocaml.Action                8   test Pipeline.pipe in real w...
-   [OK]          Yocaml.Action                9   test Pipeline.pipe in real w...
-   [OK]          Yocaml.Exec_command          0   some command execution.
-   [OK]          Yocaml.Exec_command          1   Some command execution throu...
-   [OK]          Yocaml.conditionals          0   Some [when] usage - 1.
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/yocaml.2.7.0/_build/default/test/yocaml/_build/_tests/Yocaml test'.
- Test Successful in 5.497s. 205 tests run.
-> compiled  yocaml.2.7.0
-> removed   yocaml.2.7.0
-> installed yocaml.2.7.0
Done.
# To update the current shell environment, run: eval $(opam env)
2025-11-18 17:51.15 ---> saved as "d8ce338237ff2a87943d7b531fa83240ddecf9e34a0262e5d587fba83e1a7e48"
Job succeeded
2025-11-18 17:51.20: Job succeeded