2025-10-15 10:12.58: New job: test ocaml-ppx/ocamlformat https://github.com/ocaml-ppx/ocamlformat.git#refs/heads/main (cf3d2e705696678046072afd4fc46cefaa5e5fa2) (linux-x86_64:(lower-bound))
Base: ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f
Opam project build
To reproduce locally:
git clone --recursive "https://github.com/ocaml-ppx/ocamlformat.git" -b "main" && cd "ocamlformat" && git reset --hard cf3d2e70
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f
# debian-13-4.08_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 f736a66f83aeced5a0c0d90b769613178cd63b26 || git fetch origin master) && git reset -q --hard f736a66f83aeced5a0c0d90b769613178cd63b26 && 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.5.0 astring.0.8.3 base.v0.12.2 base-bigarray.base base-bytes.base base-threads.base base-unix.base bechamel.0.2.0 biniou.1.2.0 camlp-streams.5.0.1 cmdliner.1.3.0 conf-m4.1 conf-which.1 cppo.1.6.1 csexp.1.4.0 dune.2.9.3 dune-build-info.2.9.3 dune-configurator.2.5.1 dune-private-libs.2.5.1 easy-format.1.0.1 either.1.0.0 fix.20130611 fmt.0.9.0 fpath.0.7.3 jbuilder.1.0+beta20.1 menhir.20201216 menhirLib.20201216 menhirSdk.20201216 ocaml.4.08.1 ocaml-base-compiler.4.08.1 ocaml-config.1 ocaml-syntax-shims.1.0.0 ocaml-version.3.5.0 ocamlbuild.0.14.0 ocamlfind.1.8.0 ocp-indent.1.8.1 re.1.10.3 result.1.5 seq.0.3 sexplib0.v0.12.0 stdio.v0.12.0 stdlib-shims.0.1.0 topkg.1.0.8 uucp.14.0.0 uuseg.14.0.0 uutf.1.0.3 yojson.1.6.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-15 10:12.58: Using cache hint "ocaml-ppx/ocamlformat-ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f-debian-13-4.08_opam-2.4-a31a89ef0a819f064838663a96e29598"
2025-10-15 10:12.58: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f)
(comment debian-13-4.08_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 f736a66f83aeced5a0c0d90b769613178cd63b26 || git fetch origin master) && git reset -q --hard f736a66f83aeced5a0c0d90b769613178cd63b26 && 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.5.0 astring.0.8.3 base.v0.12.2 base-bigarray.base base-bytes.base base-threads.base base-unix.base bechamel.0.2.0 biniou.1.2.0 camlp-streams.5.0.1 cmdliner.1.3.0 conf-m4.1 conf-which.1 cppo.1.6.1 csexp.1.4.0 dune.2.9.3 dune-build-info.2.9.3 dune-configurator.2.5.1 dune-private-libs.2.5.1 easy-format.1.0.1 either.1.0.0 fix.20130611 fmt.0.9.0 fpath.0.7.3 jbuilder.1.0+beta20.1 menhir.20201216 menhirLib.20201216 menhirSdk.20201216 ocaml.4.08.1 ocaml-base-compiler.4.08.1 ocaml-config.1 ocaml-syntax-shims.1.0.0 ocaml-version.3.5.0 ocamlbuild.0.14.0 ocamlfind.1.8.0 ocp-indent.1.8.1 re.1.10.3 result.1.5 seq.0.3 sexplib0.v0.12.0 stdio.v0.12.0 stdlib-shims.0.1.0 topkg.1.0.8 uucp.14.0.0 uuseg.14.0.0 uutf.1.0.3 yojson.1.6.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-15 10:12.58: Waiting for resource in pool OCluster
2025-10-15 10:39.46: Waiting for worker…
2025-10-15 10:41.52: Got resource from pool OCluster
Building on laodoke.caelum.ci.dev
All commits already cached
HEAD is now at cf3d2e70 Promote changes induced by Cmdliner 2.0.0 (#2727)
(from ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f)
Unable to find image 'ocaml/opam:debian-13-ocaml-4.08@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f' locally
docker.io/ocaml/opam@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f: Pulling from ocaml/opam
cae3b572364a: Already exists
820d433882fc: Already exists
8f6112f72fa5: Already exists
f06108004adb: Already exists
f34ea90e6bf7: Already exists
b44a65709156: Already exists
4c25908bbac9: Already exists
f76df728146d: Already exists
1fee769dfcf3: Already exists
9089a7f69af3: Already exists
6f758b47b2a0: Already exists
16b225bbb395: Already exists
abbf3ec39b68: Already exists
1a61521655a9: Already exists
6a8565a9e443: Already exists
c059a4cbd7b9: Already exists
3a00fdc9e291: Already exists
a0b62589bd38: Already exists
6e8d713bf843: Already exists
bca1fd5341ba: Already exists
34b9849c2772: Already exists
4f4fb700ef54: Already exists
d8d3d0744e38: Already exists
788c7ce0e0e5: Already exists
a297eab0ca3b: Already exists
2e79af39acdb: Already exists
8858e600236c: Already exists
9efe23d1fe7d: Already exists
47d185934312: Already exists
64a949a6caff: Already exists
c9d6a7c18bb1: Already exists
e4fde4815f0c: Already exists
d1f759c16950: Already exists
f3dd45bf195f: Already exists
3985a6049101: Already exists
aae849592418: Already exists
6173459dc6b2: Already exists
7f16ef63bee0: Already exists
fe355de6a899: Already exists
b0bc5a15bc9d: Already exists
0ba06c753f01: Pulling fs layer
f7e4070f86bb: Pulling fs layer
a16d954bd2d3: Pulling fs layer
6583f21da642: Pulling fs layer
6583f21da642: Waiting
a16d954bd2d3: Verifying Checksum
a16d954bd2d3: Download complete
6583f21da642: Download complete
f7e4070f86bb: Download complete
0ba06c753f01: Verifying Checksum
0ba06c753f01: Download complete
0ba06c753f01: Pull complete
f7e4070f86bb: Pull complete
a16d954bd2d3: Pull complete
6583f21da642: Pull complete
Digest: sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f
Status: Downloaded newer image for ocaml/opam@sha256:d8500c15c97ddcfabe40e74b26beae4dbdf65385f70ca81d97f44f1a6556480f
2025-10-15 10:41.52 ---> using "8a3fb29dc134ae8cb5011e033937cdf0919031452506a2a7eeab7ea43cc7fe2e" from cache
/: (comment debian-13-4.08_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-15 10:41.52 ---> using "7134e21d81f07b88d496fc7d9fd04fcb845e713e71c7127239ae60f709c1f819" from cache
/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-15 10:41.52 ---> using "0de99fe1fc7db47f0d213e483cd4c74c50dc88c047d676e7b3e663d490603d03" from cache
/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 5.15.0-156-generic
The OCaml toplevel, version 4.08.1
2.4.1
2025-10-15 10:41.52 ---> using "7f5b4185ab939079de06e4b6702889016fe9034c4b93a6a5f33c92159947d2e0" from cache
/src: (workdir /src)
/src: (run (shell "sudo chown opam /src"))
2025-10-15 10:41.52 ---> using "644bc905a4b4c723467d7709d79c77aaef4ff740a5c0ccc468070bae516b8a06" from cache
/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e f736a66f83aeced5a0c0d90b769613178cd63b26 || git fetch origin master) && git reset -q --hard f736a66f83aeced5a0c0d90b769613178cd63b26 && git log --no-decorate -n1 --oneline && opam update -u"))
f736a66f83 Merge pull request #28602 from dbuenzli/cmdliner-incompat
<><> 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-15 10:41.52 ---> using "63d0fc6f279ae30c2b65704f6460d562ae35bbbaa508b7cfe06cd35be8927bbc" from cache
/src: (copy (src ocamlformat.opam ocamlformat-rpc-lib.opam ocamlformat-lib.opam ocamlformat-bench.opam)
(dst ./))
2025-10-15 10:41.53 ---> saved as "1bbe5e417e78bdc5ceb6c3899a9d6348892b07c6ac5d2455be5e4b8f9720c0ac"
/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-15 10:42.04 ---> saved as "37923bd74cd341b255aa1614223cec620e4a8ce23bc20e83bb9394340b31205d"
/src: (run (network host)
(shell "echo '(lang dune 3.0)' > './dune-project'"))
2025-10-15 10:42.05 ---> saved as "9d73daea36d041a53164b9e88d2578a873058d995566d93b564a4379ede58cb0"
/src: (env DEPS "alcotest.1.5.0 astring.0.8.3 base.v0.12.2 base-bigarray.base base-bytes.base base-threads.base base-unix.base bechamel.0.2.0 biniou.1.2.0 camlp-streams.5.0.1 cmdliner.1.3.0 conf-m4.1 conf-which.1 cppo.1.6.1 csexp.1.4.0 dune.2.9.3 dune-build-info.2.9.3 dune-configurator.2.5.1 dune-private-libs.2.5.1 easy-format.1.0.1 either.1.0.0 fix.20130611 fmt.0.9.0 fpath.0.7.3 jbuilder.1.0+beta20.1 menhir.20201216 menhirLib.20201216 menhirSdk.20201216 ocaml.4.08.1 ocaml-base-compiler.4.08.1 ocaml-config.1 ocaml-syntax-shims.1.0.0 ocaml-version.3.5.0 ocamlbuild.0.14.0 ocamlfind.1.8.0 ocp-indent.1.8.1 re.1.10.3 result.1.5 seq.0.3 sexplib0.v0.12.0 stdio.v0.12.0 stdlib-shims.0.1.0 topkg.1.0.8 uucp.14.0.0 uuseg.14.0.0 uutf.1.0.3 yojson.1.6.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 "apt-get" "update"
- Hit:1 http://deb.debian.org/debian trixie InRelease
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Get:4 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [53.8 kB]
- Fetched 145 kB in 0s (851 kB/s)
- Reading package lists...
-
<><> 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-config is already installed (current version is 1).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.08.1).
[NOTE] Package ocaml is already installed (current version is 4.08.1).
[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 system packages will first need to be installed:
m4
<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>
+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "m4"
- Selecting previously unselected package m4.
- (Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 20622 files and directories currently installed.)
- Preparing to unpack .../archives/m4_1.4.19-8_amd64.deb ...
- Unpacking m4 (1.4.19-8) ...
- Setting up m4 (1.4.19-8) ...
2025-10-15 10:42.32 ---> saved as "b79bf94bd4bd5757d79fd71cfc9c45099b70632f44d9bbb6e7fefe55af01c163"
/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam install $DEPS"))
[NOTE] Package ocaml-config is already installed (current version is 1).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.08.1).
[NOTE] Package ocaml is already installed (current version is 4.08.1).
[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 41 packages
- install alcotest 1.5.0
- install astring 0.8.3
- install base v0.12.2
- install base-bytes base
- install bechamel 0.2.0
- install biniou 1.2.0
- install camlp-streams 5.0.1
- install cmdliner 1.3.0
- install conf-m4 1
- install conf-which 1
- install cppo 1.6.1
- install csexp 1.4.0
- install dune 2.9.3
- install dune-build-info 2.9.3
- install dune-configurator 2.5.1
- install dune-private-libs 2.5.1
- install easy-format 1.0.1
- install either 1.0.0
- install fix 20130611
- install fmt 0.9.0
- install fpath 0.7.3
- install jbuilder 1.0+beta20.1 (deprecated)
- install menhir 20201216
- install menhirLib 20201216
- install menhirSdk 20201216
- install ocaml-syntax-shims 1.0.0
- install ocaml-version 3.5.0
- install ocamlbuild 0.14.0
- install ocamlfind 1.8.0
- install ocp-indent 1.8.1
- install re 1.10.3
- install result 1.5
- install seq 0.3
- install sexplib0 v0.12.0
- install stdio v0.12.0
- install stdlib-shims 0.1.0
- install topkg 1.0.8
- install uucp 14.0.0
- install uuseg 14.0.0
- install uutf 1.0.3
- install yojson 1.6.0
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.5.0 (cached)
-> retrieved astring.0.8.3 (cached)
-> retrieved base.v0.12.2 (cached)
-> retrieved bechamel.0.2.0 (cached)
-> retrieved biniou.1.2.0 (cached)
-> retrieved camlp-streams.5.0.1 (cached)
-> retrieved cmdliner.1.3.0 (cached)
-> retrieved cppo.1.6.1 (cached)
-> installed conf-m4.1
-> installed conf-which.1
-> retrieved csexp.1.4.0 (cached)
-> retrieved easy-format.1.0.1 (cached)
-> retrieved either.1.0.0 (cached)
-> retrieved fix.20130611 (cached)
-> retrieved fmt.0.9.0 (cached)
-> retrieved fpath.0.7.3 (cached)
-> retrieved jbuilder.1.0+beta20.1 (cached)
-> retrieved dune.2.9.3, dune-build-info.2.9.3 (cached)
-> retrieved dune-configurator.2.5.1, dune-private-libs.2.5.1 (cached)
-> retrieved menhir.20201216, menhirLib.20201216, menhirSdk.20201216 (cached)
-> retrieved ocaml-syntax-shims.1.0.0 (cached)
-> retrieved ocaml-version.3.5.0 (cached)
-> retrieved ocamlbuild.0.14.0 (cached)
-> retrieved ocamlfind.1.8.0 (cached)
-> retrieved ocp-indent.1.8.1 (cached)
-> installed cmdliner.1.3.0
-> retrieved re.1.10.3 (cached)
-> retrieved result.1.5 (cached)
-> retrieved seq.0.3 (cached)
-> retrieved sexplib0.v0.12.0 (cached)
-> retrieved stdio.v0.12.0 (cached)
-> retrieved stdlib-shims.0.1.0 (cached)
-> retrieved uuseg.14.0.0 (cached)
-> retrieved uutf.1.0.3 (cached)
-> retrieved topkg.1.0.8 (cached)
-> retrieved yojson.1.6.0 (cached)
-> retrieved uucp.14.0.0 (cached)
-> installed ocamlfind.1.8.0
-> installed base-bytes.base
-> installed easy-format.1.0.1
-> installed ocamlbuild.0.14.0
-> installed fix.20130611
-> installed jbuilder.1.0+beta20.1
-> installed dune.2.9.3
-> installed biniou.1.2.0
-> installed cppo.1.6.1
-> installed camlp-streams.5.0.1
-> installed dune-build-info.2.9.3
-> installed either.1.0.0
-> installed stdlib-shims.0.1.0
-> installed ocaml-version.3.5.0
-> installed result.1.5
-> installed seq.0.3
-> installed menhirSdk.20201216
-> installed sexplib0.v0.12.0
-> installed menhirLib.20201216
-> installed csexp.1.4.0
-> installed ocaml-syntax-shims.1.0.0
-> installed topkg.1.0.8
-> installed re.1.10.3
-> installed ocp-indent.1.8.1
-> installed uutf.1.0.3
-> installed yojson.1.6.0
-> installed fmt.0.9.0
-> installed astring.0.8.3
-> installed dune-private-libs.2.5.1
-> installed bechamel.0.2.0
-> installed alcotest.1.5.0
-> installed fpath.0.7.3
-> installed dune-configurator.2.5.1
-> installed menhir.20201216
-> installed base.v0.12.2
-> installed stdio.v0.12.0
-> installed uucp.14.0.0
-> installed uuseg.14.0.0
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"
<><> jbuilder.1.0+beta20.1 installed successfully <><><><><><><><><><><><><><><>
=> Note: This package is deprecated.
# To update the current shell environment, run: eval $(opam env)
2025-10-15 10:44.26 ---> saved as "0fe8afea0157b98193c2539c717952b2adf58377853411e3678ef9b6be65a808"
/src: (copy (src .) (dst /src))
2025-10-15 10:44.29 ---> saved as "7c7399c7f6d7695c84898c06b46f1ee1f6b30de1d665e71e5da374e0804a12b8"
/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
File "/home/opam/.opam/4.08/lib/biniou/biniou.dune", line 1, characters 0-0:
Warning: .dune files are ignored since 2.0. Reinstall the library with dune
>= 2.0 to get rid of this warning and enable support for the subsystem this
library provides.
test_unit alias test/unit/runtest
Testing `ocamlformat'.
This run has ID `NKRGNQRZ'.
................................................................................
................................................................................
............................................
File "test/cli/env.t", line 1, characters 0-0:
File "test/cli/removed_option.t", line 1, characters 0-0:
File "test/cli/conf.t", line 1, characters 0-0:
File "test/cli/stdin.t", line 1, characters 0-0:
File "test/passing/refs.ahrefs/option.ml.err", line 1, characters 0-0:
File "test/passing/refs.default/option.ml.err", line 1, characters 0-0:
File "test/passing/refs.janestreet/option.ml.err", line 1, characters 0-0:
File "test/passing/refs.ocamlformat/option.ml.err", line 1, characters 0-0:
git (internal) (exit 1)
(cd _build/.sandbox/949f36e92877af5a25f84c9c01c8e67f/default && /usr/bin/git --no-pager diff --no-index --color=always -u ../../../default/test/cli/env.t test/cli/env.t.corrected)
diff --git a/../../../default/test/cli/env.t b/test/cli/env.t.corrected
index d02c213..0a85c1a 100644
--- a/../../../default/test/cli/env.t
+++ b/test/cli/env.t.corrected
@@ -1,14 +1,13 @@
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]
git (internal) (exit 1)
(cd _build/.sandbox/b5b105dbc0f53427a9b9c6da7bd0e5c9/default && /usr/bin/git --no-pager diff --no-index --color=always -u ../../../default/test/cli/conf.t test/cli/conf.t.corrected)
diff --git a/../../../default/test/cli/conf.t b/test/cli/conf.t.corrected
index 77ba250..338916a 100644
--- a/../../../default/test/cli/conf.t
+++ b/test/cli/conf.t.corrected
@@ -14,10 +14,8 @@ 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:
@@ -30,8 +28,7 @@ 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]
@@ -39,8 +36,7 @@ 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]
@@ -48,20 +44,14 @@ 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]
git (internal) (exit 1)
(cd _build/.sandbox/c3cbf19224fb5853589e207bc5042832/default && /usr/bin/git --no-pager diff --no-index --color=always -u ../../../default/test/cli/removed_option.t test/cli/removed_option.t.corrected)
diff --git a/../../../default/test/cli/removed_option.t b/test/cli/removed_option.t.corrected
index 91adf54..9347cd6 100644
--- a/../../../default/test/cli/removed_option.t
+++ b/test/cli/removed_option.t.corrected
@@ -3,31 +3,34 @@
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
@@ -43,32 +46,34 @@ 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]
git (internal) (exit 1)
(cd _build/.sandbox/f9f53f3628672699e0cdc2be154af10d/default && /usr/bin/git --no-pager diff --no-index --color=always -u ../../../default/test/cli/stdin.t test/cli/stdin.t.corrected)
diff --git a/../../../default/test/cli/stdin.t b/test/cli/stdin.t.corrected
index 89c5946..a8be0b2 100644
--- a/../../../default/test/cli/stdin.t
+++ b/test/cli/stdin.t.corrected
@@ -3,18 +3,15 @@
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:
@@ -33,8 +30,7 @@ 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:
git (internal) (exit 1)
(cd _build/default && /usr/bin/git --no-pager diff --no-index --color=always -u test/passing/refs.ahrefs/option.ml.err test/passing/refs.ahrefs/option.ml.stderr)
diff --git a/test/passing/refs.ahrefs/option.ml.err b/test/passing/refs.ahrefs/option.ml.stderr
index 1b9cde2..9cad5c9 100644
--- a/test/passing/refs.ahrefs/option.ml.err
+++ b/test/passing/refs.ahrefs/option.ml.stderr
@@ -20,12 +20,10 @@ 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'
git (internal) (exit 1)
(cd _build/default && /usr/bin/git --no-pager diff --no-index --color=always -u test/passing/refs.default/option.ml.err test/passing/refs.default/option.ml.stderr)
diff --git a/test/passing/refs.default/option.ml.err b/test/passing/refs.default/option.ml.stderr
index 1b9cde2..9cad5c9 100644
--- a/test/passing/refs.default/option.ml.err
+++ b/test/passing/refs.default/option.ml.stderr
@@ -20,12 +20,10 @@ 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'
git (internal) (exit 1)
(cd _build/default && /usr/bin/git --no-pager diff --no-index --color=always -u test/passing/refs.janestreet/option.ml.err test/passing/refs.janestreet/option.ml.stderr)
diff --git a/test/passing/refs.janestreet/option.ml.err b/test/passing/refs.janestreet/option.ml.stderr
index 1b9cde2..9cad5c9 100644
--- a/test/passing/refs.janestreet/option.ml.err
+++ b/test/passing/refs.janestreet/option.ml.stderr
@@ -20,12 +20,10 @@ 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'
git (internal) (exit 1)
(cd _build/default && /usr/bin/git --no-pager diff --no-index --color=always -u test/passing/refs.ocamlformat/option.ml.err test/passing/refs.ocamlformat/option.ml.stderr)
diff --git a/test/passing/refs.ocamlformat/option.ml.err b/test/passing/refs.ocamlformat/option.ml.stderr
index 1b9cde2..9cad5c9 100644
--- a/test/passing/refs.ocamlformat/option.ml.err
+++ b/test/passing/refs.ocamlformat/option.ml.stderr
@@ -20,12 +20,10 @@ 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'
"/usr/bin/env" "bash" "-c" "opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1
2025-10-15 10:45.16: Job failed: Failed: Build failed