Building on odawa.caelum.ci.dev
(from ocaml/opam:debian-unstable)
Unable to find image 'ocaml/opam:debian-unstable' locally
debian-unstable: Pulling from ocaml/opam
Digest: sha256:1e0b6f576b8d607b19de55c9b0f077afe05eb64669ad8fa98a8169a64a417a6f
Status: Downloaded newer image for ocaml/opam:debian-unstable
2025-12-29 15:46.37 ---> using "0acd5aeaa8f7bc314514d9795d14a7f12ec72a6a5b11c5904350189734c6859b" from cache
/: (user (uid 1000) (gid 1000))
/: (env OPAMPRECISETRACKING 1)
/: (env OPAMUTF8 never)
/: (env OPAMEXTERNALSOLVER builtin-0install)
/: (env OPAMCRITERIA +removed)
/: (env CI true)
/: (env OPAM_HEALTH_CHECK_CI true)
/: (run (shell "sudo ln -f /usr/bin/opam-dev /usr/bin/opam"))
2025-12-29 15:46.37 ---> using "40df4fa4cdfc68a5fa7a326047e82a7adc5df52b8059d4a7b745bdd50aad56e7" from cache
/: (run (network host)
(shell "rm -rf ~/opam-repository && git clone -q 'https://github.com/ocaml/opam-repository' ~/opam-repository && git -C ~/opam-repository checkout -q c239a62d58deaede2e5dce17c2715a55397b73f2"))
2025-12-29 15:46.37 ---> using "56be004b76cb51085f35c8dfc91ba3175ea97907d421b4b0b02e7c1a630a1108" from cache
/: (run (shell "rm -rf ~/.opam && opam init -ya --bare --config ~/.opamrc-sandbox ~/opam-repository"))
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.
<><> Fetching repository information ><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
User configuration:
~/.profile is already up-to-date.
2025-12-29 15:46.37 ---> using "ed7ae9bae0c3d5c49db6159e96a47bbcbdddbc9479c9fe4d51c2f1b00ae1b7e2" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
(network host)
(shell "opam switch create --repositories=default '5.3-dune' '5.3.0'"))
<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><>
Switch invariant: ["ocaml-base-compiler" {= "5.3.0"}]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-config.3 (cached)
-> installed base-bigarray.base
-> installed base-threads.base
-> installed base-unix.base
-> installed ocaml-options-vanilla.1
-> retrieved ocaml-compiler.5.3.0 (cached)
-> installed ocaml-compiler.5.3.0
-> installed ocaml-base-compiler.5.3.0
-> installed ocaml-config.3
-> installed ocaml.5.3.0
-> installed base-domains.base
-> installed base-effects.base
-> installed base-nnp.base
Done.
# To update the current shell environment, run: eval $(opam env --switch=5.3-dune)
2025-12-29 15:46.37 ---> using "0ba1ecff5cbacf2ff346c199d5bbb730ff1dcfadffcf4be94bc48e3deffb25ce" from cache
/: (run (network host)
(shell "opam update --depexts"))
+ /usr/bin/sudo "apt-get" "update"
- Get:1 http://deb.debian.org/debian unstable InRelease [187 kB]
- Get:2 http://deb.debian.org/debian unstable/main amd64 Packages.diff/Index [63.6 kB]
- Get:3 http://deb.debian.org/debian unstable/main amd64 Packages T-2025-12-29-0804.39-F-2025-12-26-2020.11.pdiff [262 kB]
- Get:3 http://deb.debian.org/debian unstable/main amd64 Packages T-2025-12-29-0804.39-F-2025-12-26-2020.11.pdiff [262 kB]
- Fetched 513 kB in 2s (340 kB/s)
- Reading package lists...
-
2025-12-29 15:46.37 ---> using "97503196a5b2c8ead5d015466bb8c6e9d7ca051a246b7973b527720b7364d9be" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
(network host)
(shell "opam pin add -k version dune $(opam show -f version dune)"))
dune is now pinned to version 3.20.2
The following actions will be performed:
=== install 1 package
- install dune 3.20.2 (pinned)
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved dune.3.20.2 (cached)
-> installed dune.3.20.2
Done.
# To update the current shell environment, run: eval $(opam env)
2025-12-29 15:46.37 ---> using "dfd390be8db08de5b82f6ea38b022735693c9445c8de9f86c9fd82f00e2c81f9" from cache
/: (env DUNE_CACHE enabled)
/: (env DUNE_CACHE_TRANSPORT direct)
/: (env DUNE_CACHE_DUPLICATION copy)
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
(network host)
(shell "curl -fsSL https://get.dune.build/install | sh"))
############################ 39.1%
######################################################################## 100.0%
dune x86_64-unknown-linux-musl was installed successfully to ~/.local/bin/dune
#=#=#
0.0%
# 2.6%
### 5.2%
#### 6.1%
###### 8.5%
####### 11.1%
######## 12.1%
########## 14.5%
############ 17.1%
############# 18.2%
############# 18.3%
############# 18.6%
############## 19.5%
############### 21.3%
################# 23.7%
################# 24.7%
################### 26.7%
##################### 29.4%
##################### 30.3%
####################### 32.8%
######################### 35.1%
########################## 36.4%
############################ 39.1%
############################# 41.4%
############################## 42.5%
################################ 44.9%
################################# 47.0%
################################## 48.5%
#################################### 51.1%
###################################### 53.5%
####################################### 54.6%
######################################### 57.0%
########################################## 59.5%
########################################### 60.7%
############################################ 61.9%
############################################# 63.8%
############################################### 66.4%
################################################ 67.3%
################################################# 69.1%
################################################### 71.5%
#################################################### 72.8%
###################################################### 75.1%
####################################################### 77.6%
######################################################## 78.9%
########################################################## 81.1%
############################################################ 83.6%
############################################################# 85.0%
############################################################# 85.2%
############################################################# 85.8%
############################################################## 87.0%
############################################################### 87.9%
############################################################### 88.3%
################################################################ 89.4%
################################################################# 91.0%
################################################################## 92.4%
################################################################### 93.8%
#################################################################### 95.0%
##################################################################### 96.4%
###################################################################### 97.3%
####################################################################### 99.5%
######################################################################## 100.0%
Revision cache was populated successfully
To use dune you will need to source the file "$HOME/.local/share/dune/env/env.bash" (or similar as appropriate for your shell)
export PATH="/home/opam/.local/bin:$PATH"
To get started, run:
dune --help
2025-12-29 15:46.37 ---> using "bf6995863db7a7d87d60b6e8e5300471ffd01701d87b656d0683e35e71df2072" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
(network host)
(shell "mkdir /tmp/sexp && cd /tmp/sexp && opam switch create ./ ocaml-base-compiler.5.2.1 --no-install && opam install -y sexp && cd -"))
<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><>
Switch invariant: ["ocaml-base-compiler" {= "5.2.1"}]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved ocaml-config.3 (cached)
-> installed base-bigarray.base
-> installed base-threads.base
-> installed base-unix.base
-> installed ocaml-options-vanilla.1
-> retrieved ocaml-base-compiler.5.2.1 (cached)
-> installed ocaml-base-compiler.5.2.1
-> installed ocaml-config.3
-> installed ocaml.5.2.1
-> installed base-domains.base
-> installed base-nnp.base
Done.
# To update the current shell environment, run: eval $(opam env)
The following actions will be performed:
=== install 100 packages
- install angstrom 0.16.1 [required by jsonaf]
- install async v0.17.0 [required by sexp]
- install async_kernel v0.17.0 [required by async]
- install async_log v0.17.0 [required by async]
- install async_rpc_kernel v0.17.0 [required by async]
- install async_unix v0.17.0 [required by async]
- install base v0.17.3 [required by jsonaf, sexp_select]
- install base_bigstring v0.17.0 [required by core]
- install base_quickcheck v0.17.0 [required by core]
- install bigstringaf 0.10.0 [required by angstrom, faraday]
- install bin_prot v0.17.0-1 [required by core]
- install capitalization v0.17.0 [required by ppx_string_conv]
- install conf-g++ 1.0 [required by re2]
- install core v0.17.1 [required by sexp]
- install core_kernel v0.17.0 [required by sexp]
- install core_unix v0.17.1 [required by sexp]
- install csexp 1.5.2 [required by dune-configurator]
- install cstruct 6.2.0 [required by async_unix]
- install csvfields v0.17.0 [required by sexp]
- install dune 3.20.2 [required by sexp]
- install dune-configurator 3.20.2 [required by bigstringaf]
- install expect_test_helpers_core v0.17.0 [required by core_unix]
- install faraday 0.8.2 [required by jsonaf]
- install fieldslib v0.17.0 [required by core]
- install fmt 0.11.0 [required by cstruct]
- install gel v0.17.0 [required by async_rpc_kernel]
- install int_repr v0.17.0 [required by core_kernel]
- install jane-street-headers v0.17.0 [required by core]
- install jane_rope v0.17.0 [required by re2]
- install jsonaf v0.17.0 [required by sexp]
- install jst-config v0.17.0 [required by shell]
- install num 1.6 [required by csvfields]
- install ocaml-compiler-libs v0.17.0 [required by ppxlib]
- install ocaml-syntax-shims 1.0.0 [required by angstrom]
- install ocaml_intrinsics_kernel v0.17.1 [required by base]
- install ocamlbuild 0.16.1 [required by uutf]
- install ocamlfind 1.9.8 [required by uutf]
- install parsexp v0.17.0 [required by sexplib]
- install ppx_assert v0.17.0 [required by core]
- install ppx_base v0.17.0 [required by core]
- install ppx_bench v0.17.0 [required by ppx_jane]
- install ppx_bin_prot v0.17.0 [required by ppx_jane]
- install ppx_cold v0.17.0 [required by ppx_base]
- install ppx_compare v0.17.0 [required by ppx_diff]
- install ppx_custom_printf v0.17.0 [required by ppx_jane]
- install ppx_derivers 1.2.1 [required by ppxlib]
- install ppx_diff v0.17.0 [required by core]
- install ppx_disable_unused_warnings v0.17.0 [required by ppx_jane]
- install ppx_enumerate v0.17.0 [required by ppx_diff]
- install ppx_expect v0.17.2 [required by ppx_jane]
- install ppx_fields_conv v0.17.0 [required by ppx_jane]
- install ppx_fixed_literal v0.17.0 [required by ppx_jane]
- install ppx_globalize v0.17.0 [required by ppx_base]
- install ppx_hash v0.17.0 [required by core]
- install ppx_here v0.17.0 [required by ppx_jane]
- install ppx_ignore_instrumentation v0.17.0 [required by ppx_jane]
- install ppx_inline_test v0.17.0 [required by core]
- install ppx_jane v0.17.0 [required by sexp]
- install ppx_let v0.17.0 [required by ppx_jane]
- install ppx_log v0.17.0 [required by ppx_jane]
- install ppx_module_timer v0.17.0 [required by ppx_jane]
- install ppx_optcomp v0.17.0 [required by core_kernel, core, async_unix]
- install ppx_optional v0.17.0 [required by ppx_jane]
- install ppx_pipebang v0.17.0 [required by ppx_jane]
- install ppx_sexp_conv v0.17.0 [required by core]
- install ppx_sexp_message v0.17.0 [required by core]
- install ppx_sexp_value v0.17.0 [required by ppx_jane]
- install ppx_stable v0.17.0 [required by ppx_jane]
- install ppx_stable_witness v0.17.0 [required by ppx_jane]
- install ppx_string v0.17.0 [required by ppx_jane]
- install ppx_string_conv v0.17.0 [required by ppx_jane]
- install ppx_tydi v0.17.0 [required by ppx_jane]
- install ppx_typerep_conv v0.17.0 [required by ppx_jane]
- install ppx_variants_conv v0.17.0 [required by ppx_jane]
- install ppxlib 0.35.0 [required by ppx_diff]
- install ppxlib_jane v0.17.0 [required by ppx_diff]
- install protocol_version_header v0.17.0 [required by async_rpc_kernel]
- install re 1.14.0 [required by expect_test_helpers_core]
- install re2 v0.17.0 [required by sexp]
- install regex_parser_intf v0.17.0 [required by re2]
- install sexp v0.17.0
- install sexp_diff v0.17.0 [required by sexp]
- install sexp_macro v0.17.0 [required by sexp]
- install sexp_pretty v0.17.0 [required by sexp]
- install sexp_select v0.17.0 [required by sexp]
- install sexplib v0.17.0 [required by sexp]
- install sexplib0 v0.17.0 [required by base]
- install shell v0.17.0 [required by sexp]
- install spawn v0.17.0 [required by shell]
- install splittable_random v0.17.0 [required by core]
- install stdio v0.17.0 [required by core]
- install stdlib-shims 0.3.0 [required by ppxlib]
- install textutils v0.17.0 [required by async, shell]
- install time_now v0.17.0 [required by core]
- install timezone v0.17.0 [required by async_log]
- install topkg 1.1.1 [required by uutf]
- install typerep v0.17.1 [required by core]
- install uopt v0.17.0 [required by core_kernel]
- install uutf 1.0.4 [required by textutils]
- install variantslib v0.17.0 [required by core]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved angstrom.0.16.1 (cached)
-> retrieved async.v0.17.0 (cached)
-> retrieved async_kernel.v0.17.0 (cached)
-> retrieved async_log.v0.17.0 (cached)
-> retrieved async_rpc_kernel.v0.17.0 (cached)
-> retrieved async_unix.v0.17.0 (cached)
-> retrieved base.v0.17.3 (cached)
-> retrieved base_bigstring.v0.17.0 (cached)
-> retrieved base_quickcheck.v0.17.0 (cached)
-> retrieved bigstringaf.0.10.0 (cached)
-> retrieved bin_prot.v0.17.0-1 (cached)
-> retrieved capitalization.v0.17.0 (cached)
-> retrieved core.v0.17.1 (cached)
-> installed conf-g++.1.0
-> retrieved core_kernel.v0.17.0 (cached)
-> retrieved core_unix.v0.17.1 (cached)
-> retrieved csexp.1.5.2 (cached)
-> retrieved cstruct.6.2.0 (cached)
-> retrieved csvfields.v0.17.0 (cached)
-> retrieved expect_test_helpers_core.v0.17.0 (cached)
-> retrieved faraday.0.8.2 (cached)
-> retrieved fieldslib.v0.17.0 (cached)
-> retrieved gel.v0.17.0 (cached)
-> retrieved fmt.0.11.0 (cached)
-> retrieved int_repr.v0.17.0 (cached)
-> retrieved jane-street-headers.v0.17.0 (cached)
-> retrieved jane_rope.v0.17.0 (cached)
-> retrieved jsonaf.v0.17.0 (cached)
-> retrieved jst-config.v0.17.0 (cached)
-> retrieved num.1.6 (cached)
-> retrieved ocaml-compiler-libs.v0.17.0 (cached)
-> retrieved ocaml-syntax-shims.1.0.0 (cached)
-> retrieved ocaml_intrinsics_kernel.v0.17.1 (cached)
-> retrieved ocamlbuild.0.16.1 (cached)
-> retrieved ocamlfind.1.9.8 (cached)
-> retrieved parsexp.v0.17.0 (cached)
-> retrieved ppx_assert.v0.17.0 (cached)
-> retrieved ppx_base.v0.17.0 (cached)
-> retrieved ppx_bench.v0.17.0 (cached)
-> retrieved ppx_bin_prot.v0.17.0 (cached)
-> retrieved ppx_cold.v0.17.0 (cached)
-> retrieved ppx_compare.v0.17.0 (cached)
-> retrieved ppx_custom_printf.v0.17.0 (cached)
-> retrieved ppx_derivers.1.2.1 (cached)
-> retrieved ppx_disable_unused_warnings.v0.17.0 (cached)
-> retrieved ppx_diff.v0.17.0 (cached)
-> retrieved ppx_enumerate.v0.17.0 (cached)
-> retrieved ppx_fields_conv.v0.17.0 (cached)
-> retrieved ppx_expect.v0.17.2 (cached)
-> retrieved ppx_fixed_literal.v0.17.0 (cached)
-> retrieved ppx_globalize.v0.17.0 (cached)
-> retrieved ppx_hash.v0.17.0 (cached)
-> retrieved ppx_here.v0.17.0 (cached)
-> retrieved ppx_ignore_instrumentation.v0.17.0 (cached)
-> retrieved ppx_inline_test.v0.17.0 (cached)
-> retrieved ppx_jane.v0.17.0 (cached)
-> retrieved ppx_let.v0.17.0 (cached)
-> retrieved ppx_log.v0.17.0 (cached)
-> retrieved ppx_module_timer.v0.17.0 (cached)
-> retrieved ppx_optcomp.v0.17.0 (cached)
-> retrieved ppx_optional.v0.17.0 (cached)
-> retrieved ppx_pipebang.v0.17.0 (cached)
-> retrieved ppx_sexp_conv.v0.17.0 (cached)
-> retrieved ppx_sexp_message.v0.17.0 (cached)
-> retrieved ppx_sexp_value.v0.17.0 (cached)
-> retrieved ppx_stable.v0.17.0 (cached)
-> retrieved dune.3.20.2, dune-configurator.3.20.2 (cached)
-> installed num.1.6
-> retrieved ppx_stable_witness.v0.17.0 (cached)
-> retrieved ppx_string.v0.17.0 (cached)
-> retrieved ppx_string_conv.v0.17.0 (cached)
-> retrieved ppx_tydi.v0.17.0 (cached)
-> retrieved ppx_typerep_conv.v0.17.0 (cached)
-> retrieved ppx_variants_conv.v0.17.0 (cached)
-> retrieved ppxlib_jane.v0.17.0 (cached)
-> retrieved protocol_version_header.v0.17.0 (cached)
-> retrieved re.1.14.0 (cached)
-> retrieved re2.v0.17.0 (cached)
-> retrieved regex_parser_intf.v0.17.0 (cached)
-> retrieved sexp_diff.v0.17.0 (cached)
-> retrieved sexp.v0.17.0 (cached)
-> retrieved sexp_macro.v0.17.0 (cached)
-> retrieved sexp_pretty.v0.17.0 (cached)
-> retrieved sexp_select.v0.17.0 (cached)
-> retrieved ppxlib.0.35.0 (cached)
-> retrieved sexplib.v0.17.0 (cached)
-> retrieved sexplib0.v0.17.0 (cached)
-> retrieved shell.v0.17.0 (cached)
-> retrieved spawn.v0.17.0 (cached)
-> retrieved splittable_random.v0.17.0 (cached)
-> retrieved stdio.v0.17.0 (cached)
-> retrieved stdlib-shims.0.3.0 (cached)
-> retrieved textutils.v0.17.0 (cached)
-> retrieved time_now.v0.17.0 (cached)
-> retrieved timezone.v0.17.0 (cached)
-> retrieved typerep.v0.17.1 (cached)
-> retrieved uopt.v0.17.0 (cached)
-> retrieved variantslib.v0.17.0 (cached)
-> retrieved topkg.1.1.1 (cached)
-> retrieved uutf.1.0.4 (cached)
-> installed ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> installed topkg.1.1.1
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed dune.3.20.2
-> installed jane-street-headers.v0.17.0
-> installed ppx_derivers.1.2.1
-> installed csexp.1.5.2
-> installed cstruct.6.2.0
-> installed ocaml-compiler-libs.v0.17.0
-> installed ocaml-syntax-shims.1.0.0
-> installed ocaml_intrinsics_kernel.v0.17.1
-> installed re.1.14.0
-> installed sexplib0.v0.17.0
-> installed spawn.v0.17.0
-> installed stdlib-shims.0.3.0
-> installed parsexp.v0.17.0
-> installed dune-configurator.3.20.2
-> installed bigstringaf.0.10.0
-> installed sexplib.v0.17.0
-> installed faraday.0.8.2
-> installed angstrom.0.16.1
-> installed base.v0.17.3
-> installed fieldslib.v0.17.0
-> installed variantslib.v0.17.0
-> installed regex_parser_intf.v0.17.0
-> installed stdio.v0.17.0
-> installed typerep.v0.17.1
-> installed ppxlib.0.35.0
-> installed ppxlib_jane.v0.17.0
-> installed ppx_optcomp.v0.17.0
-> installed ppx_cold.v0.17.0
-> installed ppx_disable_unused_warnings.v0.17.0
-> installed ppx_here.v0.17.0
-> installed ppx_stable_witness.v0.17.0
-> installed ppx_tydi.v0.17.0
-> installed ppx_typerep_conv.v0.17.0
-> installed ppx_variants_conv.v0.17.0
-> installed ppx_fields_conv.v0.17.0
-> installed ppx_stable.v0.17.0
-> installed ppx_pipebang.v0.17.0
-> installed ppx_ignore_instrumentation.v0.17.0
-> installed ppx_fixed_literal.v0.17.0
-> installed ppx_enumerate.v0.17.0
-> installed ppx_globalize.v0.17.0
-> installed ppx_compare.v0.17.0
-> installed ppx_optional.v0.17.0
-> installed ppx_sexp_conv.v0.17.0
-> installed ppx_let.v0.17.0
-> installed ppx_hash.v0.17.0
-> installed ppx_assert.v0.17.0
-> installed ppx_sexp_value.v0.17.0
-> installed ppx_sexp_message.v0.17.0
-> installed ppx_custom_printf.v0.17.0
-> installed ppx_base.v0.17.0
-> installed capitalization.v0.17.0
-> installed jst-config.v0.17.0
-> installed sexp_pretty.v0.17.0
-> installed bin_prot.v0.17.0-1
-> installed ppx_string.v0.17.0
-> installed time_now.v0.17.0
-> installed ppx_bin_prot.v0.17.0
-> installed ppx_string_conv.v0.17.0
-> installed ppx_module_timer.v0.17.0
-> installed ppx_inline_test.v0.17.0
-> installed ppx_bench.v0.17.0
-> installed ppx_expect.v0.17.2
-> installed splittable_random.v0.17.0
-> installed base_quickcheck.v0.17.0
-> installed ppx_log.v0.17.0
-> installed ppx_jane.v0.17.0
-> installed gel.v0.17.0
-> installed uopt.v0.17.0
-> installed jane_rope.v0.17.0
-> installed jsonaf.v0.17.0
-> installed int_repr.v0.17.0
-> installed base_bigstring.v0.17.0
-> installed ppx_diff.v0.17.0
-> installed core.v0.17.1
-> installed csvfields.v0.17.0
-> installed sexp_diff.v0.17.0
-> installed protocol_version_header.v0.17.0
-> installed expect_test_helpers_core.v0.17.0
-> installed timezone.v0.17.0
-> installed core_kernel.v0.17.0
-> installed sexp_select.v0.17.0
-> installed async_kernel.v0.17.0
-> installed core_unix.v0.17.1
-> installed textutils.v0.17.0
-> installed async_rpc_kernel.v0.17.0
-> installed shell.v0.17.0
-> installed async_unix.v0.17.0
-> installed async_log.v0.17.0
-> installed async.v0.17.0
-> installed sexp_macro.v0.17.0
-> installed re2.v0.17.0
-> installed sexp.v0.17.0
Done.
# To update the current shell environment, run: eval $(opam env)
/
2025-12-29 15:46.37 ---> using "bc7669dd5d84a58447ad6a3d1d7008d73b2b93a4c67dc1e7fac77df9c973eb86" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
(network host)
(shell "PLACE=$(mktemp -d) && cd $PLACE && echo '(lang dune 3.17)\
\n(package\
\n (name dummy)\
\n (allow_empty true)\
\n (depends (ocaml (= 5.3.0))))' > dune-project && PATH=$HOME/.local/bin:$PATH dune pkg lock && PATH=$HOME/.local/bin:$PATH dune build"))
Solution for dune.lock
Dependencies common to all supported platforms:
- ocaml.5.3.0
- ocaml-base-compiler.5.3.0
- ocaml-compiler.5.3.0
- ocaml-config.3
2025-12-29 15:46.37 ---> using "9bcabb8795dcd26a81fdac926e310bcc5d29ecbfe856c8b3cc8b0b04ed84d512" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)) (opam-dune-cache (target /home/opam/.cache/dune)))
(network host)
(shell "cd $HOME && opam source lichess_api.1.0.1 && cd lichess_api.1.0.1 && if [ -f opam ]; then mv opam lichess_api.opam; fi && echo lichess_api >> /tmp/packages-in-repo && for opam in *.opam; do echo ${opam%.opam} >> /tmp/packages-in-repo; done && sed -n 's/(name \\(.*\\))/\\1/p' < dune-project | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//' >> /tmp/packages-in-repo && while read package ; do opam show --raw ${package}.1.0.1 > ${package}.opam; done < /tmp/packages-in-repo && opam install --dry-run --with-test ./lichess_api.opam | sed -nE 's/(.*)- install ([^[:blank:]]*)(.*)/\\2/p' > /tmp/packages-via-opam && for opam in *.opam; do rm $opam; echo ${opam%.opam} >> /tmp/packages-locally-available; done && opam show --raw lichess_api.1.0.1 > lichess_api.opam && /tmp/sexp/_opam/bin/sexp change '(try (rewrite (package @X) OPAM-HEALTH-CHECK-DROP))' < dune-project | grep -v OPAM-HEALTH-CHECK-DROP > dune-project-no-pkg && mv dune-project dune-project-pkg && mv dune-project-no-pkg dune-project && echo '(lang dune 3.17)\
\n(lock_dir\
\n (repositories overlay default))\
\n\
\n(repository\
\n (name default)\
\n (url \"file:///home/opam/opam-repository\"))\
\n\
\n\
\n' > dune-workspace && echo lichess_api >> /tmp/packages-to-build && while read package ; do if grep --quiet \"^${package}\\$\" /tmp/packages-via-opam ; then echo $package >> /tmp/packages-to-build ; fi ; done < /tmp/packages-locally-available && while read package ; do opam show --raw $package > $package.opam; done < /tmp/packages-to-build && while read package ; do if [ ! -f ${package}.opam ]; then echo \"opam-version: \\\"2.0\\\"\" > ${package}.opam; fi; done < /tmp/packages-locally-available && paste -s -d , /tmp/packages-to-build > /tmp/packages-for-dune && export DUNE_CONFIG__PORTABLE_LOCK_DIR=disabled && PATH=$HOME/.local/bin:$PATH dune pkg lock || (echo \"opam-health-check: Solve failed\" && exit 1) && PATH=$HOME/.local/bin:$PATH dune show depexts 2> /tmp/depexts-from-dune && paste -s -d \" \" /tmp/depexts-from-dune > /tmp/depexts-for-apt && sudo apt-get install -y $(cat /tmp/depexts-for-apt) && grep -v dependency_hash dune.lock/lock.dune > /tmp/lock.dune && mv /tmp/lock.dune dune.lock/lock.dune && mv dune-project-pkg dune-project && PATH=$HOME/.local/bin:$PATH dune build --release --only-packages $(cat /tmp/packages-for-dune) || (echo \"opam-health-check: Build failed\" && exit 1)"))
Successfully extracted to /home/opam/lichess_api.1.0.1
Solution for dune.lock:
- angstrom.0.16.1
- asn1-combinators.0.3.2
- astring.0.8.5
- base.v0.17.3
- base-bytes.base
- base-threads.base
- base-unix.base
- base64.3.5.2
- bigstringaf.0.10.0
- bos.0.2.1
- ca-certs.1.0.1
- cmdliner.2.1.0
- cohttp.6.2.1
- cohttp-lwt.6.2.1
- cohttp-lwt-unix.6.2.1
- conduit.8.0.0
- conduit-lwt.8.0.0
- conduit-lwt-unix.8.0.0
- conf-gmp.5
- conf-gmp-powm-sec.4
- conf-pkg-config.4
- cppo.1.8.0
- csexp.1.5.2
- digestif.1.3.0
- domain-name.0.5.0
- dune-configurator.3.20.2
- duration.0.2.1
- eqaf.0.10
- fmt.0.11.0
- fpath.0.7.3
- gmap.0.3.0
- http.6.2.1
- ipaddr.5.6.1
- ipaddr-sexp.5.6.1
- kdf.1.0.0
- logs.0.10.0
- lwt.5.9.2
- lwt_ppx.5.9.2
- macaddr.5.6.1
- magic-mime.1.3.1
- mirage-crypto.2.0.2
- mirage-crypto-ec.2.0.2
- mirage-crypto-pk.2.0.2
- mirage-crypto-rng.2.0.2
- ocaml.5.4.0
- ocaml-base-compiler.5.4.0
- ocaml-compiler.5.4.0
- ocaml-compiler-libs.v0.17.0
- ocaml-config.3
- ocaml-syntax-shims.1.0.0
- ocaml_intrinsics_kernel.v0.17.1
- ocamlbuild.0.16.1+dune
- ocamlfind.1.9.8+dune
- ocplib-endian.1.2
- ohex.0.2.0
- ounit2.2.2.7
- ppx_derivers.1.2.1
- ppx_sexp_conv.v0.17.1
- ppxlib.0.37.0
- ppxlib_jane.v0.17.4
- ptime.1.2.0
- qcheck.0.91
- qcheck-core.0.91
- qcheck-ounit.0.91
- re.1.14.0
- rresult.0.7.0
- seq.base
- sexplib0.v0.17.0
- stdlib-shims.0.3.0
- stringext.1.6.0
- topkg.1.1.1
- uri.4.4.0
- uri-sexp.4.4.0
- x509.1.0.6
- yojson.3.0.0
- zarith.1.14
Reading package lists...
Building dependency tree...
Reading state information...
Solving dependencies...
The following additional packages will be installed:
libgmpxx4ldbl libpkgconf3 pkgconf pkgconf-bin
Suggested packages:
gmp-doc libgmp10-doc libmpfr-dev
The following NEW packages will be installed:
libgmp-dev libgmpxx4ldbl libpkgconf3 pkg-config pkgconf pkgconf-bin
0 upgraded, 6 newly installed, 0 to remove and 5 not upgraded.
Need to get 1095 kB of archives.
After this operation, 2746 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian unstable/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-5 [330 kB]
Get:2 http://deb.debian.org/debian unstable/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-5 [658 kB]
Get:3 http://deb.debian.org/debian unstable/main amd64 libpkgconf3 amd64 1.8.1-4 [36.4 kB]
Get:4 http://deb.debian.org/debian unstable/main amd64 pkgconf-bin amd64 1.8.1-4 [30.2 kB]
Get:5 http://deb.debian.org/debian unstable/main amd64 pkgconf amd64 1.8.1-4 [26.2 kB]
Get:6 http://deb.debian.org/debian unstable/main amd64 pkg-config amd64 1.8.1-4 [14.0 kB]
Fetched 1095 kB in 0s (28.2 MB/s)
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 ... 20808 files and directories currently installed.)
Preparing to unpack .../0-libgmpxx4ldbl_2%3a6.3.0+dfsg-5_amd64.deb ...
Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-5) ...
Selecting previously unselected package libgmp-dev:amd64.
Preparing to unpack .../1-libgmp-dev_2%3a6.3.0+dfsg-5_amd64.deb ...
Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-5) ...
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-5) ...
Setting up pkgconf-bin (1.8.1-4) ...
Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-5) ...
Setting up pkgconf:amd64 (1.8.1-4) ...
Setting up pkg-config:amd64 (1.8.1-4) ...
Processing triggers for libc-bin (2.42-6) ...
(cd _build/default && /home/opam/.cache/dune/toolchains/ocaml-compiler.5.4.0-ab1bec68ab3ec3d71e1fae73e730464a/target/bin/ocamlc.opt -w -40 -warn-error -A -g -bin-annot -bin-annot-occurrences -I lib/.lichess_api.objs/byte -I /home/opam/.cache/dune/toolchains/ocaml-compiler.5.4.0-ab1bec68ab3ec3d71e1fae73e730464a/target/lib/ocaml/threads -I /home/opam/.cache/dune/toolchains/ocaml-compiler.5.4.0-ab1bec68ab3ec3d71e1fae73e730464a/target/lib/ocaml/unix -I ../_private/default/.pkg/angstrom.0.16.1-3bb365e4543470e357769bcd12b60b1c/target/lib/angstrom -I ../_private/default/.pkg/astring.0.8.5-6978cdf0b8f5af6da19c149a4dc4dc1a/target/lib/astring -I ../_private/default/.pkg/base64.3.5.2-624981322f5c30f8e622942bbaefe1fb/target/lib/base64 -I ../_private/default/.pkg/bigstringaf.0.10.0-aff0159e57e528e6038f820b6baa1feb/target/lib/bigstringaf -I ../_private/default/.pkg/cohttp-lwt-unix.6.2.1-c06aeb6b8bb11e644efa3da0f331659b/target/lib/cohttp-lwt-unix -I ../_private/default/.pkg/cohttp-lwt.6.2.1-405342364de59cba3f3801553a848d21/target/lib/cohttp-lwt -I ../_private/default/.pkg/cohttp.6.2.1-fb5aff9a9f814de5a503705d39891aa5/target/lib/cohttp -I ../_private/default/.pkg/conduit-lwt-unix.8.0.0-06d814cd401d1a51dd3f8c577fbbef1e/target/lib/conduit-lwt-unix -I ../_private/default/.pkg/conduit-lwt.8.0.0-793dae4517af7ca55df354114e3a493b/target/lib/conduit-lwt -I ../_private/default/.pkg/conduit.8.0.0-f04268f2b7e05a7f04a552d48ef00d25/target/lib/conduit -I ../_private/default/.pkg/domain-name.0.5.0-28f54473365c2ec78dd79f39232e689a/target/lib/domain-name -I ../_private/default/.pkg/fmt.0.11.0-41ae524a3e9f09c13ec5ee6f9133b88d/target/lib/fmt -I ../_private/default/.pkg/http.6.2.1-7e71dfd51a24fa361646a9d1ac937502/target/lib/http -H ../_private/default/.pkg/http.6.2.1-7e71dfd51a24fa361646a9d1ac937502/target/lib/http/__private__/http_bytebuffer -H ../_private/default/.pkg/http.6.2.1-7e71dfd51a24fa361646a9d1ac937502/target/lib/http/__private__/http_bytebuffer/.public_cmi -I ../_private/default/.pkg/ipaddr-sexp.5.6.1-0a0ab4dcf3a931316e7285a5ee9a7aa7/target/lib/ipaddr-sexp -I ../_private/default/.pkg/ipaddr.5.6.1-8835cb39435971b907cca42566965e1c/target/lib/ipaddr -I ../_private/default/.pkg/ipaddr.5.6.1-8835cb39435971b907cca42566965e1c/target/lib/ipaddr/unix -I ../_private/default/.pkg/logs.0.10.0-e7e13694bbcb6885d0e2d0cf79732c75/target/lib/logs -I ../_private/default/.pkg/logs.0.10.0-e7e13694bbcb6885d0e2d0cf79732c75/target/lib/logs/fmt -I ../_private/default/.pkg/logs.0.10.0-e7e13694bbcb6885d0e2d0cf79732c75/target/lib/logs/lwt -I ../_private/default/.pkg/lwt.5.9.2-c7039c032642398ca983a9ca4a2cba0b/target/lib/lwt -I ../_private/default/.pkg/lwt.5.9.2-c7039c032642398ca983a9ca4a2cba0b/target/lib/lwt/unix -I ../_private/default/.pkg/macaddr.5.6.1-41e22937ce1eb4e00225212c0ea20831/target/lib/macaddr -I ../_private/default/.pkg/magic-mime.1.3.1-535df2b2de7e3b9f8366ceda57288e0a/target/lib/magic-mime -I ../_private/default/.pkg/ocamlfind.1.9.8+dune-b49b15a0050f4541f1d306d32a5105de/target/lib/bytes -I ../_private/default/.pkg/ocplib-endian.1.2-759aaafbd936f58978ff458228e135dd/target/lib/ocplib-endian -I ../_private/default/.pkg/ocplib-endian.1.2-759aaafbd936f58978ff458228e135dd/target/lib/ocplib-endian/bigstring -I ../_private/default/.pkg/ppx_sexp_conv.v0.17.1-59e7f9155c0cfdbeb7f5bddd3d7c1110/target/lib/ppx_sexp_conv/runtime-lib -I ../_private/default/.pkg/re.1.14.0-22b95923d43cd86a7538cc733ef6d90a/target/lib/re -I ../_private/default/.pkg/sexplib0.v0.17.0-08ac41df0652ce16618496764327ee18/target/lib/sexplib0 -I ../_private/default/.pkg/stringext.1.6.0-f0190b784ae190c6806cb8ffb1ad2f2c/target/lib/stringext -I ../_private/default/.pkg/uri-sexp.4.4.0-c96929153ed66ccb182c7747d0cefe1b/target/lib/uri-sexp -I ../_private/default/.pkg/uri.4.4.0-b82cc6548e4e61b3e6deabf18ef41704/target/lib/uri -I ../_private/default/.pkg/uri.4.4.0-b82cc6548e4e61b3e6deabf18ef41704/target/lib/uri/services -I ../_private/default/.pkg/yojson.3.0.0-75b0efcdaaba1110151db17c7c646138/target/lib/yojson -cmi-file lib/.lichess_api.objs/byte/lichess_api.cmi -no-alias-deps -o lib/.lichess_api.objs/byte/lichess_api.cmo -c -impl lib/lichess_api.ml)
File "lib/lichess_api.ml", lines 336-339, characters 33-29:
336 | .................................match List.assoc_opt "white" fields with
337 | | Some (`Assoc white_fields) ->
338 | match List.assoc_opt "name" white_fields with Some (`String s) -> s | _ -> "Unknown"
339 | | _ -> "Unknown"...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 340-343, characters 23-29:
340 | .......................match List.assoc_opt "black" fields with
341 | | Some (`Assoc black_fields) ->
342 | match List.assoc_opt "name" black_fields with Some (`String s) -> s | _ -> "Unknown"
343 | | _ -> "Unknown"...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 346-350, characters 40-24:
346 | ........................................match List.assoc_opt "clock" fields with
347 | | Some (`Assoc clock_fields) ->
348 | match List.assoc_opt "initial" clock_fields with Some (`Int i) -> Some (string_of_int i)
349 | | _ -> None
350 | | _ -> None...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 351-354, characters 30-24:
351 | ..............................match List.assoc_opt "white" fields with
352 | | Some (`Assoc white_fields) ->
353 | match List.assoc_opt "rating" white_fields with Some (`Int i) -> Some i | _ -> None
354 | | _ -> None...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 355-358, characters 30-24:
355 | ..............................match List.assoc_opt "black" fields with
356 | | Some (`Assoc black_fields) ->
357 | match List.assoc_opt "rating" black_fields with Some (`Int i) -> Some i | _ -> None
358 | | _ -> None...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 511-514, characters 43-23:
511 | ...........................................match List.assoc_opt "count" fields with
512 | | Some (`Assoc count_fields) ->
513 | match List.assoc_opt "all" count_fields with Some (`Int i) -> i | _ -> 0
514 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 516-519, characters 24-23:
516 | ........................match List.assoc_opt "count" fields with
517 | | Some (`Assoc count_fields) ->
518 | match List.assoc_opt "win" count_fields with Some (`Int i) -> i | _ -> 0
519 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 521-524, characters 26-23:
521 | ..........................match List.assoc_opt "count" fields with
522 | | Some (`Assoc count_fields) ->
523 | match List.assoc_opt "loss" count_fields with Some (`Int i) -> i | _ -> 0
524 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 526-529, characters 25-23:
526 | .........................match List.assoc_opt "count" fields with
527 | | Some (`Assoc count_fields) ->
528 | match List.assoc_opt "draw" count_fields with Some (`Int i) -> i | _ -> 0
529 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 535-544, characters 19-26:
535 | ...................match List.assoc_opt "classical" perfs_fields with
536 | | Some (`Assoc classical_fields) ->
537 | match List.assoc_opt "games" classical_fields with Some (`Int games) ->
538 | if games > 0 then
539 | match List.assoc_opt "rating" classical_fields with Some (`Int rating) -> rating
540 | | _ -> 1500
541 | else 1500
542 | | _ -> 1500
543 | | _ -> 1500
544 | | _ -> 1500...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 533-544, characters 46-26:
533 | ..............................................match List.assoc_opt "perfs" fields with
534 | | Some (`Assoc perfs_fields) ->
535 | match List.assoc_opt "classical" perfs_fields with
536 | | Some (`Assoc classical_fields) ->
537 | match List.assoc_opt "games" classical_fields with Some (`Int games) ->
...
541 | else 1500
542 | | _ -> 1500
543 | | _ -> 1500
544 | | _ -> 1500...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 550-556, characters 25-36:
550 | .........................match List.assoc_opt "best" classical_fields with
551 | | Some (`Assoc best_fields) ->
552 | match List.assoc_opt "rating" best_fields with Some (`Int rating) -> rating
553 | | _ -> current_rating
554 | | _ -> current_rating
555 | | _ -> current_rating
556 | | _ -> current_rating...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 548-556, characters 19-36:
548 | ...................match List.assoc_opt "classical" perfs_fields with
549 | | Some (`Assoc classical_fields) ->
550 | match List.assoc_opt "best" classical_fields with
551 | | Some (`Assoc best_fields) ->
552 | match List.assoc_opt "rating" best_fields with Some (`Int rating) -> rating
553 | | _ -> current_rating
554 | | _ -> current_rating
555 | | _ -> current_rating
556 | | _ -> current_rating...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 546-556, characters 31-36:
546 | ...............................match List.assoc_opt "perfs" fields with
547 | | Some (`Assoc perfs_fields) ->
548 | match List.assoc_opt "classical" perfs_fields with
549 | | Some (`Assoc classical_fields) ->
550 | match List.assoc_opt "best" classical_fields with
...
553 | | _ -> current_rating
554 | | _ -> current_rating
555 | | _ -> current_rating
556 | | _ -> current_rating...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", line 573, characters 4-5:
573 | | _ ->
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", lines 505-574, characters 2-21:
505 | ..match Cohttp.Response.status response with
506 | | `OK ->
507 | try
508 | let json = Yojson.Basic.from_string body_str in
509 | match json with
...
571 | | _ -> Lwt.return_none
572 | with _ -> Lwt.return_none
573 | | _ ->
574 | 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/lichess_api.ml", line 339, characters 15-16:
339 | | _ -> "Unknown" in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 343, characters 15-16:
343 | | _ -> "Unknown" in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 350, characters 15-16:
350 | | _ -> None in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 354, characters 15-16:
354 | | _ -> None in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 358, characters 15-16:
358 | | _ -> None in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 514, characters 17-18:
514 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 519, characters 17-18:
519 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 524, characters 17-18:
524 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 529, characters 17-18:
529 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 543, characters 23-24:
543 | | _ -> 1500
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 544, characters 17-18:
544 | | _ -> 1500 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 554, characters 29-30:
554 | | _ -> current_rating
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 555, characters 23-24:
555 | | _ -> current_rating
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 556, characters 17-18:
556 | | _ -> current_rating in
^
Warning 11 [redundant-case]: this match case is unused.
(cd _build/default && /home/opam/.cache/dune/toolchains/ocaml-compiler.5.4.0-ab1bec68ab3ec3d71e1fae73e730464a/target/bin/ocamlopt.opt -w -40 -warn-error -A -g -I lib/.lichess_api.objs/byte -I lib/.lichess_api.objs/native -I /home/opam/.cache/dune/toolchains/ocaml-compiler.5.4.0-ab1bec68ab3ec3d71e1fae73e730464a/target/lib/ocaml/threads -I /home/opam/.cache/dune/toolchains/ocaml-compiler.5.4.0-ab1bec68ab3ec3d71e1fae73e730464a/target/lib/ocaml/unix -I ../_private/default/.pkg/angstrom.0.16.1-3bb365e4543470e357769bcd12b60b1c/target/lib/angstrom -I ../_private/default/.pkg/astring.0.8.5-6978cdf0b8f5af6da19c149a4dc4dc1a/target/lib/astring -I ../_private/default/.pkg/base64.3.5.2-624981322f5c30f8e622942bbaefe1fb/target/lib/base64 -I ../_private/default/.pkg/bigstringaf.0.10.0-aff0159e57e528e6038f820b6baa1feb/target/lib/bigstringaf -I ../_private/default/.pkg/cohttp-lwt-unix.6.2.1-c06aeb6b8bb11e644efa3da0f331659b/target/lib/cohttp-lwt-unix -I ../_private/default/.pkg/cohttp-lwt.6.2.1-405342364de59cba3f3801553a848d21/target/lib/cohttp-lwt -I ../_private/default/.pkg/cohttp.6.2.1-fb5aff9a9f814de5a503705d39891aa5/target/lib/cohttp -I ../_private/default/.pkg/conduit-lwt-unix.8.0.0-06d814cd401d1a51dd3f8c577fbbef1e/target/lib/conduit-lwt-unix -I ../_private/default/.pkg/conduit-lwt.8.0.0-793dae4517af7ca55df354114e3a493b/target/lib/conduit-lwt -I ../_private/default/.pkg/conduit.8.0.0-f04268f2b7e05a7f04a552d48ef00d25/target/lib/conduit -I ../_private/default/.pkg/domain-name.0.5.0-28f54473365c2ec78dd79f39232e689a/target/lib/domain-name -I ../_private/default/.pkg/fmt.0.11.0-41ae524a3e9f09c13ec5ee6f9133b88d/target/lib/fmt -I ../_private/default/.pkg/http.6.2.1-7e71dfd51a24fa361646a9d1ac937502/target/lib/http -I ../_private/default/.pkg/http.6.2.1-7e71dfd51a24fa361646a9d1ac937502/target/lib/http/__private__/http_bytebuffer -H ../_private/default/.pkg/http.6.2.1-7e71dfd51a24fa361646a9d1ac937502/target/lib/http/__private__/http_bytebuffer/.public_cmi -I ../_private/default/.pkg/ipaddr-sexp.5.6.1-0a0ab4dcf3a931316e7285a5ee9a7aa7/target/lib/ipaddr-sexp -I ../_private/default/.pkg/ipaddr.5.6.1-8835cb39435971b907cca42566965e1c/target/lib/ipaddr -I ../_private/default/.pkg/ipaddr.5.6.1-8835cb39435971b907cca42566965e1c/target/lib/ipaddr/unix -I ../_private/default/.pkg/logs.0.10.0-e7e13694bbcb6885d0e2d0cf79732c75/target/lib/logs -I ../_private/default/.pkg/logs.0.10.0-e7e13694bbcb6885d0e2d0cf79732c75/target/lib/logs/fmt -I ../_private/default/.pkg/logs.0.10.0-e7e13694bbcb6885d0e2d0cf79732c75/target/lib/logs/lwt -I ../_private/default/.pkg/lwt.5.9.2-c7039c032642398ca983a9ca4a2cba0b/target/lib/lwt -I ../_private/default/.pkg/lwt.5.9.2-c7039c032642398ca983a9ca4a2cba0b/target/lib/lwt/unix -I ../_private/default/.pkg/macaddr.5.6.1-41e22937ce1eb4e00225212c0ea20831/target/lib/macaddr -I ../_private/default/.pkg/magic-mime.1.3.1-535df2b2de7e3b9f8366ceda57288e0a/target/lib/magic-mime -I ../_private/default/.pkg/ocamlfind.1.9.8+dune-b49b15a0050f4541f1d306d32a5105de/target/lib/bytes -I ../_private/default/.pkg/ocplib-endian.1.2-759aaafbd936f58978ff458228e135dd/target/lib/ocplib-endian -I ../_private/default/.pkg/ocplib-endian.1.2-759aaafbd936f58978ff458228e135dd/target/lib/ocplib-endian/bigstring -I ../_private/default/.pkg/ppx_sexp_conv.v0.17.1-59e7f9155c0cfdbeb7f5bddd3d7c1110/target/lib/ppx_sexp_conv/runtime-lib -I ../_private/default/.pkg/re.1.14.0-22b95923d43cd86a7538cc733ef6d90a/target/lib/re -I ../_private/default/.pkg/sexplib0.v0.17.0-08ac41df0652ce16618496764327ee18/target/lib/sexplib0 -I ../_private/default/.pkg/stringext.1.6.0-f0190b784ae190c6806cb8ffb1ad2f2c/target/lib/stringext -I ../_private/default/.pkg/uri-sexp.4.4.0-c96929153ed66ccb182c7747d0cefe1b/target/lib/uri-sexp -I ../_private/default/.pkg/uri.4.4.0-b82cc6548e4e61b3e6deabf18ef41704/target/lib/uri -I ../_private/default/.pkg/uri.4.4.0-b82cc6548e4e61b3e6deabf18ef41704/target/lib/uri/services -I ../_private/default/.pkg/yojson.3.0.0-75b0efcdaaba1110151db17c7c646138/target/lib/yojson -cmi-file lib/.lichess_api.objs/byte/lichess_api.cmi -no-alias-deps -o lib/.lichess_api.objs/native/lichess_api.cmx -c -impl lib/lichess_api.ml)
File "lib/lichess_api.ml", lines 336-339, characters 33-29:
336 | .................................match List.assoc_opt "white" fields with
337 | | Some (`Assoc white_fields) ->
338 | match List.assoc_opt "name" white_fields with Some (`String s) -> s | _ -> "Unknown"
339 | | _ -> "Unknown"...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 340-343, characters 23-29:
340 | .......................match List.assoc_opt "black" fields with
341 | | Some (`Assoc black_fields) ->
342 | match List.assoc_opt "name" black_fields with Some (`String s) -> s | _ -> "Unknown"
343 | | _ -> "Unknown"...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 346-350, characters 40-24:
346 | ........................................match List.assoc_opt "clock" fields with
347 | | Some (`Assoc clock_fields) ->
348 | match List.assoc_opt "initial" clock_fields with Some (`Int i) -> Some (string_of_int i)
349 | | _ -> None
350 | | _ -> None...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 351-354, characters 30-24:
351 | ..............................match List.assoc_opt "white" fields with
352 | | Some (`Assoc white_fields) ->
353 | match List.assoc_opt "rating" white_fields with Some (`Int i) -> Some i | _ -> None
354 | | _ -> None...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 355-358, characters 30-24:
355 | ..............................match List.assoc_opt "black" fields with
356 | | Some (`Assoc black_fields) ->
357 | match List.assoc_opt "rating" black_fields with Some (`Int i) -> Some i | _ -> None
358 | | _ -> None...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 511-514, characters 43-23:
511 | ...........................................match List.assoc_opt "count" fields with
512 | | Some (`Assoc count_fields) ->
513 | match List.assoc_opt "all" count_fields with Some (`Int i) -> i | _ -> 0
514 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 516-519, characters 24-23:
516 | ........................match List.assoc_opt "count" fields with
517 | | Some (`Assoc count_fields) ->
518 | match List.assoc_opt "win" count_fields with Some (`Int i) -> i | _ -> 0
519 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 521-524, characters 26-23:
521 | ..........................match List.assoc_opt "count" fields with
522 | | Some (`Assoc count_fields) ->
523 | match List.assoc_opt "loss" count_fields with Some (`Int i) -> i | _ -> 0
524 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 526-529, characters 25-23:
526 | .........................match List.assoc_opt "count" fields with
527 | | Some (`Assoc count_fields) ->
528 | match List.assoc_opt "draw" count_fields with Some (`Int i) -> i | _ -> 0
529 | | _ -> 0...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 535-544, characters 19-26:
535 | ...................match List.assoc_opt "classical" perfs_fields with
536 | | Some (`Assoc classical_fields) ->
537 | match List.assoc_opt "games" classical_fields with Some (`Int games) ->
538 | if games > 0 then
539 | match List.assoc_opt "rating" classical_fields with Some (`Int rating) -> rating
540 | | _ -> 1500
541 | else 1500
542 | | _ -> 1500
543 | | _ -> 1500
544 | | _ -> 1500...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 533-544, characters 46-26:
533 | ..............................................match List.assoc_opt "perfs" fields with
534 | | Some (`Assoc perfs_fields) ->
535 | match List.assoc_opt "classical" perfs_fields with
536 | | Some (`Assoc classical_fields) ->
537 | match List.assoc_opt "games" classical_fields with Some (`Int games) ->
...
541 | else 1500
542 | | _ -> 1500
543 | | _ -> 1500
544 | | _ -> 1500...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 550-556, characters 25-36:
550 | .........................match List.assoc_opt "best" classical_fields with
551 | | Some (`Assoc best_fields) ->
552 | match List.assoc_opt "rating" best_fields with Some (`Int rating) -> rating
553 | | _ -> current_rating
554 | | _ -> current_rating
555 | | _ -> current_rating
556 | | _ -> current_rating...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 548-556, characters 19-36:
548 | ...................match List.assoc_opt "classical" perfs_fields with
549 | | Some (`Assoc classical_fields) ->
550 | match List.assoc_opt "best" classical_fields with
551 | | Some (`Assoc best_fields) ->
552 | match List.assoc_opt "rating" best_fields with Some (`Int rating) -> rating
553 | | _ -> current_rating
554 | | _ -> current_rating
555 | | _ -> current_rating
556 | | _ -> current_rating...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", lines 546-556, characters 31-36:
546 | ...............................match List.assoc_opt "perfs" fields with
547 | | Some (`Assoc perfs_fields) ->
548 | match List.assoc_opt "classical" perfs_fields with
549 | | Some (`Assoc classical_fields) ->
550 | match List.assoc_opt "best" classical_fields with
...
553 | | _ -> current_rating
554 | | _ -> current_rating
555 | | _ -> current_rating
556 | | _ -> current_rating...
Warning 8 [partial-match]: this pattern-matching is not exhaustive.
Here is an example of a case that is not matched:
Some (`Bool _|`Null|`List _|`Float _|`String _|`Int _)
File "lib/lichess_api.ml", line 573, characters 4-5:
573 | | _ ->
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", lines 505-574, characters 2-21:
505 | ..match Cohttp.Response.status response with
506 | | `OK ->
507 | try
508 | let json = Yojson.Basic.from_string body_str in
509 | match json with
...
571 | | _ -> Lwt.return_none
572 | with _ -> Lwt.return_none
573 | | _ ->
574 | 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/lichess_api.ml", line 339, characters 15-16:
339 | | _ -> "Unknown" in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 343, characters 15-16:
343 | | _ -> "Unknown" in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 350, characters 15-16:
350 | | _ -> None in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 354, characters 15-16:
354 | | _ -> None in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 358, characters 15-16:
358 | | _ -> None in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 514, characters 17-18:
514 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 519, characters 17-18:
519 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 524, characters 17-18:
524 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 529, characters 17-18:
529 | | _ -> 0 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 543, characters 23-24:
543 | | _ -> 1500
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 544, characters 17-18:
544 | | _ -> 1500 in
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 554, characters 29-30:
554 | | _ -> current_rating
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 555, characters 23-24:
555 | | _ -> current_rating
^
Warning 11 [redundant-case]: this match case is unused.
File "lib/lichess_api.ml", line 556, characters 17-18:
556 | | _ -> current_rating in
^
Warning 11 [redundant-case]: this match case is unused.
2025-12-29 15:49.31 ---> saved as "4685f3e113035f5e767051c7fae36e6d34734d65bf2475d4ce6f1daf93ae9660"
Job succeeded