Build:
  1. 1
  2. 0
2024-04-28 23:05.05: New job: test edwintorok/lintcstubs https://github.com/edwintorok/lintcstubs.git#refs/heads/genrules2maybe (5ad39bc5fcd21a8fecf2734813541f216e0cd0f0) (linux-x86_64:(lint-fmt))
Base: ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480
ocamlformat version: version 0.26.1 (from opam)

To reproduce locally:

git clone --recursive "https://github.com/edwintorok/lintcstubs.git" -b "genrules2maybe" && cd "lintcstubs" && git reset --hard 5ad39bc5
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480
USER 1000:1000
RUN cd ~/opam-repository && (git cat-file -e a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2 || git fetch origin master) && git reset -q --hard a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2 && git log --no-decorate -n1 --oneline && opam update -u
RUN opam depext -i dune
WORKDIR /src
RUN opam depext -i ocamlformat=0.26.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

2024-04-28 23:05.05: Using cache hint "edwintorok/lintcstubs-ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480-debian-12-4.08_opam-2.1-ocamlformat-a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2"
2024-04-28 23:05.05: Using OBuilder spec:
((from ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480)
 (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 a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2 || git fetch origin master) && git reset -q --hard a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2 && 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.26.1"))
 (copy (src .) (dst /src/))
 (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))
)

2024-04-28 23:05.05: Waiting for resource in pool OCluster
2024-04-28 23:05.05: Waiting for worker…
2024-04-28 23:10.52: Got resource from pool OCluster
Building on x86-bm-c4.sw.ocaml.org
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint: 	git branch -m <name>
Initialized empty Git repository in /var/cache/obuilder/ocluster/git/lintcstubs.git-9c1be3799dfbf793f232fc1d21c51702c5b57272/.git/
HEAD is now at 5ad39bc doesnotwor

(from ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480)
Unable to find image 'ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480' locally
docker.io/ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480: Pulling from ocaml/opam
1a743107bfdb: Pulling fs layer
1a743107bfdb: Verifying Checksum
1a743107bfdb: Download complete
1a743107bfdb: Pull complete
Digest: sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480
Status: Downloaded newer image for ocaml/opam@sha256:e30e92a245a5f284471a3437bd6b19ebfb9ae067e380416fd178b1f6c2290480
2024-04-28 23:12.49 ---> saved as "ca7a47bb337547622343e1e691b0c92596d0990b9ed28342fd47c7204c2b0a74"

/: (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 a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2 || git fetch origin master) && git reset -q --hard a78d61bd5a5f9e1aa605a46b9dd8ea1fe39046f2 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
 * branch                  master     -> FETCH_HEAD
   4bb8cb8b65..13fb16b0ed  master     -> origin/master
a78d61bd5a ocaml-version 3.6.7

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from file:///home/opam/opam-repository
default (at file:///home/opam/opam-repository): 
    [INFO] opam 2.1 includes many performance 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
2024-04-28 23:14.09 ---> saved as "f222038aa0f02f6becd49cb405146e368f1697bc0a30d8a21b233972fa6ef725"

/: (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.15.0

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[dune.3.15.0] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed dune.3.15.0
Done.
# Run eval $(opam env) to update the current shell environment
2024-04-28 23:15.08 ---> saved as "3cd9177244aa60d8f9e524cb6bd567d04a1db09d2fdf8b02a3e9b8ea1db02d0b"

/: (workdir /src)

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "opam depext -i ocamlformat=0.26.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 sexplib0          v0.14.0  [required by base]
  - install ocamlbuild        0.14.3   [required by fpath, astring, uuseg]
  - install menhirCST         20231231 [required by menhir]
  - install dune-build-info   3.15.0   [required by ocamlformat-lib]
  - install either            1.0.0    [required by ocamlformat-lib]
  - install cmdliner          1.2.0    [required by ocamlformat]
  - install menhirSdk         20231231 [required by ocamlformat-lib]
  - install ocamlfind         1.9.6    [required by ocp-indent, astring, fpath, uuseg]
  - install menhirLib         20231231 [required by ocamlformat-lib]
  - install result            1.5      [required by ocamlformat-lib]
  - install seq               base     [required by re]
  - install csexp             1.5.2    [required by ocamlformat-lib]
  - install ocaml-version     3.6.7    [required by ocamlformat-lib]
  - install camlp-streams     5.0.1    [required by ocamlformat-lib]
  - install fix               20230505 [required by ocamlformat-lib]
  - install topkg             1.0.7    [required by fpath, astring, uuseg]
  - install base-bytes        base     [required by ocp-indent]
  - install menhir            20231231 [required by ocamlformat-lib]
  - install re                1.11.0   [required by ocamlformat]
  - install dune-configurator 3.15.0   [required by base]
  - install uutf              1.0.3    [required by ocamlformat-lib]
  - install astring           0.8.5    [required by ocamlformat-lib]
  - install ocp-indent        1.8.1    [required by ocamlformat-lib]
  - install base              v0.14.3  [required by ocamlformat-lib]
  - install uucp              15.0.0   [required by uuseg]
  - install fpath             0.7.3    [required by ocamlformat-lib]
  - install stdio             v0.14.0  [required by ocamlformat-lib]
  - install uuseg             15.0.0   [required by ocamlformat-lib]
  - install ocamlformat-lib   0.26.1   [required by ocamlformat]
  - install ocamlformat       0.26.1
===== 30 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.2.0] found in cache
[csexp.1.5.2] found in cache
[dune-build-info.3.15.0] found in cache
[dune-configurator.3.15.0] found in cache
[either.1.0.0] found in cache
[fix.20230505] found in cache
[fpath.0.7.3] found in cache
[menhir.20231231] found in cache
[menhirCST.20231231] found in cache
[menhirLib.20231231] found in cache
[menhirSdk.20231231] found in cache
[ocaml-version.3.6.7] found in cache
[ocamlbuild.0.14.3] found in cache
[ocamlfind.1.9.6] found in cache
[ocamlformat.0.26.1] found in cache
[ocamlformat-lib.0.26.1] found in cache
[ocp-indent.1.8.1] found in cache
[re.1.11.0] found in cache
[result.1.5] found in cache
[sexplib0.v0.14.0] found in cache
[stdio.v0.14.0] found in cache
[topkg.1.0.7] found in cache
[uucp.15.0.0] found in cache
[uuseg.15.0.0] found in cache
[uutf.1.0.3] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed seq.base
-> installed camlp-streams.5.0.1
-> installed csexp.1.5.2
-> installed either.1.0.0
-> installed fix.20230505
-> installed menhirCST.20231231
-> installed menhirLib.20231231
-> installed cmdliner.1.2.0
-> installed menhirSdk.20231231
-> installed ocaml-version.3.6.7
-> installed re.1.11.0
-> installed result.1.5
-> installed sexplib0.v0.14.0
-> installed dune-build-info.3.15.0
-> installed dune-configurator.3.15.0
-> installed ocamlfind.1.9.6
-> installed base-bytes.base
-> installed ocamlbuild.0.14.3
-> installed ocp-indent.1.8.1
-> installed base.v0.14.3
-> installed topkg.1.0.7
-> installed stdio.v0.14.0
-> installed uutf.1.0.3
-> installed astring.0.8.5
-> installed fpath.0.7.3
-> installed menhir.20231231
-> installed uucp.15.0.0
-> installed uuseg.15.0.0
-> installed ocamlformat-lib.0.26.1
-> installed ocamlformat.0.26.1
Done.

<><> ocp-indent.1.8.1 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
2024-04-28 23:16.49 ---> saved as "4b18813457f497e77dbdfbd6d11d8a9a296fb382457da3b96a6a4fea0b6f2556"

/src: (copy (src .) (dst /src/))
2024-04-28 23:16.49 ---> saved as "d470059566fdff04c7b16d5ad60247048856c54d22856cb4a4d822cd8db7378d"

/src: (run (shell "opam exec -- dune build @fmt --ignore-promoted-rules || (echo \"dune build @fmt failed\"; exit 2)"))
File "rules0/dune", line 3, characters 44-54:
3 |  (modules lintcstubs_gen_rules dune_stanzas dune_rules)
                                                ^^^^^^^^^^
Error: Module Dune_rules doesn't exist.
File "rules/bin/dune", line 1, characters 0-0:
diff --git a/_build/default/rules/bin/dune b/_build/default/rules/bin/.formatted/dune
index 3fc0f25..ccc5641 100644
--- a/_build/default/rules/bin/dune
+++ b/_build/default/rules/bin/.formatted/dune
@@ -8,8 +8,7 @@
  (public_names lintcstubs_gen_find_dirs lintcstubs_gen_find_targets)
  (modules lintcstubs_gen_find_targets lintcstubs_gen_find_dirs)
  (libraries dune-action-plugin)
- (package lintcstubs-gen)
-)
+ (package lintcstubs-gen))
 
 (executables
  (public_names lintcstubs_genrules)
File "dune", line 1, characters 0-0:
diff --git a/_build/default/dune b/_build/default/.formatted/dune
index e2ecf33..abb372c 100644
--- a/_build/default/dune
+++ b/_build/default/.formatted/dune
@@ -10,8 +10,8 @@
 
 (rule
  (alias foox)
- (action (dynamic-run %{bin:lintcstubs_gen_find_targets} c ml))
-)
+ (action
+  (dynamic-run %{bin:lintcstubs_gen_find_targets} c ml)))
 
 (install
  (section
File "rules/bin/lintcstubs_gen_find_dirs.ml", line 1, characters 0-0:
diff --git a/_build/default/rules/bin/lintcstubs_gen_find_dirs.ml b/_build/default/rules/bin/.formatted/lintcstubs_gen_find_dirs.ml
index 1cace33..af1be14 100644
--- a/_build/default/rules/bin/lintcstubs_gen_find_dirs.ml
+++ b/_build/default/rules/bin/.formatted/lintcstubs_gen_find_dirs.ml
@@ -11,15 +11,13 @@ let rec join = function
 let rec readdir dir =
   let read_subdir subdir =
     let fullpath = Filename.concat dir subdir in
-    fullpath |> print_endline;
+    fullpath |> print_endline ;
     if Sys.file_exists fullpath && Sys.is_directory fullpath then
       readdir fullpath
     else
       return ()
   in
-  let f paths =
-    paths |> List.map read_subdir |> join
-  in
+  let f paths = paths |> List.map read_subdir |> join in
   read_directory_with_glob ~path:(Path.of_string dir)
     ~glob:Dune_glob.V1.universal
   |> stage ~f
File "rules/bin/lintcstubs_gen_find_targets.ml", line 1, characters 0-0:
diff --git a/_build/default/rules/bin/lintcstubs_gen_find_targets.ml b/_build/default/rules/bin/.formatted/lintcstubs_gen_find_targets.ml
index 1496244..084ad9f 100644
--- a/_build/default/rules/bin/lintcstubs_gen_find_targets.ml
+++ b/_build/default/rules/bin/.formatted/lintcstubs_gen_find_targets.ml
@@ -14,31 +14,32 @@ let rec find ~glob paths =
     paths |> PathSet.of_list |> PathSet.map Filename.dirname |> PathSet.elements
   in
   List.rev_append dirs paths
-    |> List.map @@ fun path ->
-       if Dune_glob.V1.test glob path then
-         return (PathSet.singleton path)
-       else if Sys.file_exists path && Sys.is_directory path then begin
-         prerr_endline path;
-         stage
-           (* we want to discover subdirs containing cmt, so we have to ask for everything *)
-           (read_directory_with_glob ~path:(Path.of_string path)
-              ~glob:Dune_glob.V1.universal
-           )
-           ~f:(fun files ->
-             let dirs = files |> List.filter (fun path' ->
-               let path = Filename.concat path path' in
-               prerr_endline path;
-               Sys.file_exists path && Sys.is_directory path
-             ) in
-             (* TODO: recurse, FIXME: this crashes dune with an exception, cycle *)
-             find ~glob dirs |> join
-(*             files |> List.filter (Dune_glob.V1.test glob)
-             |> PathSet.of_list |> return*)
-           )
-        end
-       else
-         return PathSet.empty
-    
+  |> List.map @@ fun path ->
+     if Dune_glob.V1.test glob path then
+       return (PathSet.singleton path)
+     else if Sys.file_exists path && Sys.is_directory path then (
+       prerr_endline path ;
+       stage
+         (* we want to discover subdirs containing cmt, so we have to ask for everything *)
+         (read_directory_with_glob ~path:(Path.of_string path)
+            ~glob:Dune_glob.V1.universal
+         )
+         ~f:(fun files ->
+           let dirs =
+             files
+             |> List.filter (fun path' ->
+                    let path = Filename.concat path path' in
+                    prerr_endline path ;
+                    Sys.file_exists path && Sys.is_directory path
+                )
+           in
+           (* TODO: recurse, FIXME: this crashes dune with an exception, cycle *)
+           find ~glob dirs |> join
+           (* files |> List.filter (Dune_glob.V1.test glob)
+              |> PathSet.of_list |> return*)
+         )
+     ) else
+       return PathSet.empty
 
 let () =
   let exts = ref [] and paths = ref [] and output = ref "" in
@@ -57,11 +58,13 @@ let () =
     ignore usage ;
   let glob = Dune_glob.V1.matching_extensions !exts in
   let result =
-    stage (find ~glob !paths |> join) ~f:(fun files ->
+    stage
+      (find ~glob !paths |> join)
+      ~f:(fun files ->
         let data =
           Printf.sprintf "(%s)" @@ String.concat " " (PathSet.elements files)
         in
         write_file ~path:(Path.of_string !output) ~data
-    )
+      )
   in
   run result
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
2024-04-28 23:16.51: Job failed: Failed: Build failed