2026-04-30 15:51.46: New job: test ocsigen/ocsigen-dune-rules https://github.com/ocsigen/ocsigen-dune-rules.git#refs/heads/modernize (a16e8ab0085591082c86497fd69c8ff5a5572958) (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/ocsigen/ocsigen-dune-rules.git" -b "modernize" && cd "ocsigen-dune-rules" && git reset --hard a16e8ab0 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-30 15:51.46: Using cache hint "ocsigen/ocsigen-dune-rules-ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c-debian-13-4.08_opam-2.5-ocamlformat-9a427a5cdc1d87c781d8e9febed953e2fd5640c2" 2026-04-30 15:51.46: 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-30 15:51.46: Waiting for resource in pool OCluster 2026-04-30 15:51.46: Waiting for worker… 2026-04-30 15:51.46: Got resource from pool OCluster Building on bremusa.ocamllabs.io All commits already cached HEAD is now at a16e8ab Add --internal-prefix, --subdir, --server-objs-dir options to gen (from ocaml/opam:debian-13-ocaml-4.08@sha256:3cbf0e68d3a718b80b9a2ab282b68bb62badcbc072fa014a5564516c5f70e74c) 2026-04-30 15:52.24 ---> saved as "228e5ba11f0bea08c69266bb98d12a75785691261b07b0808652a307a04e14b2" /: (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..6eba819fc9 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-30 15:53.27 ---> saved as "55207f8077d4ca8ea777cfe81c5bb0b4cfe243a94bc9f38e3494087a2b0a025d" /: (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-30 15:54.00 ---> 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 cmdliner.2.1.1 -> installed menhirCST.20260209 -> installed menhirGLR.20260209 -> 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-30 15:55.00 ---> saved as "59dc13ea7fa7c16a986ee17e7ad077cba29ee0c7fca32664e872db137a56ec7b" /src: (copy (src .) (dst /src/)) 2026-04-30 15:55.00 ---> saved as "7d43f2d84ab3935059e274be3459f69c72ddd543f4211671ffe31497bb08933e" /src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)")) File "ocsigen-dune-rules/gen_rules.ml", line 1, characters 0-0: diff --git a/_build/default/ocsigen-dune-rules/gen_rules.ml b/_build/default/ocsigen-dune-rules/.formatted/gen_rules.ml index e545db2..cac8c55 100644 --- a/_build/default/ocsigen-dune-rules/gen_rules.ml +++ b/_build/default/ocsigen-dune-rules/.formatted/gen_rules.ml @@ -1,6 +1,5 @@ let pf = Printf.printf let spf = Printf.sprintf - let extra_ppx_args = ref [] let subdir_name = ref "" let server_objs_dir = ref "" @@ -10,8 +9,8 @@ let gen_eliom_ppx_rule ~target ~input ~args = [-loc-filename] to be used in error messages. *) let all_args = !extra_ppx_args @ args in let target, input_dep = - if !subdir_name = "" then target, input - else spf "%s/%s" !subdir_name target, input + if !subdir_name = "" then (target, input) + else (spf "%s/%s" !subdir_name target, input) in if !subdir_name <> "" then pf @@ -31,7 +30,9 @@ let gen_eliom_ppx_rule ~target ~input ~args = (chdir %%{workspace_root} (run ocsigen-ppx-client -as-pp -loc-filename %%{dep:%s} %s %%{dep:%s})))) |} - target input_dep (String.concat " " all_args) input_dep + target input_dep + (String.concat " " all_args) + input_dep let gen_rule_for_module ~server_rel_prefix ~impl fname = let target = Filename.basename fname in @@ -42,21 +43,19 @@ let gen_rule_for_module ~server_rel_prefix ~impl fname = let args = if impl then let server_cmo = - if !server_objs_dir <> "" - then + if !server_objs_dir <> "" then let module_base = Filename.basename fname_no_ext in let cap_name = String.capitalize_ascii module_base in let prefix = - if !subdir_name <> "" - then String.lowercase_ascii !subdir_name ^ "__" + if !subdir_name <> "" then + String.lowercase_ascii !subdir_name ^ "__" else "" in let cmo_from_dune_dir = spf "%s/%s%s.cmo" !server_objs_dir prefix cap_name in let cmo_path = - if !subdir_name <> "" - then spf "../%s" cmo_from_dune_dir + if !subdir_name <> "" then spf "../%s" cmo_from_dune_dir else cmo_from_dune_dir in spf "%%{dep:%s}" cmo_path @@ -64,8 +63,8 @@ let gen_rule_for_module ~server_rel_prefix ~impl fname = let server_cmo = Filename.concat server_rel_prefix fname_no_ext in spf "%%{cmo:%s}" server_cmo in - ["--impl"; "-server-cmo"; server_cmo] - else ["--intf"] + [ "--impl"; "-server-cmo"; server_cmo ] + else [ "--intf" ] in gen_eliom_ppx_rule ~target ~input ~args File "ocsigen-dune-rules/main.ml", line 1, characters 0-0: diff --git a/_build/default/ocsigen-dune-rules/main.ml b/_build/default/ocsigen-dune-rules/.formatted/main.ml index a49a52c..d9461e4 100644 --- a/_build/default/ocsigen-dune-rules/main.ml +++ b/_build/default/ocsigen-dune-rules/.formatted/main.ml @@ -3,11 +3,9 @@ open Cmdliner module Gen = struct let run internal_prefix subdir server_objs_dir dir = (match internal_prefix with - | Some p -> Gen_rules.extra_ppx_args := ["-internal-prefix"; p] - | None -> ()); - (match subdir with - | Some s -> Gen_rules.subdir_name := s + | Some p -> Gen_rules.extra_ppx_args := [ "-internal-prefix"; p ] | None -> ()); + (match subdir with Some s -> Gen_rules.subdir_name := s | None -> ()); (match server_objs_dir with | Some d -> Gen_rules.server_objs_dir := d | None -> ()); @@ -27,34 +25,31 @@ module Gen = struct Arg.( value & opt (some string) None - & info ~doc ~docv:"PREFIX" ["internal-prefix"]) + & info ~doc ~docv:"PREFIX" [ "internal-prefix" ]) let arg_subdir = let doc = "Put generated files in $(docv)/ subdirectory (for include_subdirs \ qualified)." in - Arg.(value & opt (some string) None & info ~doc ~docv:"DIR" ["subdir"]) + Arg.(value & opt (some string) None & info ~doc ~docv:"DIR" [ "subdir" ]) let arg_server_objs_dir = let doc = "Use direct paths to server .cmo files in $(docv) instead of \ %%{cmo:...}. $(docv) is the path to the server library's .objs/byte/ \ - directory, relative to the dune file. The module prefix is derived \ - from --subdir." + directory, relative to the dune file. The module prefix is derived from \ + --subdir." in Arg.( value & opt (some string) None - & info ~doc ~docv:"DIR" ["server-objs-dir"]) + & info ~doc ~docv:"DIR" [ "server-objs-dir" ]) let cmd = let term = Term.( - const run - $ arg_internal_prefix - $ arg_subdir - $ arg_server_objs_dir + const run $ arg_internal_prefix $ arg_subdir $ arg_server_objs_dir $ arg_dir) in let doc = "Generate dune rules to stdout." in @@ -73,7 +68,7 @@ module Check_modules = struct Arg.( required & opt (some string) None - & info ~doc ~docv:"APP_NAME.cma" ["server"]) + & info ~doc ~docv:"APP_NAME.cma" [ "server" ]) let arg_client = let doc = @@ -83,7 +78,7 @@ module Check_modules = struct Arg.( required & opt (some string) None - & info ~doc ~docv:"client/APP_NAME.bc" ["client"]) + & info ~doc ~docv:"client/APP_NAME.bc" [ "client" ]) let cmd = let term = Term.(const run $ arg_server $ arg_client) in @@ -99,6 +94,6 @@ let cmd = "Generate dune rules for building an ocsigen application or library." in let info = Cmd.info "ocsigen-dune-rules" ~version:"%%VERSION%%" ~doc in - Cmd.group info [Gen.cmd; Check_modules.cmd] + Cmd.group info [ Gen.cmd; Check_modules.cmd ] let () = exit (Cmd.eval cmd) 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-30 15:55.00: Job failed: Failed: Build failed