(for PR #29582)

2026-03-25 13:14.40: New job: test yuujinchou.5.1.0 with ocaml-compiler.5.4.0, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29582/head (fa5fb3a6a806e832e4c7791145889a6bbe8b64ef)
                              on debian-13-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/29582/head" && git reset --hard fa5fb3a6
git fetch origin master
git merge --no-edit 2f93e9d4614d6376ed929fc2cee7c59cb9d5833b
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6
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 ocaml-compiler.5.4.0 5.4.0
RUN opam reinstall --update-invariant ocaml-compiler.5.4.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 "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'ocaml-compiler.5.4.0' && partial_fails="$partial_fails $pkg"; \
    done; \
    test "${partial_fails}" != "" && echo "opam-repo-ci detected dependencies failing: ${partial_fails}"; \
    exit 1
RUN opam reinstall yuujinchou.5.1.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 "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'yuujinchou.5.1.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 yuujinchou.5.1.0) || true
RUN opam reinstall --with-test --verbose yuujinchou.5.1.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 "\"debian-13\""; then \
    echo "A package failed and has been disabled for CI using the 'x-ci-accept-failures' field."; \
    fi; \
    test "$pkg" != 'yuujinchou.5.1.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 .

2026-03-25 13:14.40: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6-ocaml-compiler.5.4.0-yuujinchou.5.1.0-fa5fb3a6a806e832e4c7791145889a6bbe8b64ef"
2026-03-25 13:14.40: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
 (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 ocaml-compiler.5.4.0 5.4.0"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall --update-invariant ocaml-compiler.5.4.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 \"\\\"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\" != 'ocaml-compiler.5.4.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 (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall yuujinchou.5.1.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 \"\\\"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\" != 'yuujinchou.5.1.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 yuujinchou.5.1.0) || true"))
 (run (shell  "opam reinstall --with-test --verbose yuujinchou.5.1.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 \"\\\"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\" != 'yuujinchou.5.1.0' && partial_fails=\"$partial_fails $pkg\";\
             \n        done;\
             \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
             \n        exit 1"))
)

2026-03-25 13:14.40: Waiting for resource in pool OCluster
2026-03-25 17:53.30: Waiting for worker…
2026-03-25 17:56.59: Got resource from pool OCluster
Building on clete.caelum.ci.dev
All commits already cached
Updating files:  64% (11884/18520)
Updating files:  65% (12038/18520)
Updating files:  66% (12224/18520)
Updating files:  67% (12409/18520)
Updating files:  68% (12594/18520)
Updating files:  69% (12779/18520)
Updating files:  70% (12964/18520)
Updating files:  71% (13150/18520)
Updating files:  72% (13335/18520)
Updating files:  73% (13520/18520)
Updating files:  74% (13705/18520)
Updating files:  75% (13890/18520)
Updating files:  76% (14076/18520)
Updating files:  77% (14261/18520)
Updating files:  78% (14446/18520)
Updating files:  79% (14631/18520)
Updating files:  80% (14816/18520)
Updating files:  81% (15002/18520)
Updating files:  82% (15187/18520)
Updating files:  83% (15372/18520)
Updating files:  84% (15557/18520)
Updating files:  85% (15742/18520)
Updating files:  86% (15928/18520)
Updating files:  87% (16113/18520)
Updating files:  88% (16298/18520)
Updating files:  89% (16483/18520)
Updating files:  90% (16668/18520)
Updating files:  91% (16854/18520)
Updating files:  92% (17039/18520)
Updating files:  93% (17224/18520)
Updating files:  94% (17409/18520)
Updating files:  95% (17594/18520)
Updating files:  96% (17780/18520)
Updating files:  97% (17965/18520)
Updating files:  98% (18150/18520)
Updating files:  99% (18335/18520)
Updating files: 100% (18520/18520)
Updating files: 100% (18520/18520), done.
HEAD is now at 2f93e9d461 Merge pull request #29592 from dinosaure/release-miou-v0.5.5
Merge made by the 'ort' strategy.
 packages/ocaml-compiler/ocaml-compiler.5.3.0/opam      |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.3/opam        |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.0/opam      |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~alpha1/opam    |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta1/opam     |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.4.0~beta2/opam     |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.0~rc1/opam  |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4.1/opam      |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.4/opam        |  5 ++++-
 .../ocaml-compiler/ocaml-compiler.5.5.0~alpha1/opam    |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.5/opam        |  5 ++++-
 packages/ocaml-compiler/ocaml-compiler.5.6/opam        |  5 ++++-
 packages/ocaml-option-llvm/ocaml-option-llvm.1/opam    | 18 ++++++++++++++++++
 .../ocaml-options-vanilla/ocaml-options-vanilla.1/opam |  1 +
 packages/ocaml-variants/ocaml-variants.5.2.0+msvc/opam |  2 ++
 15 files changed, 69 insertions(+), 12 deletions(-)
 create mode 100644 packages/ocaml-option-llvm/ocaml-option-llvm.1/opam

(from ocaml/opam:debian-13-ocaml-5.4@sha256:bd342cbd7766c453282fdafbc2e565ae3361320ec344722cf4372b782e4a97f6)
2026-03-25 17:57.02 ---> using "41eea30e3f639c18d8cf57c309ec76919ec7b2398036f7e41744cbce59a133d3" 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-03-25 17:57.02 ---> using "4ad7f430d684c40cedc651267e0edf890c044fe4e624255de377c471b4526bac" 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-03-25 17:57.02 ---> using "71fa58e52457bf6a7eac317c6a6ef1e2bdf53e533a1e4fd04b90c9349347e038" 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       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
2026-03-25 17:57.02 ---> using "ed86081cb38ca125a920162bfe6a4bb7b1c27c6973c917551687c83cf44dbfdf" 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-03-25 17:57.02 ---> using "04a48515eea40c32b96da0c71328b4bba0edb66eed83d4f78554b39097cf1f25" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2026-03-25 17:57.04 ---> using "034191995d824300f355cbba1072d6e5fe6d815701f24eb84d82c75009d73829" from cache

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-25 17:57.04 ---> using "8232259ea36ea8848dc29ae49703acf145fd27b40f3ebd8fb785db7f8da1b9d4" from cache

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
- 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 trixie/main amd64 Packages [9671 kB]
- Get:5 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [114 kB]
- Fetched 10.0 MB in 1s (6734 kB/s)
- Reading package lists...
- 
2026-03-25 17:57.04 ---> using "a75782a571df4fc8f8933e94c681af881015ee87cdd4c652f8ae9af1d8cfad37" from cache

/home/opam: (run (shell "opam pin add -k version -yn ocaml-compiler.5.4.0 5.4.0"))
ocaml-compiler is now pinned to version 5.4.0
2026-03-25 17:57.04 ---> using "60e129f7398974b5fa5afc8f56ec09bd24a9182f5e9834464bfc959db1aa6b14" from cache

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall --update-invariant ocaml-compiler.5.4.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 \"\\\"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\" != 'ocaml-compiler.5.4.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 8 packages
  - recompile base-domains        base           [uses ocaml]
  - recompile base-effects        base           [uses ocaml]
  - recompile base-nnp            base           [uses base-domains]
  - recompile ocaml               5.4.0          [uses ocaml-base-compiler]
  - recompile ocaml-base-compiler 5.4.0 (pinned) [uses ocaml-compiler]
  - recompile ocaml-compiler      5.4.0 (pinned)
  - recompile ocaml-config        3              [uses ocaml-base-compiler]
  - recompile opam-depext         1.2.3          [uses ocaml]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-compiler.5.4.0  (cached)
-> retrieved ocaml-config.3  (cached)
-> retrieved opam-depext.1.2.3  (cached)
-> removed   base-effects.base
-> removed   base-nnp.base
-> removed   base-domains.base
-> removed   opam-depext.1.2.3
-> removed   ocaml.5.4.0
-> removed   ocaml-config.3
-> removed   ocaml-base-compiler.5.4.0
-> removed   ocaml-compiler.5.4.0
-> installed ocaml-compiler.5.4.0
-> installed ocaml-base-compiler.5.4.0
-> installed ocaml-config.3
-> installed ocaml.5.4.0
-> installed base-domains.base
-> installed base-effects.base
-> installed base-nnp.base
-> installed opam-depext.1.2.3
Done.

<><> opam-depext.1.2.3 installed successfully <><><><><><><><><><><><><><><><><>
=> opam-depext is unnecessary when used with opam >= 2.1. Please use opam install directly instead
# To update the current shell environment, run: eval $(opam env)
2026-03-25 17:59.56 ---> saved as "efbc92fc0c607605c8bb33f9e4c8fe340a48c67e14d2f61592db8a4edc5c0b15"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall yuujinchou.5.1.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 \"\\\"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\" != 'yuujinchou.5.1.0' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
yuujinchou.5.1.0 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 4 packages
  - install algaeff    1.1.0  [required by yuujinchou]
  - install bwd        2.3.0  [required by yuujinchou]
  - install dune       3.22.0 [required by yuujinchou]
  - install yuujinchou 5.1.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved algaeff.1.1.0  (cached)
-> retrieved bwd.2.3.0  (cached)
-> retrieved dune.3.22.0  (cached)
-> retrieved yuujinchou.5.1.0  (cached)
-> installed dune.3.22.0
-> installed bwd.2.3.0
-> installed algaeff.1.1.0
-> installed yuujinchou.5.1.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:02.05 ---> saved as "6a4652297ba0260dd172ea0fb3d3955a0d8b05072ad9ccf4767d7e9e37e4342b"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test yuujinchou.5.1.0) || true"))
The following actions will be performed:
=== recompile 1 package
  - recompile yuujinchou         5.1.0
=== install 12 packages
  - install   alcotest           1.9.1  [required by yuujinchou]
  - install   astring            0.8.5  [required by alcotest]
  - install   cmdliner           2.1.0  [required by alcotest]
  - install   fmt                0.11.0 [required by alcotest]
  - install   ocaml-syntax-shims 1.0.0  [required by alcotest]
  - install   ocamlbuild         0.16.1 [required by fmt, astring, uutf]
  - install   ocamlfind          1.9.8  [required by fmt, astring, uutf]
  - install   qcheck-core        0.91   [required by yuujinchou]
  - install   re                 1.14.0 [required by alcotest]
  - install   stdlib-shims       0.3.0  [required by alcotest]
  - install   topkg              1.1.1  [required by fmt, astring, uutf]
  - 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 cmdliner.2.1.0  (https://opam.ocaml.org/cache)
-> retrieved fmt.0.11.0  (https://opam.ocaml.org/cache)
-> retrieved ocaml-syntax-shims.1.0.0  (https://opam.ocaml.org/cache)
-> retrieved ocamlbuild.0.16.1  (https://opam.ocaml.org/cache)
-> retrieved ocamlfind.1.9.8  (https://opam.ocaml.org/cache)
-> retrieved qcheck-core.0.91  (https://opam.ocaml.org/cache)
-> retrieved re.1.14.0  (https://opam.ocaml.org/cache)
-> retrieved stdlib-shims.0.3.0  (https://opam.ocaml.org/cache)
-> retrieved topkg.1.1.1  (https://opam.ocaml.org/cache)
-> retrieved uutf.1.0.4  (https://opam.ocaml.org/cache)
-> retrieved yuujinchou.5.1.0  (https://opam.ocaml.org/cache)
-> installed stdlib-shims.0.3.0
-> installed ocaml-syntax-shims.1.0.0
-> installed re.1.14.0
-> installed qcheck-core.0.91
-> installed ocamlfind.1.9.8
-> installed cmdliner.2.1.0
-> removed   yuujinchou.5.1.0
-> 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 alcotest.1.9.1
-> installed yuujinchou.5.1.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:03.28 ---> saved as "47aecaf5df778b1fa4322a46bdf12460ecb23b79722653a932eab196f2b1d4e1"

/home/opam: (run (shell  "opam reinstall --with-test --verbose yuujinchou.5.1.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 \"\\\"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\" != 'yuujinchou.5.1.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 yuujinchou 5.1.0

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  1/4: [yuujinchou.5.1.0: extract]
-> retrieved yuujinchou.5.1.0  (cached)
Processing  2/4: [yuujinchou: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "yuujinchou" "-j" "71" (CWD=/home/opam/.opam/5.4/.opam-switch/build/yuujinchou.5.1.0)
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "yuujinchou" "-j" "71" "@runtest" (CWD=/home/opam/.opam/5.4/.opam-switch/build/yuujinchou.5.1.0)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I test/.TestTrie.eobjs/byte -I test/.TestTrie.eobjs/native -I /home/opam/.opam/5.4/lib/algaeff -I /home/opam/.opam/5.4/lib/bwd -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/qcheck-core -I /home/opam/.opam/5.4/lib/qcheck-core/runner -I src/.Yuujinchou.objs/byte -I src/.Yuujinchou.objs/native -cmi-file test/.TestTrie.eobjs/byte/dune__exe__TestTrie.cmi -no-alias-deps -open Dune__exe -o test/.TestTrie.eobjs/native/dune__exe__TestTrie.cmx -c -impl test/TestTrie.ml)
- File "test/TestTrie.ml", line 18, characters 22-32:
- 18 | let gen_path = Q.Gen.(small_list @@ small_string ~gen:printable)
-                            ^^^^^^^^^^
- Alert deprecated: Q.Gen.small_list
- Use [list_small] instead
- 
- File "test/TestTrie.ml", line 18, characters 36-48:
- 18 | let gen_path = Q.Gen.(small_list @@ small_string ~gen:printable)
-                                          ^^^^^^^^^^^^
- Alert deprecated: Q.Gen.small_string
- Use [string_small] instead
- 
- File "test/TestTrie.ml", line 20, characters 33-42:
- 20 | let gen_tagged = Q.Gen.(pair int small_nat)
-                                       ^^^^^^^^^
- Alert deprecated: Q.Gen.small_nat
- Use [nat_small] instead
- 
- File "test/TestTrie.ml", line 22, characters 11-21:
- 22 |     Q.Gen.(small_list @@ pair gen_path gen_tagged)
-                 ^^^^^^^^^^
- Alert deprecated: Q.Gen.small_list
- Use [list_small] instead
- 
- File "test/TestTrie.ml", line 49, characters 45-48:
- 49 |   Q.Test.make ~count ~name:"root_opt" Q.Gen.(opt gen_tagged) ~print:Q.Print.(option print_tagged)
-                                                   ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 72, characters 47-50:
- 72 |   Q.Test.make ~count ~name:"iter" Q.Gen.(pair (opt gen_bwd_path) gen_list)
-                                                     ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 82, characters 19-22:
- 82 |     Q.Gen.(triple (opt gen_bwd_path) (Q.fun2 obs_bwd_path obs_tagged gen_tagged) gen_list)
-                         ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 90, characters 19-22:
- 90 |     Q.Gen.(triple (opt gen_bwd_path) (Q.fun2 obs_bwd_path obs_tagged bool) gen_list)
-                         ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 98, characters 19-22:
- 98 |     Q.Gen.(triple (opt gen_bwd_path) (Q.fun2 obs_bwd_path Q.Observable.(pair int int) (opt gen_tagged)) gen_list)
-                         ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 98, characters 87-90:
- 98 |     Q.Gen.(triple (opt gen_bwd_path) (Q.fun2 obs_bwd_path Q.Observable.(pair int int) (opt gen_tagged)) gen_list)
-                                                                                             ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 119, characters 73-76:
- 119 |     Q.Gen.(triple gen_path (Q.fun1 Q.Observable.(option (pair int int)) (opt gen_tagged)) gen_list)
-                                                                                ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 128, characters 62-65:
- 128 |     Q.Gen.(pair (Q.fun1 Q.Observable.(option (pair int int)) (opt gen_tagged)) gen_list)
-                                                                     ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 140, characters 17-20:
- 140 |     Q.Gen.(quad (opt gen_bwd_path) gen_merge gen_list gen_list)
-                        ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 149, characters 17-20:
- 149 |     Q.Gen.(quad (opt gen_bwd_path) gen_merge gen_list (pair gen_path gen_list))
-                        ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 158, characters 17-20:
- 158 |     Q.Gen.(quad (opt gen_bwd_path) gen_merge gen_list (pair gen_path gen_tagged))
-                        ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 167, characters 17-20:
- 167 |     Q.Gen.(quad (opt gen_bwd_path) gen_merge gen_list gen_tagged)
-                        ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 200, characters 49-52:
- 200 |   Q.Test.make ~count ~name:"to_seq" Q.Gen.(pair (opt gen_bwd_path) gen_list)
-                                                        ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 207, characters 64-67:
- 207 |   Q.Test.make ~count ~name:"to_seq_with_bwd_paths" Q.Gen.(pair (opt gen_bwd_path) gen_list)
-                                                                       ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 221, characters 11-21:
- 221 |     Q.Gen.(small_list @@ pair gen_path gen_tagged)
-                  ^^^^^^^^^^
- Alert deprecated: Q.Gen.small_list
- Use [list_small] instead
- 
- File "test/TestTrie.ml", line 229, characters 19-22:
- 229 |     Q.Gen.(triple (opt gen_bwd_path) gen_merge (small_list @@ pair gen_path gen_tagged))
-                          ^^^
- Alert deprecated: Q.Gen.opt
- Use [option] instead
- 
- File "test/TestTrie.ml", line 229, characters 48-58:
- 229 |     Q.Gen.(triple (opt gen_bwd_path) gen_merge (small_list @@ pair gen_path gen_tagged))
-                                                       ^^^^^^^^^^
- Alert deprecated: Q.Gen.small_list
- Use [list_small] instead
- (cd _build/default/test && ./TestModifier.exe)
- Testing `Modifier'.
- This run has ID `G95NCVHN'.
- 
-   [OK]          none              0   none.
-   [OK]          none              1   none.
-   [OK]          none              2   none.
-   [OK]          all               0   all.
-   [OK]          all               1   all.
-   [OK]          all               2   all.
-   [OK]          all               3   all.
-   [OK]          only              0   only.
-   [OK]          only              1   only.
-   [OK]          only              2   only.
-   [OK]          only              3   only.
-   [OK]          except            0   except.
-   [OK]          except            1   except.
-   [OK]          except            2   except.
-   [OK]          in_               0   in_.
-   [OK]          in_               1   in_.
-   [OK]          in_               2   in_.
-   [OK]          in_               3   in_.
-   [OK]          renaming          0   renaming.
-   [OK]          renaming          1   renaming.
-   [OK]          renaming          2   renaming.
-   [OK]          renaming          3   renaming.
-   [OK]          renaming          4   renaming.
-   [OK]          renaming          5   renaming.
-   [OK]          seq               0   seq.
-   [OK]          seq               1   seq.
-   [OK]          seq               2   seq.
-   [OK]          seq               3   seq.
-   [OK]          seq               4   seq.
-   [OK]          union             0   union.
-   [OK]          union             1   union.
-   [OK]          union             2   union.
-   [OK]          union             3   union.
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/yuujinchou.5.1.0/_build/default/test/_build/_tests/Modifier'.
- Test Successful in 0.008s. 33 tests run.
- (cd _build/default/test && ./TestTrie.exe)
- 
random seed: 77909312
- generated error fail pass / total     time test name
- 
[ ]    0    0    0    0 /  100     0.0s empty
[✓]  100    0    0  100 /  100     0.0s empty
- 
[ ]    0    0    0    0 /  100     0.0s is_empty
[ ]   18    0    0   18 /  100     0.1s is_empty (collecting)
[ ]   42    0    0   42 /  100     0.2s is_empty (collecting)
[ ]   70    0    0   70 /  100     0.3s is_empty (collecting)
[ ]   94    0    0   94 /  100     0.4s is_empty (collecting)
[✓]  100    0    0  100 /  100     0.4s is_empty
- 
[ ]    0    0    0    0 /  100     0.0s root
[✓]  100    0    0  100 /  100     0.0s root
- 
[ ]    0    0    0    0 /  100     0.0s root_opt
[✓]  100    0    0  100 /  100     0.0s root_opt
- 
[ ]    0    0    0    0 /  100     0.0s prefix
[ ]   28    0    0   28 /  100     0.1s prefix
[ ]   49    0    0   49 /  100     0.2s prefix (collecting)
[ ]   75    0    0   75 /  100     0.3s prefix (collecting)
[✓]  100    0    0  100 /  100     0.4s prefix
- 
[ ]    0    0    0    0 /  100     0.0s singleton
[✓]  100    0    0  100 /  100     0.0s singleton
- 
[ ]    0    0    0    0 /  100     0.0s find_subtree
[ ]   29    0    0   29 /  100     0.1s find_subtree (collecting)
[ ]   55    0    0   55 /  100     0.2s find_subtree (collecting)
[ ]   79    0    0   79 /  100     0.3s find_subtree (collecting)
[✓]  100    0    0  100 /  100     0.4s find_subtree
- 
[ ]    0    0    0    0 /  100     0.0s find_singleton
[ ]   27    0    0   27 /  100     0.1s find_singleton (collecting)
[ ]   49    0    0   49 /  100     0.2s find_singleton (collecting)
[ ]   75    0    0   75 /  100     0.4s find_singleton (collecting)
[✓]  100    0    0  100 /  100     0.4s find_singleton
- 
[ ]    0    0    0    0 /  100     0.0s find_root
[ ]   15    0    0   15 /  100     0.1s find_root (collecting)
[ ]   41    0    0   41 /  100     0.2s find_root (collecting)
[ ]   69    0    0   69 /  100     0.3s find_root (collecting)
[ ]   86    0    0   86 /  100     0.4s find_root (collecting)
[✓]  100    0    0  100 /  100     0.4s find_root
- 
[ ]    0    0    0    0 /  100     0.0s iter
[ ]   26    0    0   26 /  100     0.1s iter (collecting)
[ ]   45    0    0   45 /  100     0.2s iter (collecting)
[ ]   75    0    0   75 /  100     0.3s iter
[ ]   92    0    0   92 /  100     0.4s iter (collecting)
[✓]  100    0    0  100 /  100     0.5s iter
- 
[ ]    0    0    0    0 /  100     0.0s map
[ ]   20    0    0   20 /  100     0.1s map (collecting)
[ ]   38    0    0   38 /  100     0.2s map
[ ]   57    0    0   57 /  100     0.3s map (collecting)
[ ]   85    0    0   85 /  100     0.4s map (collecting)
[✓]  100    0    0  100 /  100     0.5s map
- 
[ ]    0    0    0    0 /  100     0.0s filter
[ ]   20    0    0   20 /  100     0.1s filter (collecting)
[ ]   37    0    0   37 /  100     0.2s filter (collecting)
[ ]   57    0    0   57 /  100     0.3s filter (collecting)
[ ]   91    0    0   91 /  100     0.4s filter (collecting)
[✓]  100    0    0  100 /  100     0.5s filter
- 
[ ]    0    0    0    0 /  100     0.0s filter_map
[ ]   20    0    0   20 /  100     0.1s filter_map (collecting)
[ ]   37    0    0   37 /  100     0.2s filter_map (collecting)
[ ]   57    0    0   57 /  100     0.3s filter_map (collecting)
[ ]   76    0    0   76 /  100     0.5s filter_map (collecting)
[✓]  100    0    0  100 /  100     0.5s filter_map
- 
[ ]    0    0    0    0 /  100     0.0s update_subtree
[ ]    5    0    0    5 /  100     0.1s update_subtree (collecting)
[ ]   12    0    0   12 /  100     0.2s update_subtree (collecting)
[ ]   19    0    0   19 /  100     0.3s update_subtree
[ ]   24    0    0   24 /  100     0.4s update_subtree (collecting)
[ ]   33    0    0   33 /  100     0.5s update_subtree (collecting)
[ ]   40    0    0   40 /  100     0.6s update_subtree (collecting)
[ ]   46    0    0   46 /  100     0.8s update_subtree (collecting)
[ ]   55    0    0   55 /  100     0.9s update_subtree
[ ]   61    0    0   61 /  100     1.0s update_subtree (collecting)
[ ]   71    0    0   71 /  100     1.1s update_subtree (collecting)
[ ]   82    0    0   82 /  100     1.2s update_subtree (collecting)
[ ]   87    0    0   87 /  100     1.3s update_subtree
[ ]   98    0    0   98 /  100     1.4s update_subtree
[✓]  100    0    0  100 /  100     1.4s update_subtree
- 
[ ]    0    0    0    0 /  100     0.0s update_singleton
[ ]   35    0    0   35 /  100     0.1s update_singleton (collecting)
[ ]   70    0    0   70 /  100     0.2s update_singleton
[ ]   97    0    0   97 /  100     0.3s update_singleton (collecting)
[✓]  100    0    0  100 /  100     0.3s update_singleton
- 
[ ]    0    0    0    0 /  100     0.0s update_root
[ ]   33    0    0   33 /  100     0.1s update_root (collecting)
[ ]   75    0    0   75 /  100     0.2s update_root
[ ]   97    0    0   97 /  100     0.3s update_root (collecting)
[✓]  100    0    0  100 /  100     0.3s update_root
- 
[ ]    0    0    0    0 /  100     0.0s union
[ ]   16    0    0   16 /  100     0.1s union (collecting)
[ ]   26    0    0   26 /  100     0.2s union (collecting)
[ ]   38    0    0   38 /  100     0.3s union (collecting)
[ ]   46    0    0   46 /  100     0.4s union
[ ]   62    0    0   62 /  100     0.5s union (collecting)
[ ]   70    0    0   70 /  100     0.6s union (collecting)
[ ]   89    0    0   89 /  100     0.8s union (collecting)
[✓]  100    0    0  100 /  100     0.8s union
- 
[ ]    0    0    0    0 /  100     0.0s union_subtree
[ ]   13    0    0   13 /  100     0.1s union_subtree
[ ]   22    0    0   22 /  100     0.2s union_subtree (collecting)
[ ]   32    0    0   32 /  100     0.3s union_subtree (collecting)
[ ]   45    0    0   45 /  100     0.5s union_subtree (collecting)
[ ]   61    0    0   61 /  100     0.6s union_subtree (collecting)
[ ]   70    0    0   70 /  100     0.7s union_subtree (collecting)
[ ]   88    0    0   88 /  100     0.8s union_subtree (collecting)
[✓]  100    0    0  100 /  100     0.9s union_subtree
- 
[ ]    0    0    0    0 /  100     0.0s union_singleton
[ ]   22    0    0   22 /  100     0.1s union_singleton (collecting)
[ ]   28    0    0   28 /  100     0.2s union_singleton (collecting)
[ ]   45    0    0   45 /  100     0.3s union_singleton (collecting)
[ ]   70    0    0   70 /  100     0.4s union_singleton (collecting)
[ ]   89    0    0   89 /  100     0.6s union_singleton (collecting)
[✓]  100    0    0  100 /  100     0.6s union_singleton
- 
[ ]    0    0    0    0 /  100     0.0s union_root
[ ]   22    0    0   22 /  100     0.1s union_root (collecting)
[ ]   41    0    0   41 /  100     0.2s union_root (collecting)
[ ]   64    0    0   64 /  100     0.3s union_root (collecting)
[ ]   89    0    0   89 /  100     0.4s union_root (collecting)
[✓]  100    0    0  100 /  100     0.5s union_root
- 
[ ]    0    0    0    0 /  100     0.0s detach_subtree
[ ]   30    0    0   30 /  100     0.1s detach_subtree (collecting)
[ ]   56    0    0   56 /  100     0.2s detach_subtree (collecting)
[ ]   94    0    0   94 /  100     0.3s detach_subtree (collecting)
[✓]  100    0    0  100 /  100     0.3s detach_subtree
- 
[ ]    0    0    0    0 /  100     0.0s detach_singleton
[ ]   29    0    0   29 /  100     0.1s detach_singleton (collecting)
[ ]   54    0    0   54 /  100     0.2s detach_singleton (collecting)
[ ]   75    0    0   75 /  100     0.3s detach_singleton (collecting)
[✓]  100    0    0  100 /  100     0.4s detach_singleton
- 
[ ]    0    0    0    0 /  100     0.0s detach_root
[ ]   19    0    0   19 /  100     0.1s detach_root
[ ]   44    0    0   44 /  100     0.2s detach_root (collecting)
[ ]   69    0    0   69 /  100     0.3s detach_root (collecting)
[ ]   86    0    0   86 /  100     0.4s detach_root (collecting)
[✓]  100    0    0  100 /  100     0.4s detach_root
- 
[ ]    0    0    0    0 /  100     0.0s to_seq
[ ]   26    0    0   26 /  100     0.1s to_seq (collecting)
[ ]   58    0    0   58 /  100     0.2s to_seq (collecting)
[ ]   78    0    0   78 /  100     0.3s to_seq (collecting)
[ ]   99    0    0   99 /  100     0.4s to_seq (collecting)
[✓]  100    0    0  100 /  100     0.4s to_seq
- 
[ ]    0    0    0    0 /  100     0.0s to_seq_with_bwd_paths
[ ]   28    0    0   28 /  100     0.1s to_seq_with_bwd_paths (collecting)
[ ]   60    0    0   60 /  100     0.2s to_seq_with_bwd_paths (collecting)
[ ]   80    0    0   80 /  100     0.3s to_seq_with_bwd_paths (collecting)
[✓]  100    0    0  100 /  100     0.4s to_seq_with_bwd_paths
- 
[ ]    0    0    0    0 /  100     0.0s to_seq_values
[ ]   18    0    0   18 /  100     0.1s to_seq_values (collecting)
[ ]   42    0    0   42 /  100     0.2s to_seq_values (collecting)
[ ]   70    0    0   70 /  100     0.3s to_seq_values (collecting)
[ ]   94    0    0   94 /  100     0.4s to_seq_values (collecting)
[✓]  100    0    0  100 /  100     0.4s to_seq_values
- 
[ ]    0    0    0    0 /  100     0.0s of_seq
[ ]   18    0    0   18 /  100     0.1s of_seq (collecting)
[ ]   44    0    0   44 /  100     0.2s of_seq (collecting)
[ ]   69    0    0   69 /  100     0.3s of_seq (collecting)
[ ]   98    0    0   98 /  100     0.4s of_seq (collecting)
[✓]  100    0    0  100 /  100     0.4s of_seq
- 
[ ]    0    0    0    0 /  100     0.0s of_seq_with_merger
[ ]   20    0    0   20 /  100     0.1s of_seq_with_merger (collecting)
[ ]   38    0    0   38 /  100     0.2s of_seq_with_merger
[ ]   57    0    0   57 /  100     0.3s of_seq_with_merger (collecting)
[ ]   91    0    0   91 /  100     0.4s of_seq_with_merger (collecting)
[✓]  100    0    0  100 /  100     0.5s of_seq_with_merger
- 
[ ]    0    0    0    0 /  100     0.0s retag
[ ]   31    0    0   31 /  100     0.1s retag (collecting)
[ ]   59    0    0   59 /  100     0.2s retag
[ ]   88    0    0   88 /  100     0.3s retag (collecting)
[✓]  100    0    0  100 /  100     0.3s retag
- 
[ ]    0    0    0    0 /  100     0.0s retag_subtree
[ ]   34    0    0   34 /  100     0.1s retag_subtree (collecting)
[ ]   54    0    0   54 /  100     0.2s retag_subtree (collecting)
[ ]   86    0    0   86 /  100     0.3s retag_subtree (collecting)
[✓]  100    0    0  100 /  100     0.4s retag_subtree
- 
[ ]    0    0    0    0 /  100     0.0s untag
[ ]   16    0    0   16 /  100     0.1s untag
[ ]   40    0    0   40 /  100     0.2s untag
[ ]   58    0    0   58 /  100     0.3s untag (collecting)
[ ]   86    0    0   86 /  100     0.4s untag (collecting)
[✓]  100    0    0  100 /  100     0.4s untag
- 
[ ]    0    0    0    0 /  100     0.0s set_of_tags
[ ]   23    0    0   23 /  100     0.1s set_of_tags (collecting)
[ ]   53    0    0   53 /  100     0.2s set_of_tags (collecting)
[ ]   74    0    0   74 /  100     0.4s set_of_tags (collecting)
[✓]  100    0    0  100 /  100     0.4s set_of_tags
- ================================================================================
- success (ran 32 tests)
-> compiled  yuujinchou.5.1.0
-> removed   yuujinchou.5.1.0
-> installed yuujinchou.5.1.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 18:03.55 ---> saved as "d51e558e3e520161a69ae0c3c8b21491405e801abec1e91c454589c3326b23dc"
Job succeeded
2026-03-25 18:04.06: Job succeeded