(for PR #28521)

2025-11-10 11:02.39: New job: test chess_com_api.1.0.2, using opam 2.1
                              from https://github.com/ocaml/opam-repository.git#refs/pull/28521/head (d524ea6c8a2ed6050068c8cedb293e595330dc67)
                              on debian-13-ocaml-4.14/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/28521/head" && git reset --hard d524ea6c
git fetch origin master
git merge --no-edit 21f97b2e6d7c617fc0a79cc8e59b2e10690960e1
cat > ../Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-4.14@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e
USER 1000:1000
WORKDIR /home/opam
RUN sudo ln -f /usr/bin/opam-2.1 /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 chess_com_api.1.0.2 1.0.2
RUN opam reinstall chess_com_api.1.0.2; \
    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" != 'chess_com_api.1.0.2' && 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 chess_com_api.1.0.2) || true
RUN opam reinstall --with-test --verbose chess_com_api.1.0.2; \
    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" != 'chess_com_api.1.0.2' && 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-10 11:02.39: Using cache hint "ocaml/opam:debian-13-ocaml-4.14@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e-chess_com_api.1.0.2-d524ea6c8a2ed6050068c8cedb293e595330dc67"
2025-11-10 11:02.39: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-4.14@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo ln -f /usr/bin/opam-2.1 /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 chess_com_api.1.0.2 1.0.2"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell  "opam reinstall chess_com_api.1.0.2;\
             \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\" != 'chess_com_api.1.0.2' && 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 chess_com_api.1.0.2) || true"))
 (run (shell  "opam reinstall --with-test --verbose chess_com_api.1.0.2;\
             \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\" != 'chess_com_api.1.0.2' && 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-10 11:02.39: Waiting for resource in pool OCluster
2025-11-10 13:19.11: Waiting for worker…
2025-11-10 13:22.15: Got resource from pool OCluster
Building on doris.caelum.ci.dev
All commits already cached
HEAD is now at 21f97b2e6d Merge pull request #28836 from dbuenzli/b0-publish-bytesrw.0.3.0
Merge made by the 'ort' strategy.
 packages/chess_com_api/chess_com_api.1.0.2/opam | 45 ++++++++++++++++++++
 packages/lichess_api/lichess_api.1.0.2/opam     | 45 ++++++++++++++++++++
 packages/pgn_parser/pgn_parser.1.0.2/opam       | 55 +++++++++++++++++++++++++
 3 files changed, 145 insertions(+)
 create mode 100644 packages/chess_com_api/chess_com_api.1.0.2/opam
 create mode 100644 packages/lichess_api/lichess_api.1.0.2/opam
 create mode 100644 packages/pgn_parser/pgn_parser.1.0.2/opam

(from ocaml/opam:debian-13-ocaml-4.14@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e)
Unable to find image 'ocaml/opam:debian-13-ocaml-4.14@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e' locally
docker.io/ocaml/opam@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e: Pulling from ocaml/opam
13cc39f8244a: Already exists
b27d53669817: Already exists
062c909e206e: Already exists
265baae72087: Already exists
b6b7b385247c: Already exists
bfb7bf5b7c6d: Already exists
b18c76fc18f2: Already exists
6bdbb37ee35f: Already exists
84035aa4da2d: Already exists
0c3307e14207: Already exists
30b92d637d72: Already exists
991b07583706: Already exists
e1d7a79a1495: Already exists
6b08d63c6214: Already exists
4c7236344711: Already exists
12506f41e8b0: Already exists
12506f41e8b0: Already exists
2330d596aec1: Already exists
a48299f5ec62: Already exists
04618a577568: Already exists
8c4b002d072b: Already exists
4f4fb700ef54: Already exists
ff68f05e2976: Already exists
d5543b560a3e: Already exists
4a9030bbb1ef: Already exists
c59b3bec3411: Already exists
85a7c9be9495: Already exists
dbc6bd8f2e44: Already exists
6680a5133ca2: Already exists
470c0056084c: Already exists
6b9af56b67cf: Already exists
c572cde25fb3: Already exists
033b2d405acf: Already exists
663cc5b3d424: Already exists
840bbd47fded: Already exists
fb8f644ba010: Already exists
66735543f230: Already exists
7896354b8c11: Already exists
a0063722d8c2: Already exists
7018e4a5881b: Already exists
68cdbf191334: Pulling fs layer
32f4eb11e5dc: Pulling fs layer
eeb0425dd47f: Pulling fs layer
12428cddc61a: Pulling fs layer
32f4eb11e5dc: Verifying Checksum
32f4eb11e5dc: Download complete
eeb0425dd47f: Verifying Checksum
eeb0425dd47f: Download complete
12428cddc61a: Verifying Checksum
12428cddc61a: Download complete
68cdbf191334: Verifying Checksum
68cdbf191334: Download complete
68cdbf191334: Pull complete
32f4eb11e5dc: Pull complete
eeb0425dd47f: Pull complete
12428cddc61a: Pull complete
Digest: sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e
Status: Downloaded newer image for ocaml/opam@sha256:00ac8d2b32d98ee2c476e540a2ee462e24f50f003f31c05c8e412147e16c039e
2025-11-10 13:22.49 ---> using "0a7782df646ba17c4c91deb7545267f63c19555df9b225a0640862ce540c1383" from cache

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

/: (workdir /home/opam)

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam"))
2025-11-10 13:22.49 ---> using "4afc8b018a079f83f974985276cece0eeb4205ace6b984ba0a6588e991a6a39e" 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 development version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.1, 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
2025-11-10 13:23.46 ---> saved as "3575d4f060a84ef596aa3d79a8c8fdf233e4d28921ca4a027d6459bbc0e9a8b6"

/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.1.6 (263921263e1f745613e2882745114b7b08f3608b) 
# self-upgrade         no
# system               arch=x86_64 os=linux os-distribution=debian os-version=13
# solver               builtin-0install
# install-criteria     
# upgrade-criteria     
# jobs                 71
# repositories         1 (version-controlled)
# pinned               1 (version)
# current-switch       4.14
# ocaml:native         true
# ocaml:native-tools   true
# ocaml:native-dynlink true
# ocaml:stubsdir       /home/opam/.opam/4.14/lib/ocaml/stublibs:/home/opam/.opam/4.14/lib/ocaml
# ocaml:preinstalled   false
# ocaml:compiler       4.14.2
2025-11-10 13:23.48 ---> saved as "9c6876e500ccd30e134644ef82eac8cdf017667347896b8f1b5547ac6f64190c"

/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-10 13:24.04 ---> saved as "3d89206ae551159a3fc3459c7ec17d93c6d66dbbc2557c1fad1dbeef75f3d47c"

/home/opam: (copy (src .) (dst opam-repository/))
2025-11-10 13:24.57 ---> saved as "c73e76c308b7e1cda74ab845ac416545a9c835096022b5e6a05dbc882b18fef0"

/home/opam: (run (shell "opam repository set-url --strict default opam-repository/"))
[default] Initialised
2025-11-10 13:25.09 ---> saved as "78a0ce1de79413b1a3ce36308958321a6b20fae4cfca655cba046a561bad08ea"

/home/opam: (run (network host)
                 (shell "opam update --depexts || true"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://deb.debian.org/debian trixie InRelease
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Fetched 90.7 kB in 0s (1299 kB/s)
- Reading package lists...
2025-11-10 13:25.10 ---> saved as "bb88d9a1f4658a89588f606e252344023a6b769f4def56fd890c3f62941a1561"

/home/opam: (run (shell "opam pin add -k version -yn chess_com_api.1.0.2 1.0.2"))
chess_com_api is now pinned to version 1.0.2
2025-11-10 13:25.11 ---> saved as "b35563835765472e06f92b661f53ca2db17ca7e3b8ef82f050e8f6ba5295c8ee"

/home/opam: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell  "opam reinstall chess_com_api.1.0.2;\
                        \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\" != 'chess_com_api.1.0.2' && partial_fails=\"$partial_fails $pkg\";\
                        \n        done;\
                        \n        test \"${partial_fails}\" != \"\" && echo \"opam-repo-ci detected dependencies failing: ${partial_fails}\";\
                        \n        exit 1"))
chess_com_api.1.0.2 is not installed. Install it? [Y/n] y
The following actions will be performed:
  - install conf-gmp            5             [required by conf-gmp-powm-sec, zarith]
  - install ocamlfind           1.9.8         [required by logs]
  - install dune                3.20.2        [required by chess_com_api]
  - install ocamlbuild          0.16.1        [required by logs]
  - install cmdliner            2.0.0         [required by cohttp-lwt-unix]
  - install conf-pkg-config     4             [required by zarith]
  - install conf-gmp-powm-sec   4             [required by mirage-crypto-pk]
  - install base-bytes          base          [required by ocplib-endian]
  - install yojson              3.0.0         [required by chess_com_api]
  - install stringext           1.6.0         [required by cohttp]
  - install stdlib-shims        0.3.0         [required by ppxlib]
  - install sexplib0            v0.16.0       [required by cohttp-lwt, cohttp, conduit-lwt]
  - install re                  1.14.0        [required by cohttp]
  - install ppx_derivers        1.2.1         [required by ppxlib]
  - install ohex                0.2.0         [required by ca-certs]
  - install ocaml-syntax-shims  1.0.0         [required by angstrom]
  - install ocaml-compiler-libs v0.12.4       [required by ppxlib]
  - install magic-mime          1.3.1         [required by cohttp-lwt-unix]
  - install macaddr             5.6.1         [required by ipaddr]
  - install http                6.1.1         [required by cohttp-lwt-unix]
  - install gmap                0.3.0         [required by x509]
  - install eqaf                0.10          [required by digestif, mirage-crypto]
  - install duration            0.2.1         [required by mirage-crypto-rng]
  - install domain-name         0.5.0         [required by ipaddr]
  - install csexp               1.5.2         [required by dune-configurator]
  - install cppo                1.8.0         [required by lwt]
  - install base64              3.5.2         [required by cohttp]
  - install topkg               1.1.1         [required by logs]
  - install zarith              1.14          [required by mirage-crypto-pk]
  - install ppxlib              0.35.0        [required by lwt_ppx]
  - install digestif            1.3.0         [required by ca-certs]
  - install ipaddr              5.6.1         [required by cohttp-lwt, conduit-lwt-unix]
  - install dune-configurator   3.20.2        [required by base, lwt, mirage-crypto]
  - install ocplib-endian       1.2           [required by lwt]
  - install rresult             0.7.0         [required by bos]
  - install ptime               1.2.0         [required by ca-certs]
  - install fmt                 0.11.0        [required by cohttp-lwt-unix]
  - install astring             0.8.5         [required by conduit]
  - install mirage-crypto       2.0.2         [required by ca-certs]
  - install bigstringaf         0.10.0        [required by angstrom]
  - install base                v0.16.4       [required by ppx_sexp_conv]
  - install lwt                 6.0.0~alpha00 [required by chess_com_api]
  - install asn1-combinators    0.3.2         [required by x509]
  - install fpath               0.7.3         [required by ca-certs]
  - install kdf                 1.0.0         [required by x509]
  - install angstrom            0.16.1        [required by uri]
  - install ppx_sexp_conv       v0.16.0       [required by cohttp-lwt-unix]
  - install lwt_ppx             5.9.1         [required by chess_com_api]
  - install logs                0.10.0        [required by cohttp-lwt-unix]
  - install uri                 4.4.0         [required by cohttp-lwt, cohttp, conduit-lwt-unix]
  - install ipaddr-sexp         5.6.1         [required by conduit-lwt-unix]
  - install mirage-crypto-rng   2.0.2         [required by x509]
  - install bos                 0.2.1         [required by ca-certs]
  - install uri-sexp            4.4.0         [required by cohttp]
  - install conduit             8.0.0         [required by conduit-lwt]
  - install mirage-crypto-pk    2.0.2         [required by x509]
  - install mirage-crypto-ec    2.0.2         [required by x509]
  - install cohttp              6.1.1         [required by cohttp-lwt-unix]
  - install conduit-lwt         8.0.0         [required by cohttp-lwt-unix]
  - install x509                1.0.6         [required by ca-certs]
  - install cohttp-lwt          6.1.1         [required by cohttp-lwt-unix]
  - install ca-certs            1.0.1         [required by conduit-lwt-unix]
  - install conduit-lwt-unix    8.0.0         [required by cohttp-lwt-unix]
  - install cohttp-lwt-unix     6.1.1         [required by chess_com_api]
  - install pgn_parser          1.0.2         [required by chess_com_api]
  - install chess_com_api       1.0.2*
===== 66 to install =====

The following system packages will first need to be installed:
    libgmp-dev pkg-config

<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
Let opam run your package manager to install the required system packages?
(answer 'n' for other options) [Y/n] y
+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "libgmp-dev" "pkg-config"
- Selecting previously unselected package libgmpxx4ldbl:amd64.
- (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 20622 files and directories currently installed.)
- Preparing to unpack .../0-libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb ...
- Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ...
- Selecting previously unselected package libgmp-dev:amd64.
- Preparing to unpack .../1-libgmp-dev_2%3a6.3.0+dfsg-3_amd64.deb ...
- Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-3) ...
- Selecting previously unselected package libpkgconf3:amd64.
- Preparing to unpack .../2-libpkgconf3_1.8.1-4_amd64.deb ...
- Unpacking libpkgconf3:amd64 (1.8.1-4) ...
- Selecting previously unselected package pkgconf-bin.
- Preparing to unpack .../3-pkgconf-bin_1.8.1-4_amd64.deb ...
- Unpacking pkgconf-bin (1.8.1-4) ...
- Selecting previously unselected package pkgconf:amd64.
- Preparing to unpack .../4-pkgconf_1.8.1-4_amd64.deb ...
- Unpacking pkgconf:amd64 (1.8.1-4) ...
- Selecting previously unselected package pkg-config:amd64.
- Preparing to unpack .../5-pkg-config_1.8.1-4_amd64.deb ...
- Unpacking pkg-config:amd64 (1.8.1-4) ...
- Setting up libpkgconf3:amd64 (1.8.1-4) ...
- Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ...
- Setting up pkgconf-bin (1.8.1-4) ...
- Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-3) ...
- Setting up pkgconf:amd64 (1.8.1-4) ...
- Setting up pkg-config:amd64 (1.8.1-4) ...
- Processing triggers for libc-bin (2.41-12) ...

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved angstrom.0.16.1  (cached)
-> retrieved asn1-combinators.0.3.2  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved base.v0.16.4  (cached)
-> retrieved base64.3.5.2  (cached)
-> retrieved bigstringaf.0.10.0  (cached)
-> retrieved bos.0.2.1  (cached)
-> retrieved ca-certs.1.0.1  (cached)
-> retrieved chess_com_api.1.0.2  (cached)
-> retrieved cmdliner.2.0.0  (cached)
-> retrieved cohttp.6.1.1  (cached)
-> retrieved cohttp-lwt.6.1.1  (cached)
-> retrieved cohttp-lwt-unix.6.1.1  (cached)
-> retrieved conduit.8.0.0  (cached)
-> retrieved conduit-lwt.8.0.0  (cached)
-> retrieved conduit-lwt-unix.8.0.0  (cached)
-> retrieved conf-gmp.5  (cached)
-> retrieved conf-gmp-powm-sec.4  (cached)
-> retrieved cppo.1.8.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> installed conf-gmp.5
-> installed conf-pkg-config.4
-> installed conf-gmp-powm-sec.4
-> retrieved digestif.1.3.0  (cached)
-> retrieved domain-name.0.5.0  (cached)
-> retrieved dune.3.20.2  (cached)
-> retrieved dune-configurator.3.20.2  (cached)
-> retrieved duration.0.2.1  (cached)
-> retrieved eqaf.0.10  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved gmap.0.3.0  (cached)
-> retrieved http.6.1.1  (cached)
-> installed cmdliner.2.0.0
-> retrieved ipaddr.5.6.1  (cached)
-> retrieved ipaddr-sexp.5.6.1  (cached)
-> retrieved kdf.1.0.0  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved lwt.6.0.0~alpha00  (cached)
-> retrieved lwt_ppx.5.9.1  (cached)
-> retrieved macaddr.5.6.1  (cached)
-> retrieved magic-mime.1.3.1  (cached)
-> retrieved mirage-crypto.2.0.2  (cached)
-> retrieved mirage-crypto-ec.2.0.2  (cached)
-> retrieved mirage-crypto-pk.2.0.2  (cached)
-> retrieved mirage-crypto-rng.2.0.2  (cached)
-> retrieved ocaml-compiler-libs.v0.12.4  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocplib-endian.1.2  (cached)
-> retrieved ohex.0.2.0  (cached)
-> retrieved pgn_parser.1.0.2  (cached)
-> retrieved ppx_derivers.1.2.1  (cached)
-> retrieved ppx_sexp_conv.v0.16.0  (cached)
-> retrieved ppxlib.0.35.0  (cached)
-> retrieved ptime.1.2.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved rresult.0.7.0  (cached)
-> retrieved sexplib0.v0.16.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved stringext.1.6.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved uri.4.4.0  (cached)
-> retrieved uri-sexp.4.4.0  (cached)
-> retrieved x509.1.0.6  (cached)
-> retrieved yojson.3.0.0  (cached)
-> retrieved zarith.1.14  (cached)
-> installed ocamlfind.1.9.8
-> installed base-bytes.base
-> installed ocamlbuild.0.16.1
-> installed zarith.1.14
-> installed topkg.1.1.1
-> installed rresult.0.7.0
-> installed fmt.0.11.0
-> installed ptime.1.2.0
-> installed astring.0.8.5
-> installed fpath.0.7.3
-> installed dune.3.20.2
-> installed base64.3.5.2
-> installed duration.0.2.1
-> installed gmap.0.3.0
-> installed csexp.1.5.2
-> installed asn1-combinators.0.3.2
-> installed domain-name.0.5.0
-> installed eqaf.0.10
-> installed cppo.1.8.0
-> installed http.6.1.1
-> installed macaddr.5.6.1
-> installed magic-mime.1.3.1
-> installed ocaml-syntax-shims.1.0.0
-> installed ohex.0.2.0
-> installed ppx_derivers.1.2.1
-> installed sexplib0.v0.16.0
-> installed ocaml-compiler-libs.v0.12.4
-> installed re.1.14.0
-> installed stdlib-shims.0.3.0
-> installed stringext.1.6.0
-> installed yojson.3.0.0
-> installed ocplib-endian.1.2
-> installed ipaddr.5.6.1
-> installed digestif.1.3.0
-> installed dune-configurator.3.20.2
-> installed bigstringaf.0.10.0
-> installed angstrom.0.16.1
-> installed mirage-crypto.2.0.2
-> installed kdf.1.0.0
-> installed uri.4.4.0
-> installed lwt.6.0.0~alpha00
-> installed logs.0.10.0
-> installed mirage-crypto-rng.2.0.2
-> installed base.v0.16.4
-> installed mirage-crypto-pk.2.0.2
-> installed bos.0.2.1
-> installed mirage-crypto-ec.2.0.2
-> installed x509.1.0.6
-> installed ppxlib.0.35.0
-> installed ca-certs.1.0.1
-> installed lwt_ppx.5.9.1
-> installed ppx_sexp_conv.v0.16.0
-> installed ipaddr-sexp.5.6.1
-> installed uri-sexp.4.4.0
-> installed conduit.8.0.0
-> installed cohttp.6.1.1
-> installed conduit-lwt.8.0.0
-> installed cohttp-lwt.6.1.1
-> installed conduit-lwt-unix.8.0.0
-> installed cohttp-lwt-unix.6.1.1
-> installed pgn_parser.1.0.2
-> installed chess_com_api.1.0.2
Done.
# Run eval $(opam env) to update the current shell environment
2025-11-10 13:26.08 ---> saved as "7f99fa719238883920282cecddb05161d2927b67cb317dbc2c1ed2cf24abbd48"

/home/opam: (run (network host)
                 (shell "(opam reinstall --with-test chess_com_api.1.0.2) || true"))
The following actions will be performed:
  - install   qcheck-core   0.27   [required by qcheck]
  - install   seq           base   [required by ounit2]
  - install   ounit2        2.2.7  [required by qcheck-ounit]
  - install   qcheck-ounit  0.27   [required by qcheck]
  - install   qcheck        0.27   [required by chess_com_api]
  - recompile chess_com_api 1.0.2*
===== 5 to install | 1 to recompile =====

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ounit2.2.2.7  (https://opam.ocaml.org/cache)
-> retrieved qcheck.0.27  (https://opam.ocaml.org/cache)
-> retrieved qcheck-core.0.27  (cached)
-> retrieved qcheck-ounit.0.27  (cached)
-> retrieved seq.base  (2 extra sources)
-> installed seq.base
-> installed ounit2.2.2.7
-> removed   chess_com_api.1.0.2
-> installed qcheck-core.0.27
-> installed qcheck-ounit.0.27
-> installed qcheck.0.27
-> installed chess_com_api.1.0.2
Done.
# Run eval $(opam env) to update the current shell environment
2025-11-10 13:26.21 ---> saved as "9df091d965ff10fe6172988f2cd3d5d7eb9051fff0bf3926b0c222b92ef5781a"

/home/opam: (run (shell  "opam reinstall --with-test --verbose chess_com_api.1.0.2;\
                        \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\" != 'chess_com_api.1.0.2' && 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 chess_com_api 1.0.2*

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing  2/4: [chess_com_api: dune build]
+ /home/opam/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "chess_com_api" "-j" "71" "@install" "@runtest" (CWD=/home/opam/.opam/4.14/.opam-switch/build/chess_com_api.1.0.2)
- (cd _build/default && /home/opam/.opam/4.14/bin/ocamlc.opt -w -40 -warn-error -A -g -bin-annot -I lib/.chess_com_api.objs/byte -I /home/opam/.opam/4.14/lib/angstrom -I /home/opam/.opam/4.14/lib/astring -I /home/opam/.opam/4.14/lib/base64 -I /home/opam/.opam/4.14/lib/bigstringaf -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/cohttp -I /home/opam/.opam/4.14/lib/cohttp-lwt -I /home/opam/.opam/4.14/lib/cohttp-lwt-unix -I /home/opam/.opam/4.14/lib/conduit -I /home/opam/.opam/4.14/lib/conduit-lwt -I /home/opam/.opam/4.14/lib/conduit-lwt-unix -I /home/opam/.opam/4.14/lib/domain-name -I /home/opam/.opam/4.14/lib/fmt -I /home/opam/.opam/4.14/lib/http -I /home/opam/.opam/4.14/lib/ipaddr -I /home/opam/.opam/4.14/lib/ipaddr-sexp -I /home/opam/.opam/4.14/lib/ipaddr/unix -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/fmt -I /home/opam/.opam/4.14/lib/logs/lwt -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/macaddr -I /home/opam/.opam/4.14/lib/magic-mime -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/re -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/stringext -I /home/opam/.opam/4.14/lib/uri -I /home/opam/.opam/4.14/lib/uri-sexp -I /home/opam/.opam/4.14/lib/uri/services -I /home/opam/.opam/4.14/lib/yojson -intf-suffix .ml -no-alias-deps -o lib/.chess_com_api.objs/byte/chess_com_api.cmo -c -impl lib/chess_com_api.ml)
- File "lib/chess_com_api.ml", line 207, characters 4-5:
- 207 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 119-207, characters 2-22:
- 119 | ..match Cohttp.Response.status response with
- 120 |   | `OK ->
- 121 |       try
- 122 |         let json = Yojson.Basic.from_string body_str in
- 123 |         match json with
- ...
- 204 |             Lwt.return games
- 205 |         | _ -> Lwt.return []
- 206 |       with _ -> Lwt.return []
- 207 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 304, characters 4-5:
- 304 |   | _ ->
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 221-305, characters 2-21:
- 221 | ..match Cohttp.Response.status http_response with
- 222 |   | `OK ->
- 223 |       try
- 224 |         let json = Yojson.Basic.from_string body_str in
- 225 |         match json with
- ...
- 302 |         | _ -> Lwt.return_none
- 303 |       with _ -> Lwt.return_none
- 304 |   | _ ->
- 305 |       Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 357, characters 4-5:
- 357 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 327-357, characters 2-24:
- 327 | ..match Cohttp.Response.status response with
- 328 |   | `OK ->
- 329 |       try
- 330 |         let json = Yojson.Basic.from_string body_str in
- 331 |         match json with
- ...
- 354 |             Lwt.return (Some player)
- 355 |         | _ -> Lwt.return_none
- 356 |       with _ -> Lwt.return_none
- 357 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 381, characters 4-5:
- 381 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 364-381, characters 2-22:
- 364 | ..match Cohttp.Response.status response with
- 365 |   | `OK ->
- 366 |       try
- 367 |         let json = Yojson.Basic.from_string _body_str in
- 368 |         match json with
- ...
- 378 |             Lwt.return archives
- 379 |         | _ -> Lwt.return []
- 380 |       with _ -> Lwt.return []
- 381 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 480, characters 4-5:
- 480 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 399-480, characters 2-24:
- 399 | ..match Cohttp.Response.status response with
- 400 |   | `OK ->
- 401 |       try
- 402 |         let json = Yojson.Basic.from_string body_str in
- 403 |         match json with
- ...
- 477 |             Lwt.return (Some game)
- 478 |         | _ -> Lwt.return_none
- 479 |       with _ -> Lwt.return_none
- 480 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 518, characters 4-5:
- 518 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 487-518, characters 2-22:
- 487 | ..match Cohttp.Response.status response with
- 488 |   | `OK ->
- 489 |       try
- 490 |         let json = Yojson.Basic.from_string body_str in
- 491 |         match json with
- ...
- 515 |             Lwt.return ongoing_games
- 516 |         | _ -> Lwt.return []
- 517 |       with _ -> Lwt.return []
- 518 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 625, characters 4-5:
- 625 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 525-625, characters 2-22:
- 525 | ..match Cohttp.Response.status response with
- 526 |   | `OK ->
- 527 |       try
- 528 |         let json = Yojson.Basic.from_string body_str in
- 529 |         match json with
- ...
- 622 |             Lwt.return games
- 623 |         | _ -> Lwt.return []
- 624 |       with _ -> Lwt.return []
- 625 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 698, characters 4-5:
- 698 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 632-698, characters 2-24:
- 632 | ..match Cohttp.Response.status response with
- 633 |   | `OK ->
- 634 |       try
- 635 |         let json = Yojson.Basic.from_string _body_str in
- 636 |         match json with
- ...
- 695 |             Lwt.return (Some stats)
- 696 |         | _ -> Lwt.return_none
- 697 |       with _ -> Lwt.return_none
- 698 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 794, characters 4-5:
- 794 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 706-794, characters 2-22:
- 706 | ..match Cohttp.Response.status response with
- 707 |   | `OK ->
- 708 |       try
- 709 |         let json = Yojson.Basic.from_string _body_str in
- 710 |         match json with
- ...
- 791 |             Lwt.return games
- 792 |         | _ -> Lwt.return []
- 793 |       with _ -> Lwt.return []
- 794 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 820, characters 4-5:
- 820 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 803-820, characters 2-24:
- 803 | ..match Cohttp.Response.status response with
- 804 |   | `OK ->
- 805 |       try
- 806 |         let json = Yojson.Basic.from_string _body_str in
- 807 |         match json with
- ...
- 817 |             Lwt.return (Some puzzle)
- 818 |         | _ -> Lwt.return_none
- 819 |       with _ -> Lwt.return_none
- 820 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 850, characters 4-5:
- 850 |   | _ ->
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 829-851, characters 2-19:
- 829 | ..match Cohttp.Response.status response with
- 830 |   | `OK ->
- 831 |       try
- 832 |         let json = Yojson.Basic.from_string body_str in
- 833 |         match json with
- ...
- 848 |         | _ -> Lwt.return []
- 849 |       with _ -> Lwt.return []
- 850 |   | _ ->
- 851 |       Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 638, characters 16-27:
- 638 |             let chess_daily = match List.assoc_opt "chess_daily" fields with
-                       ^^^^^^^^^^^
- Warning 26 [unused-var]: unused variable chess_daily.
- File "lib/chess_com_api.ml", line 650, characters 22-23:
- 650 |                     | _ -> { rating = 0; date = 0 } in
-                             ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", line 661, characters 22-23:
- 661 |                     | _ -> { rating = 0; date = 0 } in
-                             ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", line 675, characters 22-23:
- 675 |                     | _ -> { win = 0; loss = 0; draw = 0 } in
-                             ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", line 678, characters 16-17:
- 678 |               | _ -> { last = { rating = 0; date = 0 }; best = { rating = 0; date = 0 }; record = { win = 0; loss = 0; draw = 0 } } in
-                       ^
- Warning 11 [redundant-case]: this match case is unused.
- (cd _build/default && /home/opam/.opam/4.14/bin/ocamlopt.opt -w -40 -warn-error -A -g -I lib/.chess_com_api.objs/byte -I lib/.chess_com_api.objs/native -I /home/opam/.opam/4.14/lib/angstrom -I /home/opam/.opam/4.14/lib/astring -I /home/opam/.opam/4.14/lib/base64 -I /home/opam/.opam/4.14/lib/bigstringaf -I /home/opam/.opam/4.14/lib/bytes -I /home/opam/.opam/4.14/lib/cohttp -I /home/opam/.opam/4.14/lib/cohttp-lwt -I /home/opam/.opam/4.14/lib/cohttp-lwt-unix -I /home/opam/.opam/4.14/lib/conduit -I /home/opam/.opam/4.14/lib/conduit-lwt -I /home/opam/.opam/4.14/lib/conduit-lwt-unix -I /home/opam/.opam/4.14/lib/domain-name -I /home/opam/.opam/4.14/lib/fmt -I /home/opam/.opam/4.14/lib/http -I /home/opam/.opam/4.14/lib/http/__private__/http_bytebuffer -I /home/opam/.opam/4.14/lib/ipaddr -I /home/opam/.opam/4.14/lib/ipaddr-sexp -I /home/opam/.opam/4.14/lib/ipaddr/unix -I /home/opam/.opam/4.14/lib/logs -I /home/opam/.opam/4.14/lib/logs/fmt -I /home/opam/.opam/4.14/lib/logs/lwt -I /home/opam/.opam/4.14/lib/lwt -I /home/opam/.opam/4.14/lib/lwt/unix -I /home/opam/.opam/4.14/lib/macaddr -I /home/opam/.opam/4.14/lib/magic-mime -I /home/opam/.opam/4.14/lib/ocaml/threads -I /home/opam/.opam/4.14/lib/ocplib-endian -I /home/opam/.opam/4.14/lib/ocplib-endian/bigstring -I /home/opam/.opam/4.14/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/4.14/lib/re -I /home/opam/.opam/4.14/lib/sexplib0 -I /home/opam/.opam/4.14/lib/stringext -I /home/opam/.opam/4.14/lib/uri -I /home/opam/.opam/4.14/lib/uri-sexp -I /home/opam/.opam/4.14/lib/uri/services -I /home/opam/.opam/4.14/lib/yojson -intf-suffix .ml -no-alias-deps -o lib/.chess_com_api.objs/native/chess_com_api.cmx -c -impl lib/chess_com_api.ml)
- File "lib/chess_com_api.ml", line 207, characters 4-5:
- 207 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 119-207, characters 2-22:
- 119 | ..match Cohttp.Response.status response with
- 120 |   | `OK ->
- 121 |       try
- 122 |         let json = Yojson.Basic.from_string body_str in
- 123 |         match json with
- ...
- 204 |             Lwt.return games
- 205 |         | _ -> Lwt.return []
- 206 |       with _ -> Lwt.return []
- 207 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 304, characters 4-5:
- 304 |   | _ ->
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 221-305, characters 2-21:
- 221 | ..match Cohttp.Response.status http_response with
- 222 |   | `OK ->
- 223 |       try
- 224 |         let json = Yojson.Basic.from_string body_str in
- 225 |         match json with
- ...
- 302 |         | _ -> Lwt.return_none
- 303 |       with _ -> Lwt.return_none
- 304 |   | _ ->
- 305 |       Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 357, characters 4-5:
- 357 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 327-357, characters 2-24:
- 327 | ..match Cohttp.Response.status response with
- 328 |   | `OK ->
- 329 |       try
- 330 |         let json = Yojson.Basic.from_string body_str in
- 331 |         match json with
- ...
- 354 |             Lwt.return (Some player)
- 355 |         | _ -> Lwt.return_none
- 356 |       with _ -> Lwt.return_none
- 357 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 381, characters 4-5:
- 381 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 364-381, characters 2-22:
- 364 | ..match Cohttp.Response.status response with
- 365 |   | `OK ->
- 366 |       try
- 367 |         let json = Yojson.Basic.from_string _body_str in
- 368 |         match json with
- ...
- 378 |             Lwt.return archives
- 379 |         | _ -> Lwt.return []
- 380 |       with _ -> Lwt.return []
- 381 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 480, characters 4-5:
- 480 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 399-480, characters 2-24:
- 399 | ..match Cohttp.Response.status response with
- 400 |   | `OK ->
- 401 |       try
- 402 |         let json = Yojson.Basic.from_string body_str in
- 403 |         match json with
- ...
- 477 |             Lwt.return (Some game)
- 478 |         | _ -> Lwt.return_none
- 479 |       with _ -> Lwt.return_none
- 480 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 518, characters 4-5:
- 518 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 487-518, characters 2-22:
- 487 | ..match Cohttp.Response.status response with
- 488 |   | `OK ->
- 489 |       try
- 490 |         let json = Yojson.Basic.from_string body_str in
- 491 |         match json with
- ...
- 515 |             Lwt.return ongoing_games
- 516 |         | _ -> Lwt.return []
- 517 |       with _ -> Lwt.return []
- 518 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 625, characters 4-5:
- 625 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 525-625, characters 2-22:
- 525 | ..match Cohttp.Response.status response with
- 526 |   | `OK ->
- 527 |       try
- 528 |         let json = Yojson.Basic.from_string body_str in
- 529 |         match json with
- ...
- 622 |             Lwt.return games
- 623 |         | _ -> Lwt.return []
- 624 |       with _ -> Lwt.return []
- 625 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 698, characters 4-5:
- 698 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 632-698, characters 2-24:
- 632 | ..match Cohttp.Response.status response with
- 633 |   | `OK ->
- 634 |       try
- 635 |         let json = Yojson.Basic.from_string _body_str in
- 636 |         match json with
- ...
- 695 |             Lwt.return (Some stats)
- 696 |         | _ -> Lwt.return_none
- 697 |       with _ -> Lwt.return_none
- 698 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 794, characters 4-5:
- 794 |   | _ -> Lwt.return []
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 706-794, characters 2-22:
- 706 | ..match Cohttp.Response.status response with
- 707 |   | `OK ->
- 708 |       try
- 709 |         let json = Yojson.Basic.from_string _body_str in
- 710 |         match json with
- ...
- 791 |             Lwt.return games
- 792 |         | _ -> Lwt.return []
- 793 |       with _ -> Lwt.return []
- 794 |   | _ -> Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 820, characters 4-5:
- 820 |   | _ -> Lwt.return_none
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 803-820, characters 2-24:
- 803 | ..match Cohttp.Response.status response with
- 804 |   | `OK ->
- 805 |       try
- 806 |         let json = Yojson.Basic.from_string _body_str in
- 807 |         match json with
- ...
- 817 |             Lwt.return (Some puzzle)
- 818 |         | _ -> Lwt.return_none
- 819 |       with _ -> Lwt.return_none
- 820 |   | _ -> Lwt.return_none
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 850, characters 4-5:
- 850 |   | _ ->
-           ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", lines 829-851, characters 2-19:
- 829 | ..match Cohttp.Response.status response with
- 830 |   | `OK ->
- 831 |       try
- 832 |         let json = Yojson.Basic.from_string body_str in
- 833 |         match json with
- ...
- 848 |         | _ -> Lwt.return []
- 849 |       with _ -> Lwt.return []
- 850 |   | _ ->
- 851 |       Lwt.return []
- Warning 8 [partial-match]: this pattern-matching is not exhaustive.
- Here is an example of a case that is not matched:
- (`Length_required|`Loop_detected|`Unprocessable_entity|`Method_not_allowed|
- `Upgrade_required|`Unauthorized|`Gone|`Switch_proxy|`See_other|
- `Not_acceptable|`Payment_required|`Temporary_redirect|`Not_modified|
- `Permanent_redirect|`Retry_with|`Precondition_failed|`Code _|`Reset_content|
- `Non_authoritative_information|`Already_reported|`Multi_status|
- `Wrong_exchange_server|`Too_many_requests|`No_response|`Request_uri_too_long|
- `Forbidden|`Network_authentication_required|`Created|
- `Bandwidth_limit_exceeded|`Checkpoint|`Accepted|`No_content|
- `Multiple_choices|`Service_unavailable|`Proxy_authentication_required|
- `Client_closed_request|`Locked|`Not_extended|`Precondition_required|
- `Gateway_timeout|`Requested_range_not_satisfiable|`Expectation_failed|
- `Unsupported_media_type|`Request_header_fields_too_large|`Continue|
- `Processing|`Partial_content|`Http_version_not_supported|`Request_timeout|
- `Network_connect_timeout_error|`Request_entity_too_large|`Not_found|
- `Switching_protocols|`Internal_server_error|`Bad_gateway|`Found|
- `Variant_also_negotiates|`Blocked_by_windows_parental_controls|
- `Enhance_your_calm|`Use_proxy|`Network_read_timeout_error|`Moved_permanently|
- `Conflict|`Bad_request|`Not_implemented|`I_m_a_teapot|`Im_used|
- `Insufficient_storage|`Failed_dependency)
- File "lib/chess_com_api.ml", line 638, characters 16-27:
- 638 |             let chess_daily = match List.assoc_opt "chess_daily" fields with
-                       ^^^^^^^^^^^
- Warning 26 [unused-var]: unused variable chess_daily.
- File "lib/chess_com_api.ml", line 650, characters 22-23:
- 650 |                     | _ -> { rating = 0; date = 0 } in
-                             ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", line 661, characters 22-23:
- 661 |                     | _ -> { rating = 0; date = 0 } in
-                             ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", line 675, characters 22-23:
- 675 |                     | _ -> { win = 0; loss = 0; draw = 0 } in
-                             ^
- Warning 11 [redundant-case]: this match case is unused.
- File "lib/chess_com_api.ml", line 678, characters 16-17:
- 678 |               | _ -> { last = { rating = 0; date = 0 }; best = { rating = 0; date = 0 }; record = { win = 0; loss = 0; draw = 0 } } in
-                       ^
- Warning 11 [redundant-case]: this match case is unused.
- (cd _build/default/test && ./test_zobrist.exe)
- === Comprehensive Zobrist Hash Tests ===
- 
- Hash1: 5772101514740079962, Hash2: 5772101514740079962, Hash3: 5772101514740079962
- ✓ Hash determinism test passed
- ✓ Hash uniqueness test passed
- ✓ Move integrity test passed
- ✓ Castling test passed
- ✓ Promotion test passed
- ✓ Transposition test passed
- ✓ Board visualization test passed
- ✓ Parsing board consistency test passed
- Generated 6 positions, 6 unique hashes
- Position 0: 5772101514740079962
- Position 1: 0
- Position 2: 9042506488591766566
- Position 3: 8856359066952549562
- Position 4: 6337390051904276023
- Position 5: 4617376919235899402
- ✓ Hash collision resistance test passed
- 
- === Testing Zobrist Hash with Fixed Piece Positions ===
- Starting position hash: 5772101514740079962
- ✅ Knight to e3: Ne3 -> from c4 to e3 (VALID)
-    Hash: 2645981637543937422
- ✅ Bishop to g7: Bg7 -> from f6 to g7 (VALID)
-    Hash: 8706856501344119087
- ✅ Knight to f3: Nf3 -> from d4 to f3 (VALID)
-    Hash: 6446234675365363343
- ✅ Bishop to e4: Be4 -> from d5 to e4 (VALID)
-    Hash: 6281065456808016343
- ✅ Knight captures on e4: Nxe4 -> from c3 to e4 (VALID)
-    Hash: 5367105883569971746
- ✅ Bishop captures on f7: Bxf7 -> from e6 to f7 (VALID)
-    Hash: 2486284408414507195
- ✓ Fixed piece positions Zobrist test passed
- ✅ All position hashes are unique
- 
- === Testing Hash Consistency for Move Sequences ===
- ✅ Knight to e3: Hash changed from 5772101514740079962 to 2645981637543937422
- ✅ Bishop to g7: Hash changed from 2645981637543937422 to 897907521924788731
- ✅ Knight to f3: Hash changed from 897907521924788731 to 367392826274402862
- ✅ Bishop to e4: Hash changed from 367392826274402862 to 155780645577815715
- ✅ Knight captures on e4: Hash changed from 155780645577815715 to 2267677000776265046
- ✅ Bishop captures on f7: Hash changed from 2267677000776265046 to 7918447405998514359
- ✓ Hash consistency for move sequences test passed
- 
- === All Zobrist tests passed! ===
- (cd _build/default/test && ./test_pgn_parser.exe)
- === Running Property-Based Tests ===
- 
- 
random seed: 432607410
- generated error fail pass / total     time test name
- 
[ ]    0    0    0    0 /  100     0.0s piece_generation
[✓]  100    0    0  100 /  100     0.0s piece_generation
- 
[ ]    0    0    0    0 /  100     0.0s square_generation
[✓]  100    0    0  100 /  100     0.0s square_generation
- 
[ ]    0    0    0    0 /  100     0.0s result_generation
[✓]  100    0    0  100 /  100     0.0s result_generation
- 
[ ]    0    0    0    0 /  100     0.0s simple_move_generation
[✓]  100    0    0  100 /  100     0.0s simple_move_generation
- 
[ ]    0    0    0    0 /   50     0.0s generated_pgn_structure
[✓]   50    0    0   50 /   50     0.0s generated_pgn_structure
- 
[ ]    0    0    0    0 /   30     0.0s generated_pgn_parsing
[✓]   30    0    0   30 /   30     0.0s generated_pgn_parsing
- 
[ ]    0    0    0    0 /   20     0.0s roundtrip_property
[✓]   20    0    0   20 /   20     0.0s roundtrip_property
- 
[ ]    0    0    0    0 /   50     0.0s parser_robustness
[✓]   50    0    0   50 /   50     0.0s parser_robustness
- 
[ ]    0    0    0    0 /  100     0.0s move_properties
[✓]  100    0    0  100 /  100     0.0s move_properties
- ================================================================================
- success (ran 9 tests)
- 
- 🎉 Property-based tests completed!
- (cd _build/default/test && ./test_chess_com_api_pbt.exe)
- 
- === Running Chess.com API Property-Based Tests ===
- 
random seed: 290796288
- generated error fail pass / total     time test name
- 
[ ]    0    0    0    0 /  100     0.0s Username is not empty
[✓]  100    0    0  100 /  100     0.0s Username is not empty
- 
[ ]    0    0    0    0 /  100     0.0s Rating is in valid range
[✓]  100    0    0  100 /  100     0.0s Rating is in valid range
- 
[ ]    0    0    0    0 /  100     0.0s Game ID has unique format
[✓]  100    0    0  100 /  100     0.0s Game ID has unique format
- 
[ ]    0    0    0    0 /  100     0.0s Time class is valid
[✓]  100    0    0  100 /  100     0.0s Time class is valid
- 
[ ]    0    0    0    0 /  100     0.0s Game has both players
[✓]  100    0    0  100 /  100     0.0s Game has both players
- 
[ ]    0    0    0    0 /  100     0.0s Game PGN contains player names
[✓]  100    0    0  100 /  100     0.0s Game PGN contains player names
- 
[ ]    0    0    0    0 /  100     0.0s Game PGN contains result
[✓]  100    0    0  100 /  100     0.0s Game PGN contains result
- 
[ ]    0    0    0    0 /  100     0.0s Chess.com game to PGN roundtrip
[✓]  100    0    0  100 /  100     0.0s Chess.com game to PGN roundtrip
- 
[ ]    0    0    0    0 /  100     0.0s Chess.com game to PGN conversion is valid
[✓]  100    0    0  100 /  100     0.0s Chess.com game to PGN conversion is valid
- 
[ ]    0    0    0    0 /  100     0.0s Player has valid fields
[✓]  100    0    0  100 /  100     0.0s Player has valid fields
- 
[ ]    0    0    0    0 /  100     0.0s Puzzle has valid solution
[✓]  100    0    0  100 /  100     0.0s Puzzle has valid solution
- ================================================================================
- success (ran 11 tests)
-> compiled  chess_com_api.1.0.2
-> removed   chess_com_api.1.0.2
-> installed chess_com_api.1.0.2
Done.
# Run eval $(opam env) to update the current shell environment
2025-11-10 13:26.31 ---> saved as "a0b8e1fc15a4206e9aa82eb4074b80ab31bba459c3dd2024e1435611e479b30e"
Job succeeded
2025-11-10 13:26.43: Job succeeded