(for PR #29581)

2026-03-21 23:40.11: New job: test spectrum_tools.1.0.0.alpha2, using opam dev
                              from https://github.com/ocaml/opam-repository.git#refs/pull/29581/head (c52e39f11b5df3e4bb74becd6c0b64f6f336b223)
                              on debian-13-ocaml-5.4/arm64

To reproduce locally:

cd $(mktemp -d)
git clone --recursive "https://github.com/ocaml/opam-repository.git" && cd "opam-repository" && git fetch origin "refs/pull/29581/head" && git reset --hard c52e39f1
git fetch origin master
git merge --no-edit 76bf2ed9443fdee37e6f046c6295d358be3f8598
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a
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 spectrum_tools.1.0.0.alpha2 1.0.0.alpha2
RUN opam reinstall spectrum_tools.1.0.0.alpha2; \
    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" != 'spectrum_tools.1.0.0.alpha2' && 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 spectrum_tools.1.0.0.alpha2) || true
RUN opam reinstall --with-test --verbose spectrum_tools.1.0.0.alpha2; \
    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" != 'spectrum_tools.1.0.0.alpha2' && 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-21 23:40.11: Using cache hint "ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a-spectrum_tools.1.0.0.alpha2-c52e39f11b5df3e4bb74becd6c0b64f6f336b223"
2026-03-21 23:40.11: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a)
 (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 spectrum_tools.1.0.0.alpha2 1.0.0.alpha2"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall spectrum_tools.1.0.0.alpha2;\
             \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\" != 'spectrum_tools.1.0.0.alpha2' && 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 spectrum_tools.1.0.0.alpha2) || true"))
 (run (shell  "opam reinstall --with-test --verbose spectrum_tools.1.0.0.alpha2;\
             \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\" != 'spectrum_tools.1.0.0.alpha2' && 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-21 23:40.11: Waiting for resource in pool OCluster
2026-03-21 23:40.14: Waiting for worker…
2026-03-21 23:40.14: Got resource from pool OCluster
Building on ocaml-2.osuosl.ci.dev
All commits already cached
Updating files:  11% (2166/18514)
Updating files:  12% (2222/18514)
Updating files:  13% (2407/18514)
Updating files:  14% (2592/18514)
Updating files:  15% (2778/18514)
Updating files:  16% (2963/18514)
Updating files:  17% (3148/18514)
Updating files:  18% (3333/18514)
Updating files:  19% (3518/18514)
Updating files:  20% (3703/18514)
Updating files:  21% (3888/18514)
Updating files:  22% (4074/18514)
Updating files:  23% (4259/18514)
Updating files:  24% (4444/18514)
Updating files:  25% (4629/18514)
Updating files:  26% (4814/18514)
Updating files:  27% (4999/18514)
Updating files:  28% (5184/18514)
Updating files:  29% (5370/18514)
Updating files:  30% (5555/18514)
Updating files:  31% (5740/18514)
Updating files:  32% (5925/18514)
Updating files:  33% (6110/18514)
Updating files:  34% (6295/18514)
Updating files:  35% (6480/18514)
Updating files:  36% (6666/18514)
Updating files:  37% (6851/18514)
Updating files:  38% (7036/18514)
Updating files:  38% (7220/18514)
Updating files:  39% (7221/18514)
Updating files:  40% (7406/18514)
Updating files:  41% (7591/18514)
Updating files:  42% (7776/18514)
Updating files:  43% (7962/18514)
Updating files:  44% (8147/18514)
Updating files:  45% (8332/18514)
Updating files:  46% (8517/18514)
Updating files:  47% (8702/18514)
Updating files:  48% (8887/18514)
Updating files:  49% (9072/18514)
Updating files:  50% (9257/18514)
Updating files:  51% (9443/18514)
Updating files:  52% (9628/18514)
Updating files:  53% (9813/18514)
Updating files:  54% (9998/18514)
Updating files:  55% (10183/18514)
Updating files:  56% (10368/18514)
Updating files:  57% (10553/18514)
Updating files:  58% (10739/18514)
Updating files:  59% (10924/18514)
Updating files:  60% (11109/18514)
Updating files:  61% (11294/18514)
Updating files:  62% (11479/18514)
Updating files:  63% (11664/18514)
Updating files:  64% (11849/18514)
Updating files:  65% (12035/18514)
Updating files:  66% (12220/18514)
Updating files:  67% (12405/18514)
Updating files:  68% (12590/18514)
Updating files:  69% (12775/18514)
Updating files:  70% (12960/18514)
Updating files:  71% (13145/18514)
Updating files:  72% (13331/18514)
Updating files:  73% (13516/18514)
Updating files:  74% (13701/18514)
Updating files:  75% (13886/18514)
Updating files:  76% (14071/18514)
Updating files:  76% (14222/18514)
Updating files:  77% (14256/18514)
Updating files:  78% (14441/18514)
Updating files:  79% (14627/18514)
Updating files:  80% (14812/18514)
Updating files:  81% (14997/18514)
Updating files:  82% (15182/18514)
Updating files:  83% (15367/18514)
Updating files:  84% (15552/18514)
Updating files:  85% (15737/18514)
Updating files:  86% (15923/18514)
Updating files:  87% (16108/18514)
Updating files:  88% (16293/18514)
Updating files:  89% (16478/18514)
Updating files:  90% (16663/18514)
Updating files:  91% (16848/18514)
Updating files:  92% (17033/18514)
Updating files:  93% (17219/18514)
Updating files:  94% (17404/18514)
Updating files:  95% (17589/18514)
Updating files:  96% (17774/18514)
Updating files:  97% (17959/18514)
Updating files:  98% (18144/18514)
Updating files:  99% (18329/18514)
Updating files: 100% (18514/18514)
Updating files: 100% (18514/18514), done.
HEAD is now at 76bf2ed944 Merge pull request #29572 from hannesm/release-letsencrypt-v2.0.0
Updating 76bf2ed944..c52e39f11b
Fast-forward
 packages/spectrum/spectrum.1.0.0.alpha2/opam       | 52 ++++++++++++++++++++++
 .../spectrum_capabilities.1.0.0.alpha2/opam        | 43 ++++++++++++++++++
 .../spectrum_palette_ppx.1.0.0.alpha2/opam         | 45 +++++++++++++++++++
 .../spectrum_palettes.1.0.0.alpha2/opam            | 42 +++++++++++++++++
 .../spectrum_tools.1.0.0.alpha2/opam               | 47 +++++++++++++++++++
 5 files changed, 229 insertions(+)
 create mode 100644 packages/spectrum/spectrum.1.0.0.alpha2/opam
 create mode 100644 packages/spectrum_capabilities/spectrum_capabilities.1.0.0.alpha2/opam
 create mode 100644 packages/spectrum_palette_ppx/spectrum_palette_ppx.1.0.0.alpha2/opam
 create mode 100644 packages/spectrum_palettes/spectrum_palettes.1.0.0.alpha2/opam
 create mode 100644 packages/spectrum_tools/spectrum_tools.1.0.0.alpha2/opam

(from ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a)
Unable to find image 'ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a' locally
docker.io/ocaml/opam@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a: Pulling from ocaml/opam
ac9148dc57ca: Already exists
7888403f6ebd: Pulling fs layer
c624d8e138d3: Pulling fs layer
bae5329cb92a: Pulling fs layer
6228156e24ec: Pulling fs layer
d851fec6b77f: Pulling fs layer
45e3afcdcfef: Pulling fs layer
b3e7f2150c0a: Pulling fs layer
91048a8ba3a7: Pulling fs layer
26a15cffb83a: Pulling fs layer
3c2f2520de0f: Pulling fs layer
9f731cc5daa6: Pulling fs layer
0809377d5f3c: Pulling fs layer
ec4e42e8f98c: Pulling fs layer
065e3401ccf2: Pulling fs layer
bce3ceded749: Pulling fs layer
c4a4a6ab703b: Pulling fs layer
aa84bc2cf05b: Pulling fs layer
0fb96351134e: Pulling fs layer
a1735f92ccde: Pulling fs layer
dce836972d90: Pulling fs layer
8a0c641e2184: Pulling fs layer
4f4fb700ef54: Pulling fs layer
44a2b50d619a: Pulling fs layer
e27f63ab21e8: Pulling fs layer
826c3a0f7d41: Pulling fs layer
7fe544c7b3e6: Pulling fs layer
efa4af957d6d: Pulling fs layer
a2fa2f09a7e4: Pulling fs layer
3e0efbdba3cc: Pulling fs layer
4f299997ffd7: Pulling fs layer
f868b4e81e65: Pulling fs layer
87577251fd14: Pulling fs layer
5e9e2e42ec71: Pulling fs layer
99812197be51: Pulling fs layer
8b48f92b9c03: Pulling fs layer
45e3afcdcfef: Waiting
6336fa3f0edf: Pulling fs layer
b3e7f2150c0a: Waiting
91048a8ba3a7: Waiting
f03483f6ff47: Pulling fs layer
26a15cffb83a: Waiting
3c2f2520de0f: Waiting
9f731cc5daa6: Waiting
26c2642c44cf: Pulling fs layer
ec4e42e8f98c: Waiting
aa84bc2cf05b: Waiting
d851fec6b77f: Waiting
065e3401ccf2: Waiting
bce3ceded749: Waiting
c4a4a6ab703b: Waiting
3e0efbdba3cc: Waiting
4f299997ffd7: Waiting
6228156e24ec: Waiting
f868b4e81e65: Waiting
87577251fd14: Waiting
7fe544c7b3e6: Waiting
4f4fb700ef54: Waiting
0fb96351134e: Waiting
a1735f92ccde: Waiting
dce836972d90: Waiting
8a0c641e2184: Waiting
44a2b50d619a: Waiting
efa4af957d6d: Waiting
5e9e2e42ec71: Waiting
6336fa3f0edf: Waiting
e27f63ab21e8: Waiting
99812197be51: Waiting
826c3a0f7d41: Waiting
f03483f6ff47: Waiting
35e7bc3e512e: Pulling fs layer
26c2642c44cf: Waiting
8b48f92b9c03: Waiting
fb2e4e264f0c: Pulling fs layer
35e7bc3e512e: Waiting
aa2081614483: Pulling fs layer
526a1409cb54: Pulling fs layer
fb2e4e264f0c: Waiting
3a2eac8aba41: Pulling fs layer
aa2081614483: Waiting
526a1409cb54: Waiting
663c0b5229f0: Pulling fs layer
3a2eac8aba41: Waiting
663c0b5229f0: Waiting
f07447d54e12: Pulling fs layer
8eca58e2e466: Pulling fs layer
269ed2830268: Pulling fs layer
f07447d54e12: Waiting
8eca58e2e466: Waiting
269ed2830268: Waiting
c624d8e138d3: Verifying Checksum
c624d8e138d3: Download complete
7888403f6ebd: Verifying Checksum
7888403f6ebd: Download complete
7888403f6ebd: Pull complete
bae5329cb92a: Download complete
c624d8e138d3: Pull complete
6228156e24ec: Verifying Checksum
6228156e24ec: Download complete
45e3afcdcfef: Verifying Checksum
45e3afcdcfef: Download complete
b3e7f2150c0a: Verifying Checksum
b3e7f2150c0a: Download complete
91048a8ba3a7: Verifying Checksum
91048a8ba3a7: Download complete
bae5329cb92a: Pull complete
26a15cffb83a: Verifying Checksum
26a15cffb83a: Download complete
3c2f2520de0f: Verifying Checksum
3c2f2520de0f: Download complete
9f731cc5daa6: Verifying Checksum
9f731cc5daa6: Download complete
0809377d5f3c: Verifying Checksum
0809377d5f3c: Download complete
ec4e42e8f98c: Verifying Checksum
ec4e42e8f98c: Download complete
065e3401ccf2: Verifying Checksum
065e3401ccf2: Download complete
6228156e24ec: Pull complete
bce3ceded749: Download complete
c4a4a6ab703b: Verifying Checksum
c4a4a6ab703b: Download complete
aa84bc2cf05b: Download complete
0fb96351134e: Download complete
a1735f92ccde: Verifying Checksum
a1735f92ccde: Download complete
dce836972d90: Verifying Checksum
dce836972d90: Download complete
8a0c641e2184: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
44a2b50d619a: Download complete
e27f63ab21e8: Verifying Checksum
e27f63ab21e8: Download complete
826c3a0f7d41: Download complete
d851fec6b77f: Verifying Checksum
d851fec6b77f: Download complete
7fe544c7b3e6: Verifying Checksum
7fe544c7b3e6: Download complete
efa4af957d6d: Verifying Checksum
efa4af957d6d: Download complete
a2fa2f09a7e4: Download complete
3e0efbdba3cc: Verifying Checksum
3e0efbdba3cc: Download complete
4f299997ffd7: Verifying Checksum
4f299997ffd7: Download complete
f868b4e81e65: Verifying Checksum
f868b4e81e65: Download complete
87577251fd14: Verifying Checksum
87577251fd14: Download complete
5e9e2e42ec71: Verifying Checksum
5e9e2e42ec71: Download complete
99812197be51: Download complete
6336fa3f0edf: Verifying Checksum
6336fa3f0edf: Download complete
26c2642c44cf: Verifying Checksum
26c2642c44cf: Download complete
35e7bc3e512e: Download complete
fb2e4e264f0c: Verifying Checksum
aa2081614483: Verifying Checksum
aa2081614483: Download complete
526a1409cb54: Verifying Checksum
526a1409cb54: Download complete
f03483f6ff47: Verifying Checksum
f03483f6ff47: Download complete
3a2eac8aba41: Download complete
f07447d54e12: Download complete
8b48f92b9c03: Download complete
8eca58e2e466: Download complete
269ed2830268: Verifying Checksum
269ed2830268: Download complete
663c0b5229f0: Verifying Checksum
663c0b5229f0: Download complete
d851fec6b77f: Pull complete
45e3afcdcfef: Pull complete
b3e7f2150c0a: Pull complete
91048a8ba3a7: Pull complete
26a15cffb83a: Pull complete
3c2f2520de0f: Pull complete
9f731cc5daa6: Pull complete
0809377d5f3c: Pull complete
ec4e42e8f98c: Pull complete
065e3401ccf2: Pull complete
bce3ceded749: Pull complete
c4a4a6ab703b: Pull complete
aa84bc2cf05b: Pull complete
0fb96351134e: Pull complete
a1735f92ccde: Pull complete
dce836972d90: Pull complete
8a0c641e2184: Pull complete
4f4fb700ef54: Pull complete
44a2b50d619a: Pull complete
e27f63ab21e8: Pull complete
826c3a0f7d41: Pull complete
7fe544c7b3e6: Pull complete
efa4af957d6d: Pull complete
a2fa2f09a7e4: Pull complete
3e0efbdba3cc: Pull complete
4f299997ffd7: Pull complete
f868b4e81e65: Pull complete
87577251fd14: Pull complete
5e9e2e42ec71: Pull complete
99812197be51: Pull complete
8b48f92b9c03: Pull complete
6336fa3f0edf: Pull complete
f03483f6ff47: Pull complete
26c2642c44cf: Pull complete
35e7bc3e512e: Pull complete
fb2e4e264f0c: Pull complete
aa2081614483: Pull complete
526a1409cb54: Pull complete
3a2eac8aba41: Pull complete
663c0b5229f0: Pull complete
f07447d54e12: Pull complete
8eca58e2e466: Pull complete
269ed2830268: Pull complete
Digest: sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a
Status: Downloaded newer image for ocaml/opam@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a
2026-03-21 23:40.27 ---> using "d3aef2d93064c0f54a54ca210e09e3e24634a77abbb58d114299d90d4843ce0d" 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-21 23:40.27 ---> using "c6d013832b8e76282c6b234748b48ad1f1e9cc759f5de056c670da3554b797e4" 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 79 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=79 --global
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-21 23:40.27 ---> using "fb496ff70b60feb4631f2ccabfaf3e4ce96b849824fabff4dfb86387ecb42786" 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=arm64 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                 15
# 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-21 23:40.27 ---> using "aa92515e6c6831c3af95685ce4459633457cd57f4d4ed0d3b134dfcd50a6d3ce" 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-21 23:40.27 ---> using "c1b6fa629490ffe282e3b42423139a5cde8b6751f88cf847685f943bce34c598" from cache

/home/opam: (copy (src .) (dst opam-repository/))
2026-03-21 23:40.47 ---> saved as "c9266572de4c37baba8ea508e92343d2fd41a960e3c337bf623e720f609223e5"

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2026-03-21 23:41.35 ---> saved as "80f8f4a9a5c8b70f1f42576488cda96521490c7e40512d74a0f7a00e53b2cf7b"

/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 arm64 Packages [9607 kB]
- Get:5 http://deb.debian.org/debian-security trixie-security/main arm64 Packages [113 kB]
- Fetched 9951 kB in 1s (7591 kB/s)
- Reading package lists...
2026-03-21 23:41.41 ---> saved as "a2c3e9699126c37aeb2d30ac0a19fc7020b7c86396186f040d1c378f7f5dfeb6"

/home/opam: (run (shell "opam pin add -k version -yn spectrum_tools.1.0.0.alpha2 1.0.0.alpha2"))
spectrum_tools is now pinned to version 1.0.0.alpha2
2026-03-21 23:41.42 ---> saved as "ce803672cd90e68c02ca22844dd71896c2cdacadd0d3705bf2cf3da23a7626b4"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall spectrum_tools.1.0.0.alpha2;\
                        \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\" != 'spectrum_tools.1.0.0.alpha2' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
spectrum_tools.1.0.0.alpha2 is not installed. Install it? [Y/n] y
The following actions will be performed:
=== install 19 packages
  - install color                0.3.0                 [required by spectrum_tools]
  - install cppo                 1.8.0                 [required by ppx_deriving]
  - install dune                 3.22.0                [required by spectrum_tools]
  - install gg                   1.0.0                 [required by spectrum_tools]
  - install ocaml-compiler-libs  v0.17.0               [required by ppxlib]
  - install ocamlbuild           0.16.1                [required by gg]
  - install ocamlfind            1.9.8                 [required by ppx_deriving]
  - install oktree               0.2.4                 [required by spectrum_palette_ppx]
  - install ppx_derivers         1.2.1                 [required by ppx_deriving]
  - install ppx_deriving         6.1.1                 [required by spectrum_tools]
  - install ppxlib               0.37.0                [required by ppx_deriving, spectrum_palette_ppx]
  - install re                   1.14.0                [required by spectrum_tools]
  - install sexplib0             v0.17.0               [required by ppxlib]
  - install spectrum_palette_ppx 1.0.0.alpha2          [required by spectrum_tools]
  - install spectrum_palettes    1.0.0.alpha2          [required by spectrum_tools]
  - install spectrum_tools       1.0.0.alpha2 (pinned)
  - install stdlib-shims         0.3.0                 [required by ppxlib]
  - install topkg                1.1.1                 [required by gg]
  - install yojson               3.0.0                 [required by spectrum_palette_ppx]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved color.0.3.0  (https://opam.ocaml.org/cache)
-> retrieved cppo.1.8.0  (cached)
-> retrieved dune.3.22.0  (cached)
-> retrieved gg.1.0.0  (https://opam.ocaml.org/cache)
-> retrieved ocaml-compiler-libs.v0.17.0  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved oktree.0.2.4  (https://opam.ocaml.org/cache)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved ppx_deriving.6.1.1  (cached)
-> retrieved ppxlib.0.37.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved sexplib0.v0.17.0  (cached)
-> retrieved spectrum_palette_ppx.1.0.0.alpha2, spectrum_palettes.1.0.0.alpha2, spectrum_tools.1.0.0.alpha2  (https://github.com/anentropic/ocaml-spectrum/archive/refs/tags/1.0.0.alpha2.tar.gz)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved yojson.3.0.0  (cached)
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed gg.1.0.0
-> installed dune.3.22.0
-> installed ppx_derivers.1.2.1
-> installed color.0.3.0
-> installed stdlib-shims.0.3.0
-> installed sexplib0.v0.17.0
-> installed cppo.1.8.0
-> installed re.1.14.0
-> installed ocaml-compiler-libs.v0.17.0
-> installed yojson.3.0.0
-> installed ppxlib.0.37.0
-> installed ppx_deriving.6.1.1
-> installed oktree.0.2.4
-> installed spectrum_palette_ppx.1.0.0.alpha2
-> installed spectrum_palettes.1.0.0.alpha2
-> installed spectrum_tools.1.0.0.alpha2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-21 23:43.26 ---> saved as "525226c0b9041d8ff253845fd1cd4a87a8205d9dacb363d926160c51db64fcca"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test spectrum_tools.1.0.0.alpha2) || true"))
The following actions will be performed:
=== recompile 1 package
  - recompile spectrum_tools     1.0.0.alpha2 (pinned)
=== install 13 packages
  - install   alcotest           1.9.1                 [required by spectrum_tools]
  - 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   junit              2.3.0                 [required by junit_alcotest]
  - install   junit_alcotest     2.3.0                 [required by spectrum_tools]
  - install   ocaml-syntax-shims 1.0.0                 [required by alcotest]
  - install   ptime              1.2.0                 [required by junit]
  - install   qcheck-alcotest    0.91                  [required by spectrum_tools]
  - install   qcheck-core        0.91                  [required by qcheck-alcotest]
  - install   seq                base                  [required by tyxml]
  - install   tyxml              4.6.0                 [required by junit]
  - 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 junit.2.3.0, junit_alcotest.2.3.0  (https://opam.ocaml.org/cache)
-> installed astring.0.8.5
-> retrieved ocaml-syntax-shims.1.0.0  (https://opam.ocaml.org/cache)
-> retrieved ptime.1.2.0  (https://opam.ocaml.org/cache)
-> installed ocaml-syntax-shims.1.0.0
-> retrieved qcheck-alcotest.0.91, qcheck-core.0.91  (https://opam.ocaml.org/cache)
-> installed ptime.1.2.0
-> retrieved seq.base  (2 extra sources)
-> retrieved seq.base  (2 extra sources)
-> installed seq.base
-> retrieved tyxml.4.6.0  (https://opam.ocaml.org/cache)
-> installed cmdliner.2.1.0
-> removed   spectrum_tools.1.0.0.alpha2
-> installed qcheck-core.0.91
-> retrieved uutf.1.0.4  (https://opam.ocaml.org/cache)
-> installed fmt.0.11.0
-> installed uutf.1.0.4
-> installed alcotest.1.9.1
-> installed qcheck-alcotest.0.91
-> installed tyxml.4.6.0
-> installed junit.2.3.0
-> installed junit_alcotest.2.3.0
-> installed spectrum_tools.1.0.0.alpha2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-21 23:43.58 ---> saved as "a9cd4aef24d8b04021e0c7c64dc2676610783e676808180dafd8cd82ff626e23"

/home/opam: (run (shell  "opam reinstall --with-test --verbose spectrum_tools.1.0.0.alpha2;\
                        \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\" != 'spectrum_tools.1.0.0.alpha2' && 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 spectrum_tools 1.0.0.alpha2 (pinned)

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  2/4: [spectrum_tools: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "spectrum_tools" "-j" "15" "@install" "@runtest" (CWD=/home/opam/.opam/5.4/.opam-switch/build/spectrum_tools.1.0.0.alpha2)
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I lib/spectrum_tools/.spectrum_tools.objs/byte -I /home/opam/.opam/5.4/lib/color -I /home/opam/.opam/5.4/lib/gg -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/oktree -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppx_deriving/runtime -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/spectrum_palette_ppx -I /home/opam/.opam/5.4/lib/spectrum_palettes -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/yojson -no-alias-deps -open Spectrum_tools__ -o lib/spectrum_tools/.spectrum_tools.objs/byte/spectrum_tools__Query.cmi -c -intf lib/spectrum_tools/query.pp.mli)
- File "_none_", line 1:
- Alert ocaml_deprecated_auto_include: 
- OCaml's lib directory layout changed in 5.0. The unix subdirectory has been
- automatically added to the search path, but you should add -I +unix to the
- command-line to silence this alert (e.g. by adding unix to the list of
- libraries in your dune file, or adding use_unix to your _tags file for
- ocamlbuild, or using -package unix for ocamlfind).
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I lib/spectrum_tools/.spectrum_tools.objs/byte -I /home/opam/.opam/5.4/lib/color -I /home/opam/.opam/5.4/lib/gg -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/oktree -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppx_deriving/runtime -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/spectrum_palette_ppx -I /home/opam/.opam/5.4/lib/spectrum_palettes -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/yojson -no-alias-deps -open Spectrum_tools__ -o lib/spectrum_tools/.spectrum_tools.objs/byte/spectrum_tools__Utils.cmo -c -impl lib/spectrum_tools/utils.pp.ml)
- File "_none_", line 1:
- Alert ocaml_deprecated_auto_include: 
- OCaml's lib directory layout changed in 5.0. The unix subdirectory has been
- automatically added to the search path, but you should add -I +unix to the
- command-line to silence this alert (e.g. by adding unix to the list of
- libraries in your dune file, or adding use_unix to your _tags file for
- ocamlbuild, or using -package unix for ocamlfind).
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -g -bin-annot -bin-annot-occurrences -I lib/spectrum_tools/.spectrum_tools.objs/byte -I /home/opam/.opam/5.4/lib/color -I /home/opam/.opam/5.4/lib/gg -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/oktree -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppx_deriving/runtime -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/spectrum_palette_ppx -I /home/opam/.opam/5.4/lib/spectrum_palettes -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/yojson -cmi-file lib/spectrum_tools/.spectrum_tools.objs/byte/spectrum_tools__Query.cmi -no-alias-deps -open Spectrum_tools__ -o lib/spectrum_tools/.spectrum_tools.objs/byte/spectrum_tools__Query.cmo -c -impl lib/spectrum_tools/query.pp.ml)
- File "_none_", line 1:
- Alert ocaml_deprecated_auto_include: 
- OCaml's lib directory layout changed in 5.0. The unix subdirectory has been
- automatically added to the search path, but you should add -I +unix to the
- command-line to silence this alert (e.g. by adding unix to the list of
- libraries in your dune file, or adding use_unix to your _tags file for
- ocamlbuild, or using -package unix for ocamlfind).
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I lib/spectrum_tools/.spectrum_tools.objs/byte -I lib/spectrum_tools/.spectrum_tools.objs/native -I /home/opam/.opam/5.4/lib/color -I /home/opam/.opam/5.4/lib/gg -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/oktree -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppx_deriving/runtime -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/spectrum_palette_ppx -I /home/opam/.opam/5.4/lib/spectrum_palettes -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/yojson -cmi-file lib/spectrum_tools/.spectrum_tools.objs/byte/spectrum_tools__Utils.cmi -no-alias-deps -open Spectrum_tools__ -o lib/spectrum_tools/.spectrum_tools.objs/native/spectrum_tools__Utils.cmx -c -impl lib/spectrum_tools/utils.pp.ml)
- File "_none_", line 1:
- Alert ocaml_deprecated_auto_include: 
- OCaml's lib directory layout changed in 5.0. The unix subdirectory has been
- automatically added to the search path, but you should add -I +unix to the
- command-line to silence this alert (e.g. by adding unix to the list of
- libraries in your dune file, or adding use_unix to your _tags file for
- ocamlbuild, or using -package unix for ocamlfind).
- (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -I lib/spectrum_tools/.spectrum_tools.objs/byte -I lib/spectrum_tools/.spectrum_tools.objs/native -I /home/opam/.opam/5.4/lib/color -I /home/opam/.opam/5.4/lib/gg -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/common -I /home/opam/.opam/5.4/lib/ocaml-compiler-libs/shadow -I /home/opam/.opam/5.4/lib/ocaml/compiler-libs -I /home/opam/.opam/5.4/lib/oktree -I /home/opam/.opam/5.4/lib/ppx_derivers -I /home/opam/.opam/5.4/lib/ppx_deriving/runtime -I /home/opam/.opam/5.4/lib/ppxlib -I /home/opam/.opam/5.4/lib/ppxlib/ast -I /home/opam/.opam/5.4/lib/ppxlib/astlib -I /home/opam/.opam/5.4/lib/ppxlib/print_diff -I /home/opam/.opam/5.4/lib/ppxlib/stdppx -I /home/opam/.opam/5.4/lib/ppxlib/traverse_builtins -I /home/opam/.opam/5.4/lib/re -I /home/opam/.opam/5.4/lib/sexplib0 -I /home/opam/.opam/5.4/lib/spectrum_palette_ppx -I /home/opam/.opam/5.4/lib/spectrum_palettes -I /home/opam/.opam/5.4/lib/stdlib-shims -I /home/opam/.opam/5.4/lib/yojson -cmi-file lib/spectrum_tools/.spectrum_tools.objs/byte/spectrum_tools__Query.cmi -no-alias-deps -open Spectrum_tools__ -o lib/spectrum_tools/.spectrum_tools.objs/native/spectrum_tools__Query.cmx -c -impl lib/spectrum_tools/query.pp.ml)
- File "_none_", line 1:
- Alert ocaml_deprecated_auto_include: 
- OCaml's lib directory layout changed in 5.0. The unix subdirectory has been
- automatically added to the search path, but you should add -I +unix to the
- command-line to silence this alert (e.g. by adding unix to the list of
- libraries in your dune file, or adding use_unix to your _tags file for
- ocamlbuild, or using -package unix for ocamlfind).
- (cd _build/default/lib/spectrum_tools/test && ./test_convert.exe)
- Testing `Convert'.
- This run has ID `U04SCTLN'.
- 
-   [OK]          RGB to ANSI-256          0   rgb_to_ansi256 basic colors.
-   [OK]          RGB to ANSI-256          1   color cube boundaries.
-   [OK]          RGB to ANSI-16           0   rgb_to_ansi16 basic colors.
-   [OK]          Color.to_hsva            0   basic conversions.
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/spectrum_tools.1.0.0.alpha2/_build/default/lib/spectrum_tools/test/_build/_tests/Convert'.
- Test Successful in 0.001s. 4 tests run.
- (cd _build/default/lib/spectrum_tools/test && ./test_utils.exe)
- Testing `Utils'.
- This run has ID `XYZ26GMG'.
- 
-   [OK]          Math - Float division                        0   integer floa...
-   [OK]          Math - Rounding                              0   int_round (b...
-   [OK]          Math - Clamping and min/max                  0   clamp to range.
-   [OK]          Math - Clamping and min/max                  1   min3/max3.
-   [OK]          Math - Clamping and min/max                  2   min_fold/max...
-   [OK]          Math - Square root approximation             0   nearest_sqrt...
-   [OK]          Color - to_rgba (Gg -> int RGBA)             0   primary colo...
-   [OK]          Color - to_rgba' (Gg -> float RGBA)          0   primary colo...
-   [OK]          Color - of_rgb (int RGB -> Gg)               0   construct fr...
-   [OK]          Color - Roundtrip conversions                0   RGB -> Gg ->...
-   [OK]          Color - Component mapping                    0   map_color on...
-   [OK]          Color - Component mapping                    1   map_color' o...
-   [OK]          Color - Component mapping                    2   map3 on trip...
-   [OK]          List - Cartesian product                     0   product3 of ...
-   [OK]          List - Range sequences                       0   range with v...
-   [OK]          List - Range sequences                       1   range with i...
-   [OK]          AdjacencySet - Finding neighbors             0   adjacent_val...
-   [OK]          AdjacencySet - Finding neighbors             1   adjacent_val...
-   [OK]          Memoization                                  0   memoise cach...
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/spectrum_tools.1.0.0.alpha2/_build/default/lib/spectrum_tools/test/_build/_tests/Utils'.
- Test Successful in 0.004s. 19 tests run.
- (cd _build/default/lib/spectrum_tools/test && ./test_properties.exe)
- qcheck random seed: 387355491
- Testing `Properties (spectrum_tools)'.
- This run has ID `29VI70EB'.
- 
-   [OK]          Color conversion properties          0   rgb_to_ansi256 retur...
-   [OK]          Color conversion properties          1   rgb_to_ansi16 return...
-   [OK]          Color conversion properties          2   RGB int -> v4 -> RGB...
-   [OK]          Color conversion properties          3   rgb_to_ansi256 is de...
-   [OK]          Color conversion properties          4   rgb_to_ansi16 is det...
-   [OK]          Color conversion properties          5   HSL -> Color -> RGBA...
-   [OK]          Color conversion properties          6   palette colors 16-25...
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/spectrum_tools.1.0.0.alpha2/_build/default/lib/spectrum_tools/test/_build/_tests/Properties U+0028spectrum_toolsU+0029'.
- Test Successful in 0.012s. 7 tests run.
- (cd _build/default/lib/spectrum_tools/test && ./test_query.exe)
- Testing `Query'.
- This run has ID `8QDEE7N3'.
- 
-   [OK]          hex_to_8bit - Single char                  0   0-F scaling.
-   [OK]          hex_to_8bit - Two chars                    0   00-FF standard.
-   [OK]          hex_to_8bit - Three chars                  0   000-FFF scaling.
-   [OK]          hex_to_8bit - Four chars                   0   0000-FFFF scal...
-   [OK]          hex_to_8bit - Edge cases                   0   empty string r...
-   [OK]          hex_to_8bit - Scaling consistency          0   same value dif...
-   [OK]          parse_colour - Valid formats               0   red.
-   [OK]          parse_colour - Valid formats               1   green.
-   [OK]          parse_colour - Valid formats               2   blue.
-   [OK]          parse_colour - Valid formats               3   mixed widths.
-   [OK]          parse_colour - Valid formats               4   uppercase hex ...
-   [OK]          parse_colour - Invalid formats             0   missing prefix.
-   [OK]          parse_colour - Invalid formats             1   wrong separators.
-   [OK]          parse_colour - Invalid formats             2   non-hex chars.
-   [OK]          parse_colour - Invalid formats             3   too many chars.
-   [OK]          Terminal I/O - Error handling              0   query on non-TTY.
-   [OK]          Terminal I/O - Error handling              1   set_raw on non...
-   [OK]          Terminal I/O - Error handling              2   get_colours on...
- 
- Full test results in `~/.opam/5.4/.opam-switch/build/spectrum_tools.1.0.0.alpha2/_build/default/lib/spectrum_tools/test/_build/_tests/Query'.
- Test Successful in 0.004s. 18 tests run.
-> compiled  spectrum_tools.1.0.0.alpha2
-> removed   spectrum_tools.1.0.0.alpha2
-> installed spectrum_tools.1.0.0.alpha2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-21 23:44.10 ---> saved as "38f5d5a24f955539fef59c281c7f775d3fd1fb79b24eedc4137110180b2ad5ff"
Job succeeded
2026-03-21 23:44.21: Job succeeded