Organisationsocaml-ppxocamlformatc6c247 (main)alpine-3.22-4.14_opam-2.4

alpine-3.22-4.14_opam-2.4

Link Copied
Code Copied

Logs

2025-10-06 03:47.06: New job: test ocaml-ppx/ocamlformat https://github.com/ocaml-ppx/ocamlformat.git#refs/heads/main (c6c2477d78cdaa8ccb9fca1fe4b4b052a038df12) (linux-x86_64:alpine-3.22-4.14_opam-2.4)
Base: ocaml/opam:alpine-3.22-ocaml-4.14@sha256:e1cb67ff0571dfb179fc3cd9b7f5639658f87d2d7fc9f8a0ba7da3644a9fec12
Opam project build


To reproduce locally:


git clone --recursive "https://github.com/ocaml-ppx/ocamlformat.git" -b "main" && cd "ocamlformat" && git reset --hard c6c2477d
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:alpine-3.22-ocaml-4.14@sha256:e1cb67ff0571dfb179fc3cd9b7f5639658f87d2d7fc9f8a0ba7da3644a9fec12
# alpine-3.22-4.14_opam-2.4
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN cd ~/opam-repository && (git cat-file -e f0e79555a122d396c3443ee754a7ea05991c000d || git fetch origin master) && git reset -q --hard f0e79555a122d396c3443ee754a7ea05991c000d && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam ./
RUN opam pin add -yn ocamlformat.dev './' && \
opam pin add -yn ocamlformat-rpc-lib.dev './' && \
opam pin add -yn ocamlformat-lib.dev './' && \
opam pin add -yn ocamlformat-bench.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bechamel.0.5.0 camlp-streams.5.0.1 cmdliner.2.0.0 csexp.1.5.2 dune.3.20.2 dune-build-info.3.20.2 dune-configurator.3.20.2 either.1.0.0 fix.20250919 fmt.0.11.0 fpath.0.7.3 menhir.20250912 menhirCST.20250912 menhirLib.20250912 menhirSdk.20250912 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.0 uucp.17.0.0 uuseg.17.0.0 uutf.1.0.4 yojson.3.0.0"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.4 --depext-only -y ocamlformat.dev ocamlformat-rpc-lib.dev ocamlformat-lib.dev ocamlformat-bench.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /src
RUN opam exec -- dune build @install @check @runtest && rm -rf _build


END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK


2025-10-06 03:47.06: Using cache hint "ocaml-ppx/ocamlformat-ocaml/opam:alpine-3.22-ocaml-4.14@sha256:e1cb67ff0571dfb179fc3cd9b7f5639658f87d2d7fc9f8a0ba7da3644a9fec12-alpine-3.22-4.14_opam-2.4-8afa613eac21d635f3ca7f4193fa5897"
2025-10-06 03:47.06: Using OBuilder spec:
((from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:e1cb67ff0571dfb179fc3cd9b7f5639658f87d2d7fc9f8a0ba7da3644a9fec12)
(comment alpine-3.22-4.14_opam-2.4)
(user (uid 1000) (gid 1000))
(env CLICOLOR_FORCE 1)
(env OPAMCOLOR always)
(workdir /src)
(run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam"))
(run (shell "opam init --reinit -ni"))
(run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
(workdir /src)
(run (shell "sudo chown opam /src"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e f0e79555a122d396c3443ee754a7ea05991c000d || git fetch origin master) && git reset -q --hard f0e79555a122d396c3443ee754a7ea05991c000d && git log --no-decorate -n1 --oneline && opam update -u"))
(copy (src ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam)
(dst ./))
(run (network host)
(shell  "opam pin add -yn ocamlformat.dev './' && \
\nopam pin add -yn ocamlformat-rpc-lib.dev './' && \
\nopam pin add -yn ocamlformat-lib.dev './' && \
\nopam pin add -yn ocamlformat-bench.dev './'"))
(run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
(env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bechamel.0.5.0 camlp-streams.5.0.1 cmdliner.2.0.0 csexp.1.5.2 dune.3.20.2 dune-build-info.3.20.2 dune-configurator.3.20.2 either.1.0.0 fix.20250919 fmt.0.11.0 fpath.0.7.3 menhir.20250912 menhirCST.20250912 menhirLib.20250912 menhirSdk.20250912 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.0 uucp.17.0.0 uuseg.17.0.0 uutf.1.0.4 yojson.3.0.0")
(env CI true)
(env OCAMLCI true)
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam update --depexts && opam install --cli=2.4 --depext-only -y ocamlformat.dev ocamlformat-rpc-lib.dev ocamlformat-lib.dev ocamlformat-bench.dev $DEPS"))
(run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install $DEPS"))
(copy (src .) (dst /src))
(run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
)


2025-10-06 03:47.06: Waiting for resource in pool OCluster
2025-10-06 03:47.06: Waiting for worker…
2025-10-06 03:47.45: Got resource from pool OCluster
Building on asteria.caelum.ci.dev
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/ocamlformat.git-a36b1255946df9d39268b8510f203e961f1f36f3/.git/
HEAD is now at c6c2477d Fix quadratic command-line parsing (#2724)


(from ocaml/opam:alpine-3.22-ocaml-4.14@sha256:e1cb67ff0571dfb179fc3cd9b7f5639658f87d2d7fc9f8a0ba7da3644a9fec12)
2025-10-06 03:48.04 ---> saved as "b004d39c9addeb865f11c6029618ea8df221f8b3190584e8b865e82aabd3dd51"


/: (comment alpine-3.22-4.14_opam-2.4)


/: (user (uid 1000) (gid 1000))


/: (env CLICOLOR_FORCE 1)


/: (env OPAMCOLOR always)


/: (workdir /src)


/src: (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam"))
2025-10-06 03:48.04 ---> saved as "dc04a0ff5b9e994b7e6e55d5cf86c7b82f5374df269ae66b8df2bca0413939ef"


/src: (run (shell "opam init --reinit -ni"))
Configuring from /home/opam/.opamrc and then from built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.


This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.


Continue? [Y/n] y
Format upgrade done.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2025-10-06 03:48.28 ---> saved as "a9a9eaa9d50db89f4f33cbeb762934c46b3f5b23cb45a71fd92a321cf1a9d222"


/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 5.15.0-157-generic
The OCaml toplevel, version 4.14.2
2.4.1
2025-10-06 03:48.28 ---> saved as "2a99766c1ce676ccbca3c905ed36c3c69070138df11536ba7bda390dd4e47fdc"


/src: (workdir /src)


/src: (run (shell "sudo chown opam /src"))
2025-10-06 03:48.29 ---> saved as "8e8eaa4c381747faed0e5bf48183dcc3e702c4123d2d0a0549aee06926b56bea"


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e f0e79555a122d396c3443ee754a7ea05991c000d || git fetch origin master) && git reset -q --hard f0e79555a122d396c3443ee754a7ea05991c000d && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
bcac5d1731..a20cf55ad5  master     -> origin/master
f0e79555a1 Merge pull request #28630 from NathanReb/release-ocp-indent-1.9.0


<><> 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).
However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.3.0"), which will ask permission to downgrade or uninstall the conflicting packages.
Nothing to do.
# To update the current shell environment, run: eval $(opam env)
2025-10-06 03:48.51 ---> saved as "12ad3e3244a73ccd5f355851cf4ba26c0230b4d1df26f6a57400a6c579ba034f"


/src: (copy (src ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam)
(dst ./))
2025-10-06 03:48.51 ---> saved as "70aff17af40f3278d99f072b772b65186c026b1726ecc024e731cee91eb967b9"


/src: (run (network host)
(shell  "opam pin add -yn ocamlformat.dev './' && \
\nopam pin add -yn ocamlformat-rpc-lib.dev './' && \
\nopam pin add -yn ocamlformat-lib.dev './' && \
\nopam pin add -yn ocamlformat-bench.dev './'"))
[ocamlformat.dev] synchronised (file:///src)
ocamlformat is now pinned to file:///src (version dev)
[ocamlformat-rpc-lib.dev] synchronised (file:///src)
ocamlformat-rpc-lib is now pinned to file:///src (version dev)
[ocamlformat-lib.dev] synchronised (file:///src)
ocamlformat-lib is now pinned to file:///src (version dev)
[NOTE] Package ocamlformat-bench does not exist in opam repositories registered in the current switch.
[ocamlformat-bench.dev] synchronised (file:///src)
[WARNING] Failed checks on ocamlformat-bench package definition from source at file:///src:
warning 68: Missing field 'license'
ocamlformat-bench is now pinned to file:///src (version dev)
2025-10-06 03:48.59 ---> saved as "ca1087de7e15092cf9b78072252241700755d898fb66e09e45f9377096c000b0"


/src: (run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
2025-10-06 03:48.59 ---> saved as "aa3b3c49e4cb6ebba69cee8a7d91722906dea49058be30caa74173d2123005bc"


/src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.16.4 base-bigarray.base base-threads.base base-unix.base bechamel.0.5.0 camlp-streams.5.0.1 cmdliner.2.0.0 csexp.1.5.2 dune.3.20.2 dune-build-info.3.20.2 dune-configurator.3.20.2 either.1.0.0 fix.20250919 fmt.0.11.0 fpath.0.7.3 menhir.20250912 menhirCST.20250912 menhirLib.20250912 menhirSdk.20250912 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.16.0 stdio.v0.16.0 stdlib-shims.0.3.0 topkg.1.1.0 uucp.17.0.0 uuseg.17.0.0 uutf.1.0.4 yojson.3.0.0")


/src: (env CI true)


/src: (env OCAMLCI true)


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam update --depexts && opam install --cli=2.4 --depext-only -y ocamlformat.dev ocamlformat-rpc-lib.dev ocamlformat-lib.dev ocamlformat-bench.dev $DEPS"))
+ /usr/bin/sudo "apk" "update"
- fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
- fetch https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
- v3.22.1-541-gdab515791c0 [https://dl-cdn.alpinelinux.org/alpine/v3.22/main]
- v3.22.1-540-g7e2526a971c [https://dl-cdn.alpinelinux.org/alpine/v3.22/community]
- v3.23.0_alpha20250612-7675-g9a86d3d3504 [https://dl-cdn.alpinelinux.org/alpine/edge/main]
- v3.23.0_alpha20250612-7675-g9a86d3d3504 [https://dl-cdn.alpinelinux.org/alpine/edge/community]
- v3.23.0_alpha20250612-7676-g2462e59c17d [https://dl-cdn.alpinelinux.org/alpine/edge/testing]
- OK: 59469 distinct packages available


<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[ocamlformat.dev] synchronised (file:///src)
[ocamlformat-bench.dev] synchronised (file:///src)
[ocamlformat-lib.dev] synchronised (file:///src)
[ocamlformat-rpc-lib.dev] synchronised (file:///src)


[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
2025-10-06 03:49.09 ---> saved as "a018d4224e8d82b1efd932f8b15dfbe22c1fc3b22d714beb97d342258149db09"


/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install $DEPS"))
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 32 packages
- install alcotest           1.9.1
- install astring            0.8.5
- install base               v0.16.4
- install bechamel           0.5.0
- install camlp-streams      5.0.1
- install cmdliner           2.0.0
- install csexp              1.5.2
- install dune               3.20.2
- install dune-build-info    3.20.2
- install dune-configurator  3.20.2
- install either             1.0.0
- install fix                20250919
- install fmt                0.11.0
- install fpath              0.7.3
- install menhir             20250912
- install menhirCST          20250912
- install menhirLib          20250912
- install menhirSdk          20250912
- install ocaml-syntax-shims 1.0.0
- install ocaml-version      4.0.1
- install ocamlbuild         0.16.1
- install ocamlfind          1.9.8
- install ocp-indent         1.9.0
- install re                 1.14.0
- install sexplib0           v0.16.0
- install stdio              v0.16.0
- install stdlib-shims       0.3.0
- install topkg              1.1.0
- install uucp               17.0.0
- install uuseg              17.0.0
- install uutf               1.0.4
- install yojson             3.0.0


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved base.v0.16.4  (cached)
-> retrieved bechamel.0.5.0  (cached)
-> retrieved camlp-streams.5.0.1  (cached)
-> retrieved cmdliner.2.0.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved either.1.0.0  (cached)
-> retrieved fix.20250919  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocaml-version.4.0.1  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved menhir.20250912, menhirCST.20250912, menhirLib.20250912, menhirSdk.20250912  (cached)
-> retrieved dune.3.20.2, dune-build-info.3.20.2, dune-configurator.3.20.2  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocp-indent.1.9.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved sexplib0.v0.16.0  (cached)
-> retrieved stdio.v0.16.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved uuseg.17.0.0  (cached)
-> retrieved topkg.1.1.0  (cached)
-> installed cmdliner.2.0.0
-> retrieved uutf.1.0.4  (cached)
-> retrieved yojson.3.0.0  (cached)
-> retrieved uucp.17.0.0  (cached)
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed fpath.0.7.3
-> installed dune.3.20.2
-> installed bechamel.0.5.0
-> installed camlp-streams.5.0.1
-> installed csexp.1.5.2
-> installed either.1.0.0
-> installed fix.20250919
-> installed menhirCST.20250912
-> installed menhirLib.20250912
-> installed menhirSdk.20250912
-> installed ocaml-syntax-shims.1.0.0
-> installed ocaml-version.4.0.1
-> installed ocp-indent.1.9.0
-> installed re.1.14.0
-> installed sexplib0.v0.16.0
-> installed stdlib-shims.0.3.0
-> installed yojson.3.0.0
-> installed dune-build-info.3.20.2
-> installed alcotest.1.9.1
-> installed dune-configurator.3.20.2
-> installed base.v0.16.4
-> installed stdio.v0.16.0
-> installed uucp.17.0.0
-> installed menhir.20250912
-> installed uuseg.17.0.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.14/share/emacs/site-lisp")
(require 'ocp-indent)


* for Vim, add this line to ~/.vimrc:
set rtp^="/home/opam/.opam/4.14/share/ocp-indent/vim"
# To update the current shell environment, run: eval $(opam env)
2025-10-06 03:50.02 ---> saved as "61008438e14925757ffb2d8f269efad69a1bafd4097b40708165d72b946a7dc1"


/src: (copy (src .) (dst /src))
2025-10-06 03:50.03 ---> saved as "b3ac847e5ab3bfe58efa4eb3a8b95fb0b87745ee8042c50b32fb5b0a602e4152"


/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
File "test/cli/env.t", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/cli/env.t _build/default/test/cli/env.t.corrected
diff --git a/_build/default/test/cli/env.t b/_build/default/test/cli/env.t.corrected
index 0a85c1a..d02c213 100644
--- a/_build/default/test/cli/env.t
+++ b/_build/default/test/cli/env.t.corrected
@@ -1,13 +1,14 @@
Invalid option:


$ echo 'let x = 1' | OCAMLFORMAT="unknown=true" ocamlformat --impl -
-  ocamlformat: Error while parsing OCAMLFORMAT environment variable:
-               Unknown option "unknown"
+  ocamlformat: Error while parsing OCAMLFORMAT environment variable: Unknown
+               option "unknown"
[1]


Invalid value:


$ echo 'let x = 1' | OCAMLFORMAT="type-decl=unknown" ocamlformat --impl -
-  ocamlformat: Error while parsing OCAMLFORMAT environment variable:
-               For option "type-decl": invalid value 'unknown', expected either 'compact' or 'sparse'
+  ocamlformat: Error while parsing OCAMLFORMAT environment variable: For option
+               "type-decl": invalid value 'unknown', expected either 'compact'
+               or 'sparse'
[1]
File "test/passing/refs.ahrefs/option.ml.err", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/passing/refs.ahrefs/option.ml.err _build/default/test/passing/refs.ahrefs/option.ml.stderr
diff --git a/_build/default/test/passing/refs.ahrefs/option.ml.err b/_build/default/test/passing/refs.ahrefs/option.ml.stderr
index 9cad5c9..1b9cde2 100644
--- a/_build/default/test/passing/refs.ahrefs/option.ml.err
+++ b/_build/default/test/passing/refs.ahrefs/option.ml.stderr
@@ -20,10 +20,12 @@ File "option.ml", line 28, characters 3-14:
28 | [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'


File "option.ml", line 39, characters 14-25:
39 |            [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'
(cd _build/default/test/unit && ./test_unit.exe)
Testing `ocamlformat'.
This run has ID `NFFSQL0S'.


................................................................................
................................................................................
............................................


File "test/passing/refs.default/option.ml.err", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/passing/refs.default/option.ml.err _build/default/test/passing/refs.default/option.ml.stderr
diff --git a/_build/default/test/passing/refs.default/option.ml.err b/_build/default/test/passing/refs.default/option.ml.stderr
index 9cad5c9..1b9cde2 100644
--- a/_build/default/test/passing/refs.default/option.ml.err
+++ b/_build/default/test/passing/refs.default/option.ml.stderr
@@ -20,10 +20,12 @@ File "option.ml", line 28, characters 3-14:
28 | [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'


File "option.ml", line 39, characters 14-25:
39 |            [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'
File "test/passing/refs.ocamlformat/option.ml.err", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/passing/refs.ocamlformat/option.ml.err _build/default/test/passing/refs.ocamlformat/option.ml.stderr
diff --git a/_build/default/test/passing/refs.ocamlformat/option.ml.err b/_build/default/test/passing/refs.ocamlformat/option.ml.stderr
index 9cad5c9..1b9cde2 100644
--- a/_build/default/test/passing/refs.ocamlformat/option.ml.err
+++ b/_build/default/test/passing/refs.ocamlformat/option.ml.stderr
@@ -20,10 +20,12 @@ File "option.ml", line 28, characters 3-14:
28 | [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'


File "option.ml", line 39, characters 14-25:
39 |            [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'
File "test/passing/refs.janestreet/option.ml.err", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/passing/refs.janestreet/option.ml.err _build/default/test/passing/refs.janestreet/option.ml.stderr
diff --git a/_build/default/test/passing/refs.janestreet/option.ml.err b/_build/default/test/passing/refs.janestreet/option.ml.stderr
index 9cad5c9..1b9cde2 100644
--- a/_build/default/test/passing/refs.janestreet/option.ml.err
+++ b/_build/default/test/passing/refs.janestreet/option.ml.stderr
@@ -20,10 +20,12 @@ File "option.ml", line 28, characters 3-14:
28 | [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'


File "option.ml", line 39, characters 14-25:
39 |            [@@ocamlformat "if-then-else=bad"]
^^^^^^^^^^^
Warning 47 [attribute-payload]: illegal payload for attribute 'ocamlformat'.
-For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical', 'vertical', 'keyword-first' or 'k-r'
+For option "if-then-else": invalid value 'bad', expected one of 'compact', 'fit-or-vertical',
+'vertical', 'keyword-first' or 'k-r'
File "test/cli/conf.t", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/cli/conf.t _build/default/test/cli/conf.t.corrected
diff --git a/_build/default/test/cli/conf.t b/_build/default/test/cli/conf.t.corrected
index 338916a..77ba250 100644
--- a/_build/default/test/cli/conf.t
+++ b/_build/default/test/cli/conf.t.corrected
@@ -14,8 +14,10 @@ Invalid version:
Exit code is printed by hand because sed succeeding would hide the error.


$ (<a.ml ocamlformat --impl -; echo [$?]) 2>&1 | sed 's/version is "[^"]*"/version is "..."/g'
-  ocamlformat: Error while parsing $TESTCASE_ROOT/prj/.ocamlformat:
-               Project should be formatted using ocamlformat version "bad", but the installed version is "..."
+  ocamlformat: Error while parsing
+               $TESTCASE_ROOT/prj/.ocamlformat:
+               Project should be formatted using ocamlformat version "bad", but
+               the installed version is "..."
[1]


Disable version check:
@@ -28,7 +30,8 @@ Invalid syntax in .ocamlformat file:


$ echo 'a = b = c' > .ocamlformat
$ echo 'let x = 1"' | ocamlformat --impl -
-  ocamlformat: Error while parsing $TESTCASE_ROOT/prj/.ocamlformat:
+  ocamlformat: Error while parsing
+               $TESTCASE_ROOT/prj/.ocamlformat:
Invalid format "a = b = c"
[1]


@@ -36,7 +39,8 @@ Invalid option:


$ echo 'unknown_option = true' > .ocamlformat
$ echo 'let x = 1' | ocamlformat --impl -
-  ocamlformat: Error while parsing $TESTCASE_ROOT/prj/.ocamlformat:
+  ocamlformat: Error while parsing
+               $TESTCASE_ROOT/prj/.ocamlformat:
Unknown option "unknown_option"
[1]


@@ -44,14 +48,20 @@ Invalid option (short negated form):


$ echo 'no-wrap-comments' > .ocamlformat
$ echo 'let x = 1' | ocamlformat --impl -
-  ocamlformat: Error while parsing $TESTCASE_ROOT/prj/.ocamlformat:
-               Unknown option "no-wrap-comments": "no-wrap-comments" is the short form for "wrap-comments=false". It is only accepted on command line, please use "wrap-comments=false" or "wrap-comments=true" instead.
+  ocamlformat: Error while parsing
+               $TESTCASE_ROOT/prj/.ocamlformat:
+               Unknown option "no-wrap-comments": "no-wrap-comments" is the
+               short form for "wrap-comments=false". It is only accepted on
+               command line, please use "wrap-comments=false" or
+               "wrap-comments=true" instead.
[1]


Invalid value:


$ echo 'field-space = unknown_value' > .ocamlformat
$ echo 'let x = 1' | ocamlformat --impl -
-  ocamlformat: Error while parsing $TESTCASE_ROOT/prj/.ocamlformat:
-               For option "field-space": invalid value 'unknown_value', expected one of 'loose', 'tight' or 'tight-decl'
+  ocamlformat: Error while parsing
+               $TESTCASE_ROOT/prj/.ocamlformat:
+               For option "field-space": invalid value 'unknown_value',
+               expected one of 'loose', 'tight' or 'tight-decl'
[1]
File "test/cli/removed_option.t", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/cli/removed_option.t _build/default/test/cli/removed_option.t.corrected
diff --git a/_build/default/test/cli/removed_option.t b/_build/default/test/cli/removed_option.t.corrected
index 9347cd6..91adf54 100644
--- a/_build/default/test/cli/removed_option.t
+++ b/_build/default/test/cli/removed_option.t.corrected
@@ -3,34 +3,31 @@
Setting a removed option on the command line should display an error message:


$ ocamlformat a.ml --extension-sugar preserve
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--extension-sugar': This option has been removed in
version 0.17. Concrete syntax will now always be preserved.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]


$ ocamlformat a.ml --let-open preserve
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--let-open': This option has been removed in version
0.17. Concrete syntax will now always be preserved.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]


$ ocamlformat a.ml --escape-chars preserve
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--escape-chars': This option has been removed in version
0.16. Concrete syntax will now always be preserved.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]


$ ocamlformat a.ml --escape-strings preserve
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--escape-strings': This option has been removed in
version 0.16. Concrete syntax will now always be preserved.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]


$ ocamlformat a.ml --doc-comments-val unset
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--doc-comments-val': This option has been removed in
version 0.16. If you are using `doc-comments-val=before` in
combination with `doc-comments=before` then only
@@ -46,34 +43,32 @@ Setting a removed option on the command line should display an error message:
the same behavior. If you are using `doc-comments-val=unset` the
same behavior can now be achieved by setting `doc-comments`
only.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]


An error is also reported if a removed option is set in an .ocamlformat file:


$ echo 'escape-chars = preserve' > .ocamlformat
$ ocamlformat a.ml
-  ocamlformat: Error while parsing $TESTCASE_ROOT/.ocamlformat:
-               For option "escape-chars": This option has been removed in version 0.16. Concrete syntax will now always be preserved.
+  ocamlformat: Error while parsing
+               $TESTCASE_ROOT/.ocamlformat:
+               For option "escape-chars": This option has been removed in
+               version 0.16. Concrete syntax will now always be preserved.
[1]


Setting an option to a deprecated value on the command line should also display an error message:


$ ocamlformat a.ml --break-separators=after-and-docked
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--break-separators': value `after-and-docked` has been
removed in version 0.12. One can get a similar behaviour by
setting `break-separators=after`, `space-around-lists=false`,
and `dock-collection-brackets=false`.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]


$ ocamlformat a.ml --break-string-literals=wrap
+  Usage: ocamlformat [--help] [OPTION]… [SRC]…
ocamlformat: option '--break-string-literals': value `wrap` has been removed
in version 0.12. It has been replaced by the new default `auto`
value, which breaks lines at newlines and wraps string literals
at the margin.
-  Usage: ocamlformat [OPTION]… [SRC]…
-  Try 'ocamlformat --help' for more information.
[1]
File "test/cli/stdin.t", line 1, characters 0-0:
/usr/bin/git --no-pager diff --no-index --color=always -u _build/default/test/cli/stdin.t _build/default/test/cli/stdin.t.corrected
diff --git a/_build/default/test/cli/stdin.t b/_build/default/test/cli/stdin.t.corrected
index a8be0b2..89c5946 100644
--- a/_build/default/test/cli/stdin.t
+++ b/_build/default/test/cli/stdin.t.corrected
@@ -3,15 +3,18 @@
One of '--impl', '--intf' or '--name' is required when the input is read from stdin:


$ ocamlformat -
-  ocamlformat: Must specify at least one of --name, --impl or --intf when reading from stdin
+  ocamlformat: Must specify at least one of --name, --impl or --intf when
+               reading from stdin
[1]


$ echo 'let x =       1' | ocamlformat -
-  ocamlformat: Must specify at least one of --name, --impl or --intf when reading from stdin
+  ocamlformat: Must specify at least one of --name, --impl or --intf when
+               reading from stdin
[1]


$ ocamlformat --inplace -
-  ocamlformat: Must specify at least one of --name, --impl or --intf when reading from stdin
+  ocamlformat: Must specify at least one of --name, --impl or --intf when
+               reading from stdin
[1]


Nominal cases:
@@ -30,7 +33,8 @@ The kind of syntax --impl/--intf is inferred from the name:
The syntax cannot be inferred if the extension of the file is unsupported:


$ ocamlformat --name a.cpp -
-  ocamlformat: Cannot deduce file kind from passed --name. Please specify --impl or --intf
+  ocamlformat: Cannot deduce file kind from passed --name. Please specify
+               --impl or --intf
[1]


Cannot specify files with stdin:
"/usr/bin/env" "bash" "-c" "opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1
2025-10-06 03:50.13: Job failed: Failed: Build failed