2026-04-28 15:56.37: New job: test mirage/irmin https://github.com/mirage/irmin.git#refs/pull/2390/head (57ba56d9180c5b3f0cdb83556c48323a8742df48) (linux-x86_64:(lint-fmt)) Base: ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c ocamlformat version: version 0.28.1 (from opam) To reproduce locally: git clone --recursive "https://github.com/mirage/irmin.git" && cd "irmin" && git fetch origin "refs/pull/2390/head" && git reset --hard 57ba56d9 cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c USER 1000:1000 RUN cd ~/opam-repository && (git cat-file -e 9a427a5cdc1d87c781d8e9febed953e2fd5640c2 || git fetch origin master) && git reset -q --hard 9a427a5cdc1d87c781d8e9febed953e2fd5640c2 && git log --no-decorate -n1 --oneline && opam update -u RUN opam depext -i dune WORKDIR /src RUN opam depext -i ocamlformat=0.28.1 COPY --chown=1000:1000 . /src/ RUN opam exec -- dune build @fmt --ignore-promoted-rules || (echo "dune build @fmt failed"; exit 2) END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2026-04-28 15:56.37: Using cache hint "mirage/irmin-ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c-debian-13-4.08_opam-2.5-ocamlformat-9a427a5cdc1d87c781d8e9febed953e2fd5640c2" 2026-04-28 15:56.37: Using OBuilder spec: ((from ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c) (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 9a427a5cdc1d87c781d8e9febed953e2fd5640c2 || git fetch origin master) && git reset -q --hard 9a427a5cdc1d87c781d8e9febed953e2fd5640c2 && 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.28.1")) (copy (src .) (dst /src/)) (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")) ) 2026-04-28 15:56.37: Waiting for resource in pool OCluster 2026-04-28 16:10.30: Waiting for worker… 2026-04-28 16:13.18: Got resource from pool OCluster Building on phoebe.caelum.ci.dev All commits already cached HEAD is now at 57ba56d918 Formatting (from ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c) Unable to find image 'ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c' locally docker.io/ocaml/opam@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c: Pulling from ocaml/opam a7730063fcfe: Already exists 1a27fd2181de: Pulling fs layer c29591c91388: Pulling fs layer 356a64daa753: Pulling fs layer 1a27fd2181de: Waiting ac02f8f2062b: Pulling fs layer c29591c91388: Waiting aaa2f390e4c8: Pulling fs layer 356a64daa753: Waiting b668811757f6: Pulling fs layer aaa2f390e4c8: Waiting 32fd4e1a774f: Pulling fs layer b668811757f6: Waiting b1d486fb8fdf: Pulling fs layer 32fd4e1a774f: Waiting cf8a2024f299: Pulling fs layer b1d486fb8fdf: Waiting 8c4a5dac67c3: Pulling fs layer cf8a2024f299: Waiting 6adfe24d7b40: Pulling fs layer 8c4a5dac67c3: Waiting dccd6e3c0589: Pulling fs layer 6adfe24d7b40: Waiting 2ee4bcb55cd4: Pulling fs layer dccd6e3c0589: Waiting 2dc3b58478d7: Pulling fs layer daf15e5c44c6: Pulling fs layer 2ee4bcb55cd4: Waiting 2dc3b58478d7: Waiting 564e978a8088: Pulling fs layer daf15e5c44c6: Waiting 564e978a8088: Waiting 25a652a8c456: Pulling fs layer b3bfea7bff3f: Pulling fs layer a00f2937f570: Pulling fs layer 25a652a8c456: Waiting b3bfea7bff3f: Waiting 78bd1737ebff: Pulling fs layer a00f2937f570: Waiting 4f4fb700ef54: Pulling fs layer 4291a055edd7: Pulling fs layer 3c2b2836d59a: Pulling fs layer 4f4fb700ef54: Waiting 78bd1737ebff: Waiting 7b3e96544a52: Pulling fs layer 4291a055edd7: Waiting 3c2b2836d59a: Waiting c72503effb14: Pulling fs layer 7b3e96544a52: Waiting bca08df11a10: Pulling fs layer c72503effb14: Waiting 2ab0829b2daf: Pulling fs layer bca08df11a10: Waiting 1d246d4da211: Pulling fs layer 2ab0829b2daf: Waiting a09cb4870027: Pulling fs layer 1d246d4da211: Waiting 2ce07b4fe7c0: Pulling fs layer a09cb4870027: Waiting 6b96f28d505e: Pulling fs layer 2ce07b4fe7c0: Waiting b6ad36bba9bf: Pulling fs layer 6b96f28d505e: Waiting 56d62791a0f9: Pulling fs layer b6ad36bba9bf: Waiting 4d60780055d1: Pulling fs layer 56d62791a0f9: Waiting 43f57a7c44cb: Pulling fs layer 4d60780055d1: Waiting f21057dc4e85: Pulling fs layer 43f57a7c44cb: Waiting e0d2ca1300ed: Pulling fs layer f21057dc4e85: Waiting 9da2f7598f8e: Pulling fs layer e0d2ca1300ed: Waiting 9da2f7598f8e: Waiting cb569bb28593: Pulling fs layer b32c9abef0bb: Pulling fs layer dd7da3e42740: Pulling fs layer cb569bb28593: Waiting b32c9abef0bb: Waiting 06223904e4d3: Pulling fs layer dd7da3e42740: Waiting b18a38618cf8: Pulling fs layer 06223904e4d3: Waiting b18a38618cf8: Waiting 1a27fd2181de: Verifying Checksum 1a27fd2181de: Download complete 1a27fd2181de: Pull complete c29591c91388: Download complete c29591c91388: Pull complete 356a64daa753: Verifying Checksum 356a64daa753: Download complete ac02f8f2062b: Verifying Checksum ac02f8f2062b: Download complete 356a64daa753: Pull complete ac02f8f2062b: Pull complete aaa2f390e4c8: Verifying Checksum aaa2f390e4c8: Download complete b668811757f6: Verifying Checksum b668811757f6: Download complete 32fd4e1a774f: Verifying Checksum 32fd4e1a774f: Download complete b1d486fb8fdf: Verifying Checksum b1d486fb8fdf: Download complete cf8a2024f299: Verifying Checksum cf8a2024f299: Download complete 8c4a5dac67c3: Verifying Checksum 8c4a5dac67c3: Download complete 6adfe24d7b40: Verifying Checksum 6adfe24d7b40: Download complete 2ee4bcb55cd4: Download complete dccd6e3c0589: Verifying Checksum dccd6e3c0589: Download complete 2dc3b58478d7: Verifying Checksum 2dc3b58478d7: Download complete daf15e5c44c6: Verifying Checksum daf15e5c44c6: Download complete 564e978a8088: Verifying Checksum 564e978a8088: Download complete 25a652a8c456: Verifying Checksum 25a652a8c456: Download complete b3bfea7bff3f: Verifying Checksum b3bfea7bff3f: Download complete a00f2937f570: Verifying Checksum a00f2937f570: Download complete 78bd1737ebff: Verifying Checksum 78bd1737ebff: Download complete 4f4fb700ef54: Download complete 4291a055edd7: Verifying Checksum 4291a055edd7: Download complete 3c2b2836d59a: Verifying Checksum 3c2b2836d59a: Download complete 7b3e96544a52: Download complete c72503effb14: Verifying Checksum c72503effb14: Download complete bca08df11a10: Verifying Checksum bca08df11a10: Download complete 2ab0829b2daf: Verifying Checksum 2ab0829b2daf: Download complete 1d246d4da211: Download complete a09cb4870027: Verifying Checksum a09cb4870027: Download complete 6b96f28d505e: Download complete 2ce07b4fe7c0: Download complete 56d62791a0f9: Verifying Checksum 56d62791a0f9: Download complete b6ad36bba9bf: Verifying Checksum b6ad36bba9bf: Download complete 43f57a7c44cb: Verifying Checksum 43f57a7c44cb: Download complete aaa2f390e4c8: Pull complete b668811757f6: Pull complete 32fd4e1a774f: Pull complete b1d486fb8fdf: Pull complete cf8a2024f299: Pull complete 8c4a5dac67c3: Pull complete 6adfe24d7b40: Pull complete dccd6e3c0589: Pull complete 2ee4bcb55cd4: Pull complete 2dc3b58478d7: Pull complete daf15e5c44c6: Pull complete 564e978a8088: Pull complete e0d2ca1300ed: Download complete 9da2f7598f8e: Verifying Checksum 9da2f7598f8e: Download complete cb569bb28593: Download complete 25a652a8c456: Pull complete b3bfea7bff3f: Pull complete a00f2937f570: Pull complete 78bd1737ebff: Pull complete 4f4fb700ef54: Pull complete 4291a055edd7: Pull complete 3c2b2836d59a: Pull complete 7b3e96544a52: Pull complete c72503effb14: Pull complete bca08df11a10: Pull complete 2ab0829b2daf: Pull complete 1d246d4da211: Pull complete a09cb4870027: Pull complete 2ce07b4fe7c0: Pull complete 6b96f28d505e: Pull complete b6ad36bba9bf: Pull complete 56d62791a0f9: Pull complete f21057dc4e85: Verifying Checksum f21057dc4e85: Download complete dd7da3e42740: Verifying Checksum dd7da3e42740: Download complete 06223904e4d3: Verifying Checksum 06223904e4d3: Download complete b18a38618cf8: Download complete b32c9abef0bb: Verifying Checksum b32c9abef0bb: Download complete 4d60780055d1: Verifying Checksum 4d60780055d1: Download complete 4d60780055d1: Pull complete 43f57a7c44cb: Pull complete f21057dc4e85: Pull complete e0d2ca1300ed: Pull complete 9da2f7598f8e: Pull complete cb569bb28593: Pull complete b32c9abef0bb: Pull complete dd7da3e42740: Pull complete 06223904e4d3: Pull complete b18a38618cf8: Pull complete Digest: sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c Status: Downloaded newer image for ocaml/opam@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c 2026-04-28 16:13.23 ---> using "228e5ba11f0bea08c69266bb98d12a75785691261b07b0808652a307a04e14b2" 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 9a427a5cdc1d87c781d8e9febed953e2fd5640c2 || git fetch origin master) && git reset -q --hard 9a427a5cdc1d87c781d8e9febed953e2fd5640c2 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD 42844088d7..0d8fa4e278 master -> origin/master 9a427a5cdc Merge pull request #29742 from nmatschke/opam-publish-base.v0.14.4 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] Initialised default (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 environment 2026-04-28 16:13.23 ---> using "55207f8077d4ca8ea777cfe81c5bb0b4cfe243a94bc9f38e3494087a2b0a025d" 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 packages The following actions will be performed: - install dune 3.22.2 <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> [dune.3.22.2] found in cache <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> installed dune.3.22.2 Done. # Run eval $(opam env) to update the current shell environment 2026-04-28 16:13.45 ---> saved as "205191a7b54ce074267c88bea92111408bb60945a5ee017f331e2ec05331c341" /: (workdir /src) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam depext -i ocamlformat=0.28.1")) # 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 packages The following actions will be performed: - install dune-build-info 3.22.2 [required by ocamlformat-lib] - install sexplib0 v0.14.0 [required by base] - install ocamlbuild 0.16.1 [required by fpath, astring, uuseg] - install either 1.0.0 [required by ocamlformat-lib] - install menhirLib 20260209 [required by ocamlformat-lib] - install ocaml-version 4.1.0 [required by ocamlformat-lib] - install csexp 1.5.2 [required by ocamlformat] - install menhirSdk 20260209 [required by ocamlformat-lib] - install menhirGLR 20260209 [required by menhir] - install cmdliner 2.1.1 [required by ocamlformat] - install camlp-streams 5.0.1 [required by ocamlformat-lib] - install seq base [required by re] - install fix 20250919 [required by ocamlformat-lib] - install ocamlfind 1.9.8 [required by ocp-indent, astring, fpath, uuseg] - install menhirCST 20260209 [required by menhir] - install dune-configurator 3.22.2 [required by base] - install re 1.11.0 [required by ocamlformat] - install topkg 1.1.1 [required by fpath, astring, uuseg] - install ocp-indent 1.9.0 [required by ocamlformat-lib] - install menhir 20260209 [required by ocamlformat-lib] - install base v0.14.4 [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.28.1 [required by ocamlformat] - install ocamlformat 0.28.1 ===== 29 to install ===== <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> [astring.0.8.5] found in cache [base.v0.14.4] found in cache [camlp-streams.5.0.1] found in cache [cmdliner.2.1.1] found in cache [csexp.1.5.2] found in cache [dune-build-info.3.22.2] found in cache [dune-configurator.3.22.2] found in cache [either.1.0.0] found in cache [fix.20250919] found in cache [fpath.0.7.3] found in cache [menhir.20260209] found in cache [menhirCST.20260209] found in cache [menhirGLR.20260209] found in cache [menhirLib.20260209] found in cache [menhirSdk.20260209] found in cache [ocaml-version.4.1.0] found in cache [ocamlbuild.0.16.1] found in cache [ocamlfind.1.9.8] found in cache [ocamlformat.0.28.1] found in cache [ocamlformat-lib.0.28.1] 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 dune-build-info.3.22.2 -> installed either.1.0.0 -> installed fix.20250919 -> installed menhirCST.20260209 -> installed menhirGLR.20260209 -> installed cmdliner.2.1.1 -> installed menhirLib.20260209 -> installed menhirSdk.20260209 -> installed ocaml-version.4.1.0 -> installed re.1.11.0 -> installed sexplib0.v0.14.0 -> installed dune-configurator.3.22.2 -> installed ocamlfind.1.9.8 -> installed ocamlbuild.0.16.1 -> installed ocp-indent.1.9.0 -> installed base.v0.14.4 -> installed menhir.20260209 -> 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 uucp.15.0.0 -> installed uuseg.15.0.0 -> installed ocamlformat-lib.0.28.1 -> installed ocamlformat.0.28.1 Done. <><> 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 environment 2026-04-28 16:15.15 ---> saved as "59dc13ea7fa7c16a986ee17e7ad077cba29ee0c7fca32664e872db137a56ec7b" /src: (copy (src .) (dst /src/)) 2026-04-28 16:15.24 ---> saved as "d4c68e882c789e119e6dd0f5e80c14b84d0d4203af1081c3807c0e284a15b9cb" /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 "src/irmin/node.ml", line 1, characters 0-0: diff --git a/_build/default/src/irmin/node.ml b/_build/default/src/irmin/.formatted/node.ml index 2d0f1fd..c4bb9d4 100644 --- a/_build/default/src/irmin/node.ml +++ b/_build/default/src/irmin/.formatted/node.ml @@ -163,9 +163,9 @@ struct |~ case1 "contents" contents_key_t (fun h -> `Contents (h, Metadata.default)) |~ case1 "contents-x" (pair contents_key_t Metadata.t) (fun (h, m) -> - `Contents (h, m)) + `Contents (h, m)) |~ case1 "contents-inlined" (pair string Metadata.t) (fun (v, m) -> - `Contents_inlined (v, m)) + `Contents_inlined (v, m)) |> sealv let to_entry (k, (v : value)) = @@ -295,34 +295,32 @@ struct let entries : Hash_preimage.t = StepMap.to_seq t |> Seq.map (fun (_, v) -> - match v with - (* Weaken keys to hashes *) - | Node { name; node; inlined } -> - Hash_preimage.Node_hash - { - name; - node = Node_key.to_hash node; - inlined = List.map Contents_key.to_hash inlined; - } - | Contents { name; contents } -> - Contents_hash - { name; contents = Contents_key.to_hash contents } - | Contents_m { metadata; name; contents } -> - Contents_m_hash - { metadata; name; contents = Contents_key.to_hash contents } - | Node_hash { name; node; inlined } -> - Node_hash { name; node; inlined } - | Contents_hash { name; contents } -> - Contents_hash { name; contents } - | Contents_m_hash { metadata; name; contents } -> - Contents_m_hash { metadata; name; contents } - | Contents_inlined { name; contents } -> - Contents_inlined_hash - { name; contents = Contents_key.to_hash contents } - | Contents_inlined_hash { name; contents } -> - Contents_inlined_hash { name; contents } - | Contents_inlined_value { name; value; metadata } -> - Contents_inlined_value { name; value; metadata }) + match v with + (* Weaken keys to hashes *) + | Node { name; node; inlined } -> + Hash_preimage.Node_hash + { + name; + node = Node_key.to_hash node; + inlined = List.map Contents_key.to_hash inlined; + } + | Contents { name; contents } -> + Contents_hash { name; contents = Contents_key.to_hash contents } + | Contents_m { metadata; name; contents } -> + Contents_m_hash + { metadata; name; contents = Contents_key.to_hash contents } + | Node_hash { name; node; inlined } -> + Node_hash { name; node; inlined } + | Contents_hash { name; contents } -> Contents_hash { name; contents } + | Contents_m_hash { metadata; name; contents } -> + Contents_m_hash { metadata; name; contents } + | Contents_inlined { name; contents } -> + Contents_inlined_hash + { name; contents = Contents_key.to_hash contents } + | Contents_inlined_hash { name; contents } -> + Contents_inlined_hash { name; contents } + | Contents_inlined_value { name; value; metadata } -> + Contents_inlined_value { name; value; metadata }) |> Seq.fold_left (fun xs x -> x :: xs) [] in pre_hash entries f @@ -844,8 +842,8 @@ module V1 (N : Generic_key.S with type step = string) = struct | `Contents (_, x) when not (is_default x) -> Some x | _ -> None) |+ field "node" (option Node_key.t) (function - | `Node (n, _) -> Some n - | _ -> None) + | `Node (n, _) -> Some n + | _ -> None) |> sealr let t : t Type.t = File "src/irmin-pack/io/store.ml", line 1, characters 0-0: diff --git a/_build/default/src/irmin-pack/io/store.ml b/_build/default/src/irmin-pack/io/.formatted/store.ml index e6f974e..9dca7b9 100644 --- a/_build/default/src/irmin-pack/io/store.ml +++ b/_build/default/src/irmin-pack/io/.formatted/store.ml @@ -576,12 +576,12 @@ struct let () = preds |> List.filter_map (function - | s, `Contents h -> Some (s, `Contents (XKey.to_hash h)) - | s, `Inode h -> Some (s, `Inode (XKey.to_hash h)) - | s, `Node (h, _il) -> Some (s, `Node (XKey.to_hash h)) - | _, `Contents_inlined _ -> - (* Inlined contents don't have their own key *) - None) + | s, `Contents h -> Some (s, `Contents (XKey.to_hash h)) + | s, `Inode h -> Some (s, `Inode (XKey.to_hash h)) + | s, `Node (h, _il) -> Some (s, `Node (XKey.to_hash h)) + | _, `Contents_inlined _ -> + (* Inlined contents don't have their own key *) + None) |> Stats.visit_node t (XKey.to_hash k) ~width ~nb_children in List.filter_map File "src/irmin-graphql/server.ml", line 1, characters 0-0: diff --git a/_build/default/src/irmin-graphql/server.ml b/_build/default/src/irmin-graphql/.formatted/server.ml index e1acb20..3dd871d 100644 --- a/_build/default/src/irmin-graphql/server.ml +++ b/_build/default/src/irmin-graphql/.formatted/server.ml @@ -427,17 +427,15 @@ struct ~resolve:(fun _ (tree, tree_path) -> Store.Tree.list tree Store.Path.empty |> List.map (fun (step, tree) -> - let absolute_path = - Store.Path.rcons tree_path step - in - match Store.Tree.destruct tree with - | `Contents (c, m) -> - let c = Store.Tree.Contents.force_exn c in - let f = Lazy.force contents_as_node in - f (c, m, absolute_path) - | `Node _ -> - let f = Lazy.force tree_as_node in - f (tree, absolute_path))); + let absolute_path = Store.Path.rcons tree_path step in + match Store.Tree.destruct tree with + | `Contents (c, m) -> + let c = Store.Tree.Contents.force_exn c in + let f = Lazy.force contents_as_node in + f (c, m, absolute_path) + | `Node _ -> + let f = Lazy.force tree_as_node in + f (tree, absolute_path))); ])) in let branch = File "src/irmin/tree.ml", line 1, characters 0-0: diff --git a/_build/default/src/irmin/tree.ml b/_build/default/src/irmin/.formatted/tree.ml index 09187c5..4d677b9 100644 --- a/_build/default/src/irmin/tree.ml +++ b/_build/default/src/irmin/.formatted/tree.ml @@ -1020,19 +1020,19 @@ module Make (P : Backend.S) = struct let must_build_portable_node = bindings |> Seq.exists (fun (_, v) -> - match v with - | `Node (n, _il) -> Option.is_none (cached_key n) - | `Contents (c, _) -> Option.is_none (Contents.cached_key c)) + match v with + | `Node (n, _il) -> Option.is_none (cached_key n) + | `Contents (c, _) -> Option.is_none (Contents.cached_key c)) in if must_build_portable_node then let pnode = let seq = bindings |> Seq.map (fun (step, v) -> - match v with - | `Contents (c, m) -> (step, `Contents (Contents.hash c, m)) - | `Node (n, _il) -> - hash ~cache n (fun k -> (step, `Node (k, [])))) + match v with + | `Contents (c, m) -> (step, `Contents (Contents.hash c, m)) + | `Node (n, _il) -> + hash ~cache n (fun k -> (step, `Node (k, [])))) in Portable.of_seq seq [] in @@ -1042,19 +1042,19 @@ module Make (P : Backend.S) = struct let seq = bindings |> Seq.map (fun (step, v) -> - match v with - | `Contents (c, m) -> ( - match Contents.cached_key c with - | Some k -> (step, `Contents (k, m)) - | None -> - (* We checked that all child keys are cached above *) - assert false) - | `Node (n, _il) -> ( - match cached_key n with - | Some k -> (step, `Node (k, [])) - | None -> - (* We checked that all child keys are cached above *) - assert false)) + match v with + | `Contents (c, m) -> ( + match Contents.cached_key c with + | Some k -> (step, `Contents (k, m)) + | None -> + (* We checked that all child keys are cached above *) + assert false) + | `Node (n, _il) -> ( + match cached_key n with + | Some k -> (step, `Node (k, [])) + | None -> + (* We checked that all child keys are cached above *) + assert false)) in P.Node.Val.of_seq seq [] in @@ -2287,29 +2287,29 @@ module Make (P : Backend.S) = struct Atomic.incr cnt.node_val_v; StepMap.to_seq x |> Seq.filter_map (fun (step, v) -> - match v with - | `Node (n, _il) -> ( - match Node.cached_key n with - | Some k -> Some (step, `Node (k, [])) - | None -> - assertion_failure - "Encountered child node value with uncached key \ - during export:@,\ - @ @[%a@]" - dump v) - | `Contents (c, m) -> ( - (* Check if contents should be inlined at export time *) - match should_inline_contents c with - | Some bytes -> Some (step, `Contents_inlined (bytes, m)) - | None -> ( - match Contents.cached_key c with - | Some k -> Some (step, `Contents (k, m)) - | None -> - assertion_failure - "Encountered child contents value with uncached \ - key during export:@,\ - @ @[%a@]" - dump v))) + match v with + | `Node (n, _il) -> ( + match Node.cached_key n with + | Some k -> Some (step, `Node (k, [])) + | None -> + assertion_failure + "Encountered child node value with uncached key during \ + export:@,\ + @ @[%a@]" + dump v) + | `Contents (c, m) -> ( + (* Check if contents should be inlined at export time *) + match should_inline_contents c with + | Some bytes -> Some (step, `Contents_inlined (bytes, m)) + | None -> ( + match Contents.cached_key c with + | Some k -> Some (step, `Contents (k, m)) + | None -> + assertion_failure + "Encountered child contents value with uncached key \ + during export:@,\ + @ @[%a@]" + dump v))) in let _, to_inline = List.split to_inline in let node = P.Node.Val.of_seq node_seq to_inline in dune 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 2 2026-04-28 16:15.30: Job failed: Failed: Build failed