Organisationsocaml-ppxocamlformatc6c247 (main)freebsd-14.3-5.3_opam-2.4

freebsd-14.3-5.3_opam-2.4

Link Copied
Code Copied

Logs

2025-10-07 16:50.54: New job: test ocaml-ppx/ocamlformat https://github.com/ocaml-ppx/ocamlformat.git#refs/heads/main (c6c2477d78cdaa8ccb9fca1fe4b4b052a038df12) (freebsd-x86_64:freebsd-14.3-5.3_opam-2.4)
Base: freebsd-14.3-ocaml-5.3
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 freebsd-14.3-ocaml-5.3
# freebsd-14.3-5.3_opam-2.4
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/local/bin/opam-2.4 /usr/local/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.17.3 base-bigarray.base base-domains.base base-effects.base base-nnp.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.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.17.0 stdio.v0.17.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-07 16:50.54: Using cache hint "ocaml-ppx/ocamlformat-freebsd-14.3-ocaml-5.3-freebsd-14.3-5.3_opam-2.4-de70d2394c56b1ab5da1a0237d21e7ea"
2025-10-07 16:50.54: Using OBuilder spec:
((from freebsd-14.3-ocaml-5.3)
(comment freebsd-14.3-5.3_opam-2.4)
(user (uid 1000) (gid 1000))
(env CLICOLOR_FORCE 1)
(env OPAMCOLOR always)
(workdir /src)
(run (shell "sudo ln -f /usr/local/bin/opam-2.4 /usr/local/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.17.3 base-bigarray.base base-domains.base base-effects.base base-nnp.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.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.17.0 stdio.v0.17.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-07 16:50.54: Waiting for resource in pool OCluster
2025-10-07 20:41.20: Waiting for worker…
2025-10-07 21:45.44: Got resource from pool OCluster
Building on rosemary
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>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /obuilder/state/git/ocamlformat.git-a36b1255946df9d39268b8510f203e961f1f36f3/.git/
HEAD is now at c6c2477d Fix quadratic command-line parsing (#2724)


(from freebsd-14.3-ocaml-5.3)
2025-10-07 21:47.41 ---> using "60bac7f21805020c29d2a88a6913503683a681e01c7da46429af43006be5190e" from cache


/: (comment freebsd-14.3-5.3_opam-2.4)


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


/: (env CLICOLOR_FORCE 1)


/: (env OPAMCOLOR always)


/: (workdir /src)


/src: (run (shell "sudo ln -f /usr/local/bin/opam-2.4 /usr/local/bin/opam"))
2025-10-07 21:47.41 ---> using "4d63dfa430f870863e128ed3c471110b31bb3e53377210a2ea894afe5e37bcbb" from cache


/src: (run (shell "opam init --reinit -ni"))
No configuration file found, using 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.1 to version 2.2, which can't be reverted.
You may want to back it up before going further.


Continue? [Y/n] y
[NOTE] The 'jobs' option was reset, its value was 1 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
opam option jobs=1 --global
Format upgrade done.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] no changes from git+file:///home/opam/opam-repository
2025-10-07 21:47.42 ---> using "08dcdc7a41451c03feaf1cde41bdf093eeb3b516304c17e950a6225d1dbc12be" from cache


/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
FreeBSD 14.3-RELEASE-p3
The OCaml toplevel, version 5.3.0
2.4.1
2025-10-07 21:47.42 ---> using "89dfe63ac7dbdaa6723d28341400dd0a5b1be839b593d33c65eaf4466d13b257" from cache


/src: (workdir /src)


/src: (run (shell "sudo chown opam /src"))
2025-10-07 21:47.43 ---> using "ec3674891376259f4044950e2c0e886ef7c9543b50a81fe66e196cb6a302a954" from cache


/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"))
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


Already up-to-date.
Nothing to do.
2025-10-07 21:47.43 ---> using "cd747603fa5d42158641894b463bdb3d9ec370de54c4e8f7978cce2f79b8cb82" from cache


/src: (copy (src ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam)
(dst ./))
2025-10-07 21:47.44 ---> saved as "d421096a1e76fca5926cd1eb562cabc105a388ca821ed0d0e7f0edf6a2ba3222"


/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-07 21:47.49 ---> saved as "d2959784e35a0c1d23dc715ba22998515fd12dd6b76cb5d55449ad31f199117b"


/src: (run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
2025-10-07 21:47.50 ---> saved as "50a5d9c4926f6727dd076c3883825e39ceae83c7f99e0bcb78056077b4b7f11d"


/src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base.v0.17.3 base-bigarray.base base-domains.base base-effects.base base-nnp.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.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.17.0 stdio.v0.17.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"))
[WARNING] Unknown update command for bsd, skipping system update


<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[ocamlformat-lib.dev] synchronised (file:///src)
[ocamlformat-bench.dev] synchronised (file:///src)
[ocamlformat.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 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml is already installed (current version is 5.3.0).
[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-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
2025-10-07 21:47.59 ---> saved as "372737242618208b26ed1205d2cc0578b40b361efea8fd147886b794f7fa6980"


/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 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml is already installed (current version is 5.3.0).
[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-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains 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 33 packages
∗ alcotest                1.9.1
∗ astring                 0.8.5
∗ base                    v0.17.3
∗ 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-syntax-shims      1.0.0
∗ ocaml-version           4.0.1
∗ ocaml_intrinsics_kernel v0.17.1
∗ ocamlbuild              0.16.1
∗ ocamlfind               1.9.8
∗ ocp-indent              1.9.0
∗ re                      1.14.0
∗ sexplib0                v0.17.0
∗ stdio                   v0.17.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


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


* for Vim, add this line to ~/.vimrc:
set rtp^="/home/opam/.opam/5.3.0/share/ocp-indent/vim"
2025-10-07 21:49.23 ---> saved as "e5cdc99b0494f56a66958c3d19b4920be6e31aca985c63d18ee84c523d057e4a"


/src: (copy (src .) (dst /src))
2025-10-07 21:49.25 ---> saved as "6f838d171d0f19ab28744d5901d0d85c8abc20e36427be3af3f9020749fc49ec"


/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
File "test/cli/removed_option.t", line 1, characters 0-0:
/usr/local/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/env.t", line 1, characters 0-0:
/usr/local/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/cli/conf.t", line 1, characters 0-0:
/usr/local/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/stdin.t", line 1, characters 0-0:
/usr/local/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:
File "test/passing/refs.ahrefs/option.ml.err", line 1, characters 0-0:
/usr/local/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'
File "test/passing/refs.ocamlformat/option.ml.err", line 1, characters 0-0:
/usr/local/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.default/option.ml.err", line 1, characters 0-0:
/usr/local/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'
(cd _build/default/test/unit && ./test_unit.exe)
Testing `ocamlformat'.
This run has ID `PB3T17NS'.


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


File "test/passing/refs.janestreet/option.ml.err", line 1, characters 0-0:
/usr/local/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'
jail: /usr/bin/su -l opam -c cd '/src' && env OCAMLCI='true' CI='true' DEPS='alcotest.1.9.1 astring.0.8.5 base.v0.17.3 base-bigarray.base base-domains.base base-effects.base base-nnp.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.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.17.0 stdio.v0.17.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' OPAMCOLOR='always' CLICOLOR_FORCE='1' '/usr/bin/env' 'bash' '-c' 'opam exec -- dune build @install @check @runtest && rm -rf _build': failed
"jail" "-c" "name=obuilder_73090_6153" "mount.devfs" "path=/obuilder/result/d48f640bc8935973756a312feead22f854db3bc4b78330746b93931623585a8e/rootfs" "vnet" "exec.start=/sbin/ifconfig lo0 127.0.0.1/8" "command=/usr/bin/su" "-l" "opam" "-c" "cd '/src' && env OCAMLCI='true' CI='true' DEPS='alcotest.1.9.1 astring.0.8.5 base.v0.17.3 base-bigarray.base base-domains.base base-effects.base base-nnp.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.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.0.1 ocaml_intrinsics_kernel.v0.17.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocp-indent.1.9.0 re.1.14.0 sexplib0.v0.17.0 stdio.v0.17.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' OPAMCOLOR='always' CLICOLOR_FORCE='1' '/usr/bin/env' 'bash' '-c' 'opam exec -- dune build @install @check @runtest && rm -rf _build'" failed with exit status 1
2025-10-07 21:51.36: Job failed: Failed: Build failed