2026-01-20 15:53.40: New job: test mirage/irmin https://github.com/mirage/irmin.git#refs/pull/2381/head (fdb010bb5d2739372d008739b1ec5b61f54970d3) (linux-x86_64:(lint-fmt))Base: ocaml/opam:debian-13-ocaml-4.08@sha256:7cdc2a1943ac1462f548be7816c6d02f14e605659f225027208abe04795ea500ocamlformat version: version 0.27.0 (from opam)To reproduce locally:git clone --recursive "https://github.com/mirage/irmin.git" && cd "irmin" && git fetch origin "refs/pull/2381/head" && git reset --hard fdb010bbcat > Dockerfile <<'END-OF-DOCKERFILE'FROM ocaml/opam:debian-13-ocaml-4.08@sha256:7cdc2a1943ac1462f548be7816c6d02f14e605659f225027208abe04795ea500USER 1000:1000RUN cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -uRUN opam depext -i duneWORKDIR /srcRUN opam depext -i ocamlformat=0.27.0COPY --chown=1000:1000 . /src/RUN opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)END-OF-DOCKERFILEdocker build .END-REPRO-BLOCK2026-01-20 15:53.40: Using cache hint "mirage/irmin-ocaml/opam:debian-13-ocaml-4.08@sha256:7cdc2a1943ac1462f548be7816c6d02f14e605659f225027208abe04795ea500-debian-13-4.08_opam-2.5-ocamlformat-873cb18c37b308713d11ad3894c4bb78d73fb3e7"2026-01-20 15:53.40: Using OBuilder spec:((from ocaml/opam:debian-13-ocaml-4.08@sha256:7cdc2a1943ac1462f548be7816c6d02f14e605659f225027208abe04795ea500)(user (uid 1000) (gid 1000))(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -u"))(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i dune"))(workdir /src)(run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i ocamlformat=0.27.0"))(copy (src .) (dst /src/))(run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")))2026-01-20 15:53.40: Waiting for resource in pool OCluster2026-01-20 15:53.40: Waiting for worker…2026-01-20 15:53.40: Got resource from pool OClusterBuilding on laodoke.caelum.ci.devAll commits already cachedHEAD is now at fdb010bb5d add dockerfile for building mirage example(from ocaml/opam:debian-13-ocaml-4.08@sha256:7cdc2a1943ac1462f548be7816c6d02f14e605659f225027208abe04795ea500)2026-01-20 15:53.40 ---> using "4c1f60dc0cc5644c6a4c05cf3315bdbf9cc478b70e443b212a1220385bab8bba" from cache/: (user (uid 1000) (gid 1000))/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "cd ~/opam-repository && (git cat-file -e 873cb18c37b308713d11ad3894c4bb78d73fb3e7 || git fetch origin master) && git reset -q --hard 873cb18c37b308713d11ad3894c4bb78d73fb3e7 && git log --no-decorate -n1 --oneline && opam update -u"))From https://github.com/ocaml/opam-repository* branch master -> FETCH_HEADa6b2f19780..1c997ec9e6 master -> origin/master873cb18c37 Merge pull request #29216 from shonfeder/release-dune-3.21.0<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>[default] Initialiseddefault (at git+file:///home/opam/opam-repository):[INFO] opam 2.1 and 2.2 include many performance and security improvements over 2.0; please consider upgrading (https://opam.ocaml.org/doc/Install.html)Everything as up-to-date as possible (run with --verbose to show unavailable upgrades).However, you may "opam upgrade" these packages explicitly, which will ask permission to downgrade or uninstall the conflicting packages.Nothing to do.# Run eval $(opam env) to update the current shell environment2026-01-20 15:53.40 ---> using "72a7cd495abee3d0659c15140c96fff42d035222fc9b794ad453f1a5292cd6f1" from cache/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i dune"))# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian# No extra OS packages requirements found.# All required OS packages found.# Now letting opam install the packagesThe following actions will be performed:- install dune 3.21.0<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>[dune.3.21.0] found in cache<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> installed dune.3.21.0Done.# Run eval $(opam env) to update the current shell environment2026-01-20 15:53.40 ---> using "3b5aee51bb4636e6dab95deb6944478b896d0b06f021712424b773f7d70073ac" from cache/: (workdir /src)/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))(network host)(shell "opam depext -i ocamlformat=0.27.0"))# Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian# No extra OS packages requirements found.# All required OS packages found.# Now letting opam install the packagesThe following actions will be performed:- install sexplib0 v0.14.0 [required by base]- install ocamlbuild 0.16.1 [required by fpath, astring, uuseg]- install cmdliner 1.3.0 [required by ocamlformat]- install either 1.0.0 [required by ocamlformat-lib]- install menhirLib 20250912 [required by ocamlformat-lib]- install csexp 1.5.2 [required by ocamlformat]- install dune-build-info 3.21.0 [required by ocamlformat-lib]- install camlp-streams 5.0.1 [required by ocamlformat-lib]- install seq base [required by re]- install menhirSdk 20250912 [required by ocamlformat-lib]- install fix 20250919 [required by ocamlformat-lib]- install menhirCST 20250912 [required by menhir]- install ocamlfind 1.9.8 [required by ocp-indent, astring, fpath, uuseg]- install ocaml-version 4.0.3 [required by ocamlformat-lib]- install dune-configurator 3.21.0 [required by base]- install re 1.11.0 [required by ocamlformat]- install menhir 20250912 [required by ocamlformat-lib]- install topkg 1.1.1 [required by fpath, astring, uuseg]- install ocp-indent 1.9.0 [required by ocamlformat-lib]- install base v0.14.3 [required by ocamlformat-lib]- install uutf 1.0.4 [required by ocamlformat-lib]- install astring 0.8.5 [required by ocamlformat-lib]- install stdio v0.14.0 [required by ocamlformat-lib]- install uucp 15.0.0 [required by uuseg]- install fpath 0.7.3 [required by ocamlformat-lib]- install uuseg 15.0.0 [required by ocamlformat-lib]- install ocamlformat-lib 0.27.0 [required by ocamlformat]- install ocamlformat 0.27.0===== 28 to install =====<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>[astring.0.8.5] found in cache[base.v0.14.3] found in cache[camlp-streams.5.0.1] found in cache[cmdliner.1.3.0] found in cache[csexp.1.5.2] found in cache[dune-build-info.3.21.0] found in cache[dune-configurator.3.21.0] found in cache[either.1.0.0] found in cache[fix.20250919] found in cache[fpath.0.7.3] found in cache[menhir.20250912] found in cache[menhirCST.20250912] found in cache[menhirLib.20250912] found in cache[menhirSdk.20250912] found in cache[ocaml-version.4.0.3] found in cache[ocamlbuild.0.16.1] found in cache[ocamlfind.1.9.8] found in cache[ocamlformat.0.27.0] found in cache[ocamlformat-lib.0.27.0] found in cache[ocp-indent.1.9.0] found in cache[re.1.11.0] found in cache[sexplib0.v0.14.0] found in cache[stdio.v0.14.0] found in cache[topkg.1.1.1] found in cache[uucp.15.0.0] found in cache[uuseg.15.0.0] found in cache[uutf.1.0.4] found in cache<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> installed seq.base-> installed camlp-streams.5.0.1-> installed csexp.1.5.2-> installed cmdliner.1.3.0-> installed either.1.0.0-> installed fix.20250919-> installed menhirCST.20250912-> installed menhirLib.20250912-> installed menhirSdk.20250912-> installed ocaml-version.4.0.3-> installed re.1.11.0-> installed sexplib0.v0.14.0-> installed dune-build-info.3.21.0-> installed dune-configurator.3.21.0-> installed ocamlfind.1.9.8-> installed ocp-indent.1.9.0-> installed ocamlbuild.0.16.1-> installed base.v0.14.3-> installed topkg.1.1.1-> installed stdio.v0.14.0-> installed uutf.1.0.4-> installed astring.0.8.5-> installed fpath.0.7.3-> installed menhir.20250912-> installed uucp.15.0.0-> installed uuseg.15.0.0-> installed ocamlformat-lib.0.27.0-> installed ocamlformat.0.27.0Done.<><> ocp-indent.1.9.0 installed successfully ><><><><><><><><><><><><><><><><><>=> This package requires additional configuration for use in editors. Install package 'user-setup', or manually:* for Emacs, add these lines to ~/.emacs:(add-to-list 'load-path "/home/opam/.opam/4.08/share/emacs/site-lisp")(require 'ocp-indent)* for Vim, add this line to ~/.vimrc:set rtp^="/home/opam/.opam/4.08/share/ocp-indent/vim"# Run eval $(opam env) to update the current shell environment2026-01-20 15:53.40 ---> using "2ae43ae662b95641fa2bf73d980051b9145f20314d85ad107c6a3257b77df4e6" from cache/src: (copy (src .) (dst /src/))2026-01-20 15:53.42 ---> saved as "c78cf202c1d9f3784f5761b6356e8cd350af81f32d9d3f34f1dab31e4fd8bf05"/src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))Warning: Invalid documentation comment:File "src/irmin-pack/layout.ml", line 97, characters 27-50:'{v ... v}' (verbatim text) should begin on its own line.Warning: Invalid documentation comment:File "src/irmin-pack/layout.ml", line 97, characters 50-51:Paragraph should begin on its own line.Warning: Invalid documentation comment:File "test/irmin-graphql/common.mli", line 88, character 16 to line 92, character 6:'{[...]}' (code block) should begin on its own line.Warning: Invalid documentation comment:File "test/irmin-graphql/common.mli", line 98, character 16 to line 102, character 6:'{[...]}' (code block) should begin on its own line.Warning: Invalid documentation comment:File "test/irmin-graphql/common.mli", line 104, character 24 to line 108, character 6:'{[...]}' (code block) should begin on its own line.Warning: Invalid documentation comment:File "test/irmin-graphql/common.mli", line 114, character 16 to line 118, character 6:'{[...]}' (code block) should begin on its own line.File "demo/get_tau.ml", line 1, characters 0-0:diff --git a/_build/default/demo/get_tau.ml b/_build/default/demo/.formatted/get_tau.mlindex 726c263..e868660 100644--- a/_build/default/demo/get_tau.ml+++ b/_build/default/demo/.formatted/get_tau.ml@@ -1,12 +1,16 @@-module Fs_store = Irmin_fs_unix.KV.Make(Irmin.Contents.Json_value)+module Fs_store = Irmin_fs_unix.KV.Make (Irmin.Contents.Json_value)let rec json_to_string = function-| `Null -> "null"-| `Bool b -> string_of_bool b-| `String s -> s-| `Float f -> string_of_float f-| `O u -> "{" ^ String.concat "; " (List.map (fun (k, v) -> "\"" ^ k ^ "\": " ^ json_to_string v) u) ^ "}"-| `A u -> "[" ^ String.concat "; " (List.map json_to_string u) ^ "]"+ | `Null -> "null"+ | `Bool b -> string_of_bool b+ | `String s -> s+ | `Float f -> string_of_float f+ | `O u ->+ "{"+ ^ String.concat "; "+ (List.map (fun (k, v) -> "\"" ^ k ^ "\": " ^ json_to_string v) u)+ ^ "}"+ | `A u -> "[" ^ String.concat "; " (List.map json_to_string u) ^ "]"let get_tau env =let path = Eio.Path.(env#fs / "math") in@@ -14,10 +18,11 @@ let get_tau env =let repo = Fs_store.Repo.v conf inlet main = Fs_store.main repo inlet tau = Fs_store.get main [ "tau" ] in- assert (tau = `O ["val", `Float 6.28; ]);+ assert (tau = `O [ ("val", `Float 6.28) ]);tau-let _ = Eio_main.run @@ fun env ->+let _ =+ Eio_main.run @@ fun env ->let tau = get_tau env inlet str = json_to_string tau in- Eio.Flow.copy_string str env#stdout;+ Eio.Flow.copy_string str env#stdoutFile "demo/set_pi.ml", line 1, characters 0-0:diff --git a/_build/default/demo/set_pi.ml b/_build/default/demo/.formatted/set_pi.mlindex 8119c46..e56eb73 100644--- a/_build/default/demo/set_pi.ml+++ b/_build/default/demo/.formatted/set_pi.ml@@ -1,4 +1,5 @@-module Fs_store = Irmin_fs_unix.KV.Make(Irmin.Contents.Json_value)+module Fs_store = Irmin_fs_unix.KV.Make (Irmin.Contents.Json_value)+let commit branch message path contents =let info () = Fs_store.Info.v ~author:"jane doe" ~message 0L inFs_store.set ~info branch path contents@@ -8,8 +9,8 @@ let set_pi env =let conf = Irmin_fs_unix.conf ~path ~clock:env#clock inlet repo = Fs_store.Repo.v conf inlet main = Fs_store.main repo in- let pi = `O ["val", `Float 3.1416] in- let result = commit main "set pi" ["pi"] pi in+ let pi = `O [ ("val", `Float 3.1416) ] in+ let result = commit main "set pi" [ "pi" ] pi inassert (Result.is_ok result)let _ = Eio_main.run set_piFile "src/libirmin/lib/discover.ml", line 1, characters 0-0:diff --git a/_build/default/src/libirmin/lib/discover.ml b/_build/default/src/libirmin/lib/.formatted/discover.mlindex 319f5e1..ab05632 100644--- a/_build/default/src/libirmin/lib/discover.ml+++ b/_build/default/src/libirmin/lib/.formatted/discover.ml@@ -1,16 +1,16 @@let quote s = "\"" ^ s ^ "\""let () =- let uname = Unix.open_process_args_in "uname" [| "uname"; "-s" |] in- let finally () = In_channel.close uname in- let output = Fun.protect ~finally @@ fun () ->- In_channel.input_all uname |> String.trim- in- let flags = match output with- | "Linux" -> ["-ccopt"; "-Wl,-znow"]- | _ -> [] in- let flags = List.map quote flags |> String.concat " " in- Out_channel.with_open_text "link_flags.sexp" (fun oc ->+ let uname = Unix.open_process_args_in "uname" [| "uname"; "-s" |] in+ let finally () = In_channel.close uname in+ let output =+ Fun.protect ~finally @@ fun () -> In_channel.input_all uname |> String.trim+ in+ let flags =+ match output with "Linux" -> [ "-ccopt"; "-Wl,-znow" ] | _ -> []+ in+ let flags = List.map quote flags |> String.concat " " in+ Out_channel.with_open_text "link_flags.sexp" (fun oc ->Out_channel.output_char oc '(';Out_channel.output_string oc flags;Out_channel.output_char oc ')')File "demo/mirage/unikernel.ml", line 1, characters 0-0:diff --git a/_build/default/demo/mirage/unikernel.ml b/_build/default/demo/mirage/.formatted/unikernel.mlindex 73a99e0..949c0b8 100644--- a/_build/default/demo/mirage/unikernel.ml+++ b/_build/default/demo/mirage/.formatted/unikernel.ml@@ -1,6 +1,6 @@-module Make(Stack : Tcpip.Stack.V4V6) = struct+module Make (Stack : Tcpip.Stack.V4V6) = structmodule Tcp = Stack.TCP-+let start stack =let _tcp = Stack.tcp stack inEio_unikraft.run @@ fun env ->File "demo/mirage/bench.ml", line 1, characters 0-0:diff --git a/_build/default/demo/mirage/bench.ml b/_build/default/demo/mirage/.formatted/bench.mlindex 6c493a4..a6aae6b 100644--- a/_build/default/demo/mirage/bench.ml+++ b/_build/default/demo/mirage/.formatted/bench.ml@@ -1,4 +1,3 @@-type t = {ncommits : int;depth : int;@@ -8,22 +7,22 @@ type t = {gc : int;}-let t = {- ncommits = 1000;- depth = 16;- tree_add = 150;- display = 10;- clear = true;- gc = 100;-}+let t =+ {+ ncommits = 1000;+ depth = 16;+ tree_add = 150;+ display = 10;+ clear = true;+ gc = 100;+ }++module Store = Irmin_mem.KV.Make (Irmin.Contents.String)-module Store = Irmin_mem.KV.Make(Irmin.Contents.String)let info () = Store.Info.v ~author:"author" ~message:"commit message" 0Llet times ~n ~init f =- let rec go i k =- if i = 0 then k init else go (i - 1) (fun r -> k (f i r))- in+ let rec go i k = if i = 0 then k init else go (i - 1) (fun r -> k (f i r)) ingo n Fun.idlet path ~depth n =@@ -34,7 +33,6 @@ let path ~depth n =aux [] 0let no_tags x = x-let plot_progress n t = Fmt.epr "\rcommits: %4d/%d%!" n t(* init: create a tree with [t.depth] levels and each levels has@@ -60,8 +58,7 @@ let run config =times ~n:t.ncommits ~init:() (fun i () ->let tree = Store.get_tree v [] inif i mod t.gc = 0 then Gc.full_major ();- if i mod t.display = 0 then (- plot_progress i t.ncommits);+ if i mod t.display = 0 then plot_progress i t.ncommits;let tree =times ~n:t.tree_add ~init:tree (fun n tree ->Store.Tree.add tree paths.(n) (string_of_int i))@@ -73,6 +70,6 @@ let run config =Fmt.epr "\n[run done]\n%!"let main env =- let config = Irmin_mem.config() in+ let config = Irmin_mem.config () ininit config;run configdune build @fmt failed"/usr/bin/env" "bash" "-c" "opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2)" failed with exit status 22026-01-20 15:53.44: Job failed: Failed: Build failed