2026-05-27 10:46.08: New job: test ocaml/odoc https://github.com/ocaml/odoc.git#refs/pull/1439/head (c245e0dcde4d57b6a32f675b801ebcd060981551) (linux-x86_64:(lint-fmt)) Base: ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c ocamlformat version: version 0.27.0 (from opam) To reproduce locally: git clone --recursive "https://github.com/ocaml/odoc.git" && cd "odoc" && git fetch origin "refs/pull/1439/head" && git reset --hard c245e0dc cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c USER 1000:1000 RUN cd ~/opam-repository && (git cat-file -e a4f153d7481c469b20f3b1064338d6a21abcb832 || git fetch origin master) && git reset -q --hard a4f153d7481c469b20f3b1064338d6a21abcb832 && git log --no-decorate -n1 --oneline && opam update -u RUN opam depext -i dune WORKDIR /src RUN opam depext -i ocamlformat=0.27.0 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-05-27 10:46.08: Using cache hint "ocaml/odoc-ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c-debian-13-4.11_opam-2.5-ocamlformat-a4f153d7481c469b20f3b1064338d6a21abcb832" 2026-05-27 10:46.08: Using OBuilder spec: ((from ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c) (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 a4f153d7481c469b20f3b1064338d6a21abcb832 || git fetch origin master) && git reset -q --hard a4f153d7481c469b20f3b1064338d6a21abcb832 && 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-05-27 10:46.08: Waiting for resource in pool OCluster 2026-05-27 10:46.08: Waiting for worker… 2026-05-27 10:46.08: Got resource from pool OCluster Building on phoebe.caelum.ci.dev HEAD is now at dc5e53542 Rework the function for escaping link. HEAD is now at c245e0dcd Rework the function for escaping link. (from ocaml/opam:debian-13-ocaml-4.11@sha256:6c34153b2b07fc0f884e792a60178e250c2d06a45050e01ed0883a67ec11440c) 2026-05-27 10:46.12 ---> using "36abb6db1723167d15c41f53ef05d371444812dc64e2ea7fe109d222db988473" 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 a4f153d7481c469b20f3b1064338d6a21abcb832 || git fetch origin master) && git reset -q --hard a4f153d7481c469b20f3b1064338d6a21abcb832 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD fc08333d1b..d44435513c master -> origin/master a4f153d748 Merge pull request #29889 from mtelvers/opam-publish-ocaml-version.4.1.1 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). The following packages are not being upgraded because the new versions conflict with other installed packages: - ocaml.5.6.0 - ocaml-config.3 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-05-27 10:46.12 ---> using "57933430ce6ee04fd567f281e7ebe5f3ade1880481602bde6f454d0e84e43b4d" from cache /: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam depext -i dune")) Since version 2.1, opam now handles external dependencies alongside OCaml ones, and the `depext` plugin interface is provided for backwards compatibility only. Consider using your usual `opam install` command to install both OCaml and system dependencies, or `opam install <pkg> --depext-only` if you want to only install external dependencies. # Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian # No extra OS packages requirements found. The following actions will be performed: - install dune 3.22.2 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved dune.3.22.2 (cached) -> installed dune.3.22.2 Done. # Run eval $(opam env) to update the current shell environment 2026-05-27 10:46.12 ---> using "0660a7a1aacf9713843c7c8443a91791ddff911339fa457c1ce83edfc713c9b0" 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")) Since version 2.1, opam now handles external dependencies alongside OCaml ones, and the `depext` plugin interface is provided for backwards compatibility only. Consider using your usual `opam install` command to install both OCaml and system dependencies, or `opam install <pkg> --depext-only` if you want to only install external dependencies. # Detecting depexts using vars: arch=x86_64, os=linux, os-distribution=debian, os-family=debian # No extra OS packages requirements found. The following actions will be performed: - install cmdliner 1.3.0 [required by ocamlformat] - 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 csexp 1.5.2 [required by ocamlformat] - install menhirSdk 20260209 [required by ocamlformat-lib] - install menhirGLR 20260209 [required by menhir] - install camlp-streams 5.0.1 [required by ocamlformat-lib] - install dune-build-info 3.22.2 [required by ocamlformat-lib] - install seq base [required by re] - install ocaml-version 4.1.1 [required by ocamlformat-lib] - install fix 20250919 [required by ocamlformat-lib] - install sexplib0 v0.15.1 [required by base] - 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.15.2 [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.15.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 ===== 29 to install ===== <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved astring.0.8.5 (cached) -> retrieved base.v0.15.2 (cached) -> retrieved camlp-streams.5.0.1 (cached) -> retrieved cmdliner.1.3.0 (cached) -> retrieved csexp.1.5.2 (cached) -> retrieved dune-build-info.3.22.2 (cached) -> installed camlp-streams.5.0.1 -> retrieved dune-configurator.3.22.2 (cached) -> retrieved either.1.0.0 (cached) -> installed csexp.1.5.2 -> retrieved fix.20250919 (cached) -> retrieved fpath.0.7.3 (cached) -> retrieved menhir.20260209 (cached) -> retrieved menhirCST.20260209 (cached) -> retrieved menhirGLR.20260209 (cached) -> retrieved menhirLib.20260209 (cached) -> installed cmdliner.1.3.0 -> installed dune-build-info.3.22.2 -> installed dune-configurator.3.22.2 -> installed either.1.0.0 -> installed fix.20250919 -> retrieved menhirSdk.20260209 (cached) -> installed menhirCST.20260209 -> retrieved ocaml-version.4.1.1 (cached) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved ocp-indent.1.9.0 (cached) -> installed menhirGLR.20260209 -> installed menhirLib.20260209 -> retrieved ocamlformat.0.27.0 (cached) -> retrieved seq.base (cached) -> installed seq.base -> installed menhirSdk.20260209 -> installed ocaml-version.4.1.1 -> retrieved ocamlformat-lib.0.27.0 (cached) -> retrieved re.1.11.0 (cached) -> retrieved sexplib0.v0.15.1 (cached) -> retrieved stdio.v0.15.0 (cached) -> retrieved topkg.1.1.1 (cached) -> retrieved uuseg.15.0.0 (cached) -> retrieved uutf.1.0.4 (cached) -> retrieved uucp.15.0.0 (cached) -> installed sexplib0.v0.15.1 -> installed re.1.11.0 -> installed ocamlfind.1.9.8 -> installed ocp-indent.1.9.0 -> installed ocamlbuild.0.16.1 -> installed base.v0.15.2 -> installed stdio.v0.15.0 -> installed menhir.20260209 -> installed topkg.1.1.1 -> 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.27.0 -> installed ocamlformat.0.27.0 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.11/share/emacs/site-lisp") (require 'ocp-indent) * for Vim, add this line to ~/.vimrc: set rtp^="/home/opam/.opam/4.11/share/ocp-indent/vim" # Run eval $(opam env) to update the current shell environment 2026-05-27 10:47.21 ---> saved as "16d8e0e264964e8935758abf505f2235b813e6e7741073ac76e9b8c95e07e6ae" /src: (copy (src .) (dst /src/)) 2026-05-27 10:47.24 ---> saved as "5874bf2ac6254d396225f0872c69f6f3e430b52f3b686896705d4e53291c17a3" /src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")) File "src/parser/syntax.ml", line 1, characters 0-0: diff --git a/_build/default/src/parser/syntax.ml b/_build/default/src/parser/.formatted/syntax.ml index 02c3d24..d5ab787 100644 --- a/_build/default/src/parser/syntax.ml +++ b/_build/default/src/parser/.formatted/syntax.ml @@ -1,4 +1,3 @@ - (* This module is a recursive descent parser for the ocamldoc syntax. The parser consumes a token stream of type [Token.t Stream.t], provided by the lexer, and produces a comment AST of the type defined in [Parser_.Ast]. @@ -173,17 +172,17 @@ let escape_link link = let buf = Buffer.create (String.length link) in let last_state = String.fold_left - (fun acc chr -> - match (acc, chr) with - | `Char, '\\' -> `Backslash - | `Char, _ -> - Buffer.add_char buf chr; - `Char - | (`Backslash | `Escaping), (' ' | '\t' | '\n') -> `Escaping - | (`Backslash | `Escaping), _ -> - Buffer.add_char buf chr; - `Char) - `Char link + (fun acc chr -> + match (acc, chr) with + | `Char, '\\' -> `Backslash + | `Char, _ -> + Buffer.add_char buf chr; + `Char + | (`Backslash | `Escaping), (' ' | '\t' | '\n') -> `Escaping + | (`Backslash | `Escaping), _ -> + Buffer.add_char buf chr; + `Char) + `Char link in let () = match last_state with File "test/model/semantics/test.ml", line 1, characters 0-0: diff --git a/_build/default/test/model/semantics/test.ml b/_build/default/test/model/semantics/.formatted/test.ml index e9c739b..70f2177 100644 --- a/_build/default/test/model/semantics/test.ml +++ b/_build/default/test/model/semantics/.formatted/test.ml @@ -691,7 +691,8 @@ let%expect_test _ = {"value":[{"`Heading":[{"heading_level":"`Subsection","heading_label_explicit":"false"},{"`Label":[{"`Page":["None","f.ml"]},""]},[{"`Link":["foo",[]]}]]}],"warnings":[]} |}] let multilines_link_in_markup = - test {|{{:https://github.com/ocaml/\ + test + {|{{:https://github.com/ocaml/\ odoc/\ issues/\ 865\ }this issue}|}; 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-05-27 10:47.26: Job failed: Failed: Build failed