Organisationstaridesdune-releaseda4df9 ()windows-server-mingw-ltsc2025-5.4_opam-2.5

windows-server-mingw-ltsc2025-5.4_opam-2.5

Link Copied
Code Copied

Logs

2026-03-25 10:13.34: New job: test tarides/dune-release https://github.com/tarides/dune-release.git#refs/pull/518/head (da4df925d72fb3b6ab3607edfc2022f8643b4b80) (windows-x86_64:windows-server-mingw-ltsc2025-5.4_opam-2.5)
Base: ocaml/opam:windows-server-mingw-ltsc2025-ocaml-5.4@sha256:fedecf8e7810af08d566e6e877bd4ed7ad4c107b8cc32164f71632fffceb8869
Opam project build


To reproduce locally:


git clone --recursive "https://github.com/tarides/dune-release.git" && cd "dune-release" && git fetch origin "refs/pull/518/head" && git reset --hard da4df925
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:windows-server-mingw-ltsc2025-ocaml-5.4@sha256:fedecf8e7810af08d566e6e877bd4ed7ad4c107b8cc32164f71632fffceb8869
# windows-server-mingw-ltsc2025-5.4_opam-2.5
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
RUN ln -f /usr/local/bin/opam-2.5 /usr/local/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
RUN cd ~/opam-repository && (git cat-file -e 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef || git fetch origin master) && git reset -q --hard 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 dune-release.opam /cygwin64/home/opam/src/./
RUN opam pin add -yn dune-release.dev '/cygwin64/home/opam/src/./'
RUN echo '(lang dune 3.0)' > '/home/opam/src/./dune-project'
ENV DEPS="alcotest.1.9.1 arch-x86_64.1 astring.0.8.5 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bos.0.2.1 camlp-streams.5.0.1 cmdliner.2.1.0 conf-mingw-w64-gcc-i686.1 conf-mingw-w64-gcc-x86_64.1 cppo.1.8.0 crunch.4.0.0 curly.0.3.0 dune.3.22.0 flexdll.0.44 fmt.0.11.0 fpath.0.7.3 host-arch-x86_64.1 host-system-mingw.1 jsonm.1.0.2 logs.0.10.0 menhir.20260209 menhirCST.20260209 menhirGLR.20260209 menhirLib.20260209 menhirSdk.20260209 mingw-w64-shims.0.2.0 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-env-mingw64.1 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocamlgraph.2.2.0 odoc.3.1.0 odoc-parser.3.1.0 opam-core.2.5.0 opam-file-format.2.2.0 opam-format.2.5.0 opam-repository.2.5.0 opam-state.2.5.0 patch.3.1.0 ptime.1.2.0 re.1.14.0 result.1.5 rresult.0.7.0 seq.base sha.1.15.4 spdx_licenses.1.4.0 stdlib-shims.0.3.0 swhid_core.0.1 system-mingw.1 topkg.1.1.1 tyxml.4.6.0 uutf.1.0.4 yojson.3.0.0"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.5 --depext-only -y dune-release.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /cygwin64/home/opam/src
RUN cd /home/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build


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


2026-03-25 10:13.34: Using cache hint "tarides/dune-release-ocaml/opam:windows-server-mingw-ltsc2025-ocaml-5.4@sha256:fedecf8e7810af08d566e6e877bd4ed7ad4c107b8cc32164f71632fffceb8869-windows-server-mingw-ltsc2025-5.4_opam-2.5-89ef3e4abab48947313075dbfe33fc95"
2026-03-25 10:13.34: Using OBuilder spec:
((from ocaml/opam:windows-server-mingw-ltsc2025-ocaml-5.4@sha256:fedecf8e7810af08d566e6e877bd4ed7ad4c107b8cc32164f71632fffceb8869)
(comment windows-server-mingw-ltsc2025-5.4_opam-2.5)
(user (uid 1000) (gid 1000))
(env CLICOLOR_FORCE 1)
(env OPAMCOLOR always)
(run (shell "ln -f /usr/local/bin/opam-2.5 /usr/local/bin/opam"))
(run (shell "opam init --reinit -ni"))
(run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
(run (cache (opam-archives (target "c:\\opam\\.opam\\download-cache")))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef || git fetch origin master) && git reset -q --hard 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef && git log --no-decorate -n1 --oneline && opam update -u"))
(copy (src dune-release.opam) (dst /cygwin64/home/opam/src/./))
(run (network host)
(shell "opam pin add -yn dune-release.dev '/cygwin64/home/opam/src/./'"))
(run (shell "echo '(lang dune 3.0)' > '/home/opam/src/./dune-project'"))
(env DEPS "alcotest.1.9.1 arch-x86_64.1 astring.0.8.5 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bos.0.2.1 camlp-streams.5.0.1 cmdliner.2.1.0 conf-mingw-w64-gcc-i686.1 conf-mingw-w64-gcc-x86_64.1 cppo.1.8.0 crunch.4.0.0 curly.0.3.0 dune.3.22.0 flexdll.0.44 fmt.0.11.0 fpath.0.7.3 host-arch-x86_64.1 host-system-mingw.1 jsonm.1.0.2 logs.0.10.0 menhir.20260209 menhirCST.20260209 menhirGLR.20260209 menhirLib.20260209 menhirSdk.20260209 mingw-w64-shims.0.2.0 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-env-mingw64.1 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocamlgraph.2.2.0 odoc.3.1.0 odoc-parser.3.1.0 opam-core.2.5.0 opam-file-format.2.2.0 opam-format.2.5.0 opam-repository.2.5.0 opam-state.2.5.0 patch.3.1.0 ptime.1.2.0 re.1.14.0 result.1.5 rresult.0.7.0 seq.base sha.1.15.4 spdx_licenses.1.4.0 stdlib-shims.0.3.0 swhid_core.0.1 system-mingw.1 topkg.1.1.1 tyxml.4.6.0 uutf.1.0.4 yojson.3.0.0")
(env CI true)
(env OCAMLCI true)
(run (cache (opam-archives (target "c:\\opam\\.opam\\download-cache")))
(network host)
(shell "opam update --depexts && opam install --cli=2.5 --depext-only -y dune-release.dev $DEPS"))
(run (cache (opam-archives (target "c:\\opam\\.opam\\download-cache")))
(network host)
(shell "opam install $DEPS"))
(copy (src .) (dst /cygwin64/home/opam/src))
(run (shell "cd /home/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build"))
)


2026-03-25 10:13.34: Waiting for resource in pool OCluster
2026-03-25 10:13.34: Waiting for worker…
2026-03-25 10:23.57: Got resource from pool OCluster
Building on ltsc2025-3
HEAD is now at 549bb66 fix CHANGES.md
HEAD is now at da4df92 Explicitely pass flag to decompress bzip2 archives


(from ocaml/opam:windows-server-mingw-ltsc2025-ocaml-5.4@sha256:fedecf8e7810af08d566e6e877bd4ed7ad4c107b8cc32164f71632fffceb8869)
2026-03-25 10:24.21 ---> using "a21c3d6a5c8ade59b5718498d4946f2d30bc2f15b3081890bc8673cc20de69f7" from cache


C:/: (comment windows-server-mingw-ltsc2025-5.4_opam-2.5)


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


C:/: (env CLICOLOR_FORCE 1)


C:/: (env OPAMCOLOR always)


C:/: (run (shell "ln -f /usr/local/bin/opam-2.5 /usr/local/bin/opam"))
2026-03-25 10:24.21 ---> using "ba707ce1f62b585e8ecb40306d921206316b14fded440e6c49f33aa7897cc9c7" from cache


C:/: (run (shell "opam init --reinit -ni"))
No configuration file found, using built-in defaults.


<><> Unix support infrastructure ><><><><><><><><><><><><><><><><><><><><><><><>


opam and the OCaml ecosystem in general require various Unix tools in order to operate correctly. At present, this requires the installation of Cygwin to provide these tools.


How should opam obtain Unix tools?
> 1. Use tools found in PATH (Cygwin installation at C:\cygwin64)
2. Automatically create an internal Cygwin installation that will be managed by opam (recommended)
3. Use Cygwin installation found in C:\cygwin64
4. Use another existing Cygwin/MSYS2 installation
5. Abort initialisation


[1/2/3/4/5] 1
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.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-03-25 10:24.21 ---> using "dd67e9cc18682a923590cd564dd7cd6177b4afe1c25b1d53bacf8ae6b5b2364f" from cache


C:/: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
CYGWIN_NT-10.0-26100 3.6.6-1.x86_64
The OCaml toplevel, version 5.4.0
2.5.0
2026-03-25 10:24.21 ---> using "c97059ecb6d76caa6ea35cf8e41cecaa775dc323c43ea7e5cc23418742ce7876" from cache


C:/: (run (cache (opam-archives (target "c:\\opam\\.opam\\download-cache")))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef || git fetch origin master) && git reset -q --hard 9f189ca4f94fbb5f0045820bf3c4ffafb21145ef && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
b820e8c25e..9f189ca4f9  master     -> origin/master
9f189ca4f9 Merge pull request #29562 from shonfeder/release-dune-3.22.0


<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from git+file://C:/cygwin64/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.5.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)
2026-03-25 10:24.21 ---> using "ced7f83c95757ead588801f972f0887e8eaeeba3e8859b2fa40215950a6457f6" from cache


C:/: (copy (src dune-release.opam) (dst /cygwin64/home/opam/src/./))
2026-03-25 10:24.21 ---> using "4ba38f9f9580aa5a95acf79ee752936da1ea9e77ca832449d261b6a0767ce33c" from cache


C:/: (run (network host)
(shell "opam pin add -yn dune-release.dev '/cygwin64/home/opam/src/./'"))
[dune-release.dev] synchronised (file://C:/cygwin64/home/opam/src)
dune-release is now pinned to file://C:/cygwin64/home/opam/src (version dev)
2026-03-25 10:24.21 ---> using "e0744977fd997095a2e9abaff36d661db50e175df3e2a4a409009fe26f3d1431" from cache


C:/: (run (shell "echo '(lang dune 3.0)' > '/home/opam/src/./dune-project'"))
2026-03-25 10:24.21 ---> using "aec599b4e5beea86e8116f5dbcd6e120154b7d83edc113a85436c96a52168e34" from cache


C:/: (env DEPS "alcotest.1.9.1 arch-x86_64.1 astring.0.8.5 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bos.0.2.1 camlp-streams.5.0.1 cmdliner.2.1.0 conf-mingw-w64-gcc-i686.1 conf-mingw-w64-gcc-x86_64.1 cppo.1.8.0 crunch.4.0.0 curly.0.3.0 dune.3.22.0 flexdll.0.44 fmt.0.11.0 fpath.0.7.3 host-arch-x86_64.1 host-system-mingw.1 jsonm.1.0.2 logs.0.10.0 menhir.20260209 menhirCST.20260209 menhirGLR.20260209 menhirLib.20260209 menhirSdk.20260209 mingw-w64-shims.0.2.0 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-env-mingw64.1 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocamlgraph.2.2.0 odoc.3.1.0 odoc-parser.3.1.0 opam-core.2.5.0 opam-file-format.2.2.0 opam-format.2.5.0 opam-repository.2.5.0 opam-state.2.5.0 patch.3.1.0 ptime.1.2.0 re.1.14.0 result.1.5 rresult.0.7.0 seq.base sha.1.15.4 spdx_licenses.1.4.0 stdlib-shims.0.3.0 swhid_core.0.1 system-mingw.1 topkg.1.1.1 tyxml.4.6.0 uutf.1.0.4 yojson.3.0.0")


C:/: (env CI true)


C:/: (env OCAMLCI true)


C:/: (run (cache (opam-archives (target "c:\\opam\\.opam\\download-cache")))
(network host)
(shell "opam update --depexts && opam install --cli=2.5 --depext-only -y dune-release.dev $DEPS"))


<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[dune-release.dev] synchronised (file://C:/cygwin64/home/opam/src)


[NOTE] Package system-mingw is already installed (current version is 1).
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-env-mingw64 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.4.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0).
[NOTE] Package ocaml is already installed (current version is 5.4.0).
[NOTE] Package mingw-w64-shims is already installed (current version is 0.2.0).
[NOTE] Package host-system-mingw is already installed (current version is 1).
[NOTE] Package host-arch-x86_64 is already installed (current version is 1).
[NOTE] Package flexdll is already installed (current version is 0.44).
[NOTE] Package conf-mingw-w64-gcc-x86_64 is already installed (current version is 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-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).
[NOTE] Package arch-x86_64 is already installed (current version is 1).


The following system packages will first need to be installed:
mingw64-i686-gcc-core


<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>


+ C:\opam\.opam\.cygwin\setup-x86_64.exe "--root" "C:\\cygwin64" "--quiet-mode" "unattended" "--no-shortcuts" "--no-startmenu" "--no-desktop" "--no-admin" "--no-version-check" "--no-write-registry" "--packages" "mingw64-i686-gcc-core"
- Starting cygwin install, version 2.937
- User has backup/restore rights
- User has symlink creation right
- Current Directory: C:\TEMP\cache
- root: C:\cygwin64 system
- Changing gid to Administrators
- Selected local directory: C:\TEMP\cache
- net: Preconfig
- site: https://mirrors.kernel.org/sourceware/cygwin/
- solving: 1 tasks, update: no, use test packages: no
- solving: 6 tasks, update: no, use test packages: no
- Augmented Transaction List:
-    0 install mingw64-i686-binutils                 2.46-1
-    1 install mingw64-i686-windows-default-manifest 6.4-1
-    2 install mingw64-i686-winpthreads              13.0.0-1
-    3 install mingw64-i686-headers                  13.0.0-1
-    4 install mingw64-i686-runtime                  13.0.0-1
-    5 install mingw64-i686-gcc-core                 13.4.0-1
- Downloaded C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/x86_64/release/mingw64-i686-binutils/mingw64-i686-binutils-2.46-1-x86_64.tar.zst
- Downloaded C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-windows-default-manifest/mingw64-i686-windows-default-manifest-6.4-1.tar.xz
- Downloaded C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-winpthreads/mingw64-i686-winpthreads-13.0.0-1-noarch.tar.xz
- Downloaded C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-headers/mingw64-i686-headers-13.0.0-1-noarch.tar.xz
- Downloaded C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-runtime/mingw64-i686-runtime-13.0.0-1-noarch.tar.xz
- Downloaded C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/x86_64/release/mingw64-i686-gcc/mingw64-i686-gcc-core/mingw64-i686-gcc-core-13.4.0-1-x86_64.tar.zst
- Extracting from file://C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/x86_64/release/mingw64-i686-binutils/mingw64-i686-binutils-2.46-1-x86_64.tar.zst
- Extracting from file://C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-windows-default-manifest/mingw64-i686-windows-default-manifest-6.4-1.tar.xz
- Extracting from file://C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-winpthreads/mingw64-i686-winpthreads-13.0.0-1-noarch.tar.xz
- Extracting from file://C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-headers/mingw64-i686-headers-13.0.0-1-noarch.tar.xz
- Extracting from file://C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/noarch/release/mingw64-i686-runtime/mingw64-i686-runtime-13.0.0-1-noarch.tar.xz
- Extracting from file://C:\TEMP\cache/https%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f/x86_64/release/mingw64-i686-gcc/mingw64-i686-gcc-core/mingw64-i686-gcc-core-13.4.0-1-x86_64.tar.zst
- running: C:\cygwin64\bin\dash.exe "/etc/postinstall/0p_000_autorebase.dash"
- running: C:\cygwin64\bin\dash.exe "/etc/postinstall/0p_update-info-dir.dash"
- running: C:\cygwin64\bin\dash.exe "/etc/postinstall/zp_man-db-update-index.dash"
- running: C:\cygwin64\bin\bash.exe --norc --noprofile "/etc/postinstall/zp_zcygsympathy.sh"
- Ending cygwin install
# To update the current shell environment, run: eval $(opam env)
2026-03-25 10:24.21 ---> using "485e65fd8e7bd211d6ab6ca2e7172741a014f2eb77a4dadb66046fafd70eaae7" from cache


C:/: (run (cache (opam-archives (target "c:\\opam\\.opam\\download-cache")))
(network host)
(shell "opam install $DEPS"))
[NOTE] Package system-mingw is already installed (current version is 1).
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-env-mingw64 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.4.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0).
[NOTE] Package ocaml is already installed (current version is 5.4.0).
[NOTE] Package mingw-w64-shims is already installed (current version is 0.2.0).
[NOTE] Package host-system-mingw is already installed (current version is 1).
[NOTE] Package host-arch-x86_64 is already installed (current version is 1).
[NOTE] Package flexdll is already installed (current version is 0.44).
[NOTE] Package conf-mingw-w64-gcc-x86_64 is already installed (current version is 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-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).
[NOTE] Package arch-x86_64 is already installed (current version is 1).
The following actions will be performed:
=== recompile 1 package
- recompile mingw-w64-shims         0.2.0
=== install 44 packages
- install   alcotest                1.9.1
- install   astring                 0.8.5
- install   bos                     0.2.1
- install   camlp-streams           5.0.1
- install   cmdliner                2.1.0
- install   conf-mingw-w64-gcc-i686 1
- install   cppo                    1.8.0
- install   crunch                  4.0.0
- install   curly                   0.3.0
- install   dune                    3.22.0
- install   fmt                     0.11.0
- install   fpath                   0.7.3
- install   jsonm                   1.0.2
- install   logs                    0.10.0
- install   menhir                  20260209
- install   menhirCST               20260209
- install   menhirGLR               20260209
- install   menhirLib               20260209
- install   menhirSdk               20260209
- install   ocaml-syntax-shims      1.0.0
- install   ocamlbuild              0.16.1
- install   ocamlfind               1.9.8
- install   ocamlgraph              2.2.0
- install   odoc                    3.1.0
- install   odoc-parser             3.1.0
- install   opam-core               2.5.0
- install   opam-file-format        2.2.0
- install   opam-format             2.5.0
- install   opam-repository         2.5.0
- install   opam-state              2.5.0
- install   patch                   3.1.0
- install   ptime                   1.2.0
- install   re                      1.14.0
- install   result                  1.5
- install   rresult                 0.7.0
- install   seq                     base
- install   sha                     1.15.4
- install   spdx_licenses           1.4.0
- install   stdlib-shims            0.3.0
- install   swhid_core              0.1
- install   topkg                   1.1.1
- install   tyxml                   4.6.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 bos.0.2.1  (cached)
-> retrieved camlp-streams.5.0.1  (cached)
-> retrieved cmdliner.2.1.0  (cached)
-> retrieved cppo.1.8.0  (cached)
-> retrieved crunch.4.0.0  (cached)
-> retrieved curly.0.3.0  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved jsonm.1.0.2  (cached)
-> retrieved logs.0.10.0  (cached)
-> installed conf-mingw-w64-gcc-i686.1
-> retrieved mingw-w64-shims.0.2.0  (cached)
-> removed   mingw-w64-shims.0.2.0
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved menhir.20260209, menhirCST.20260209, menhirGLR.20260209, menhirLib.20260209, menhirSdk.20260209  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved dune.3.22.0  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocamlgraph.2.2.0  (cached)
-> retrieved odoc.3.1.0, odoc-parser.3.1.0  (cached)
-> retrieved opam-core.2.5.0, opam-format.2.5.0, opam-repository.2.5.0, opam-state.2.5.0  (cached)
-> retrieved opam-file-format.2.2.0  (cached)
-> retrieved patch.3.1.0  (cached)
-> retrieved ptime.1.2.0  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved seq.base  (cached)
-> installed seq.base
-> retrieved result.1.5  (cached)
-> retrieved rresult.0.7.0  (cached)
-> retrieved sha.1.15.4  (cached)
-> retrieved spdx_licenses.1.4.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved swhid_core.0.1  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved tyxml.4.6.0  (cached)
-> retrieved uutf.1.0.4  (cached)
-> retrieved yojson.3.0.0  (cached)
-> installed cmdliner.2.1.0
-> installed mingw-w64-shims.0.2.0
[WARNING] .install file is missing .exe extension for src/findlib/ocamlfind
[WARNING] .install file is missing .exe extension for src/findlib/ocamlfind_opt
[WARNING] Automatically adding .exe to C:\opam\.opam\5.4\.opam-switch\build\ocamlfind.1.9.8\src\findlib\ocamlfind.exe
[WARNING] Automatically adding .exe to C:\opam\.opam\5.4\.opam-switch\build\ocamlfind.1.9.8\src\findlib\ocamlfind_opt.exe
[WARNING] C:\opam\.opam\5.4\bin\safe_camlp4 is a script; the command won't be available
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed dune.3.22.0
-> installed camlp-streams.5.0.1
-> installed cppo.1.8.0
-> installed menhirCST.20260209
-> installed stdlib-shims.0.3.0
-> installed topkg.1.1.1
-> installed menhirGLR.20260209
-> installed menhirLib.20260209
-> installed menhirSdk.20260209
-> installed ocaml-syntax-shims.1.0.0
-> installed patch.3.1.0
-> installed re.1.14.0
-> installed ocamlgraph.2.2.0
-> installed result.1.5
-> installed rresult.0.7.0
-> installed spdx_licenses.1.4.0
-> installed sha.1.15.4
-> installed swhid_core.0.1
-> installed uutf.1.0.4
-> installed yojson.3.0.0
-> installed curly.0.3.0
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed ptime.1.2.0
-> installed jsonm.1.0.2
-> installed tyxml.4.6.0
-> installed alcotest.1.9.1
-> installed crunch.4.0.0
-> installed fpath.0.7.3
-> installed odoc-parser.3.1.0
-> installed logs.0.10.0
-> installed menhir.20260209
-> installed opam-file-format.2.2.0
-> installed odoc.3.1.0
-> installed bos.0.2.1
-> installed opam-core.2.5.0
-> installed opam-format.2.5.0
-> installed opam-repository.2.5.0
-> installed opam-state.2.5.0
Done.
# To update the current shell environment, run: eval $(opam env)
2026-03-25 10:24.21 ---> using "66f1763d2584fb8f0e0acb95fce9c19964223ab6bcb10e943b1603bcd214a6be" from cache


C:/: (copy (src .) (dst /cygwin64/home/opam/src))
2026-03-25 10:27.21 ---> saved as "64181e6482041cb7d508eba78be1acb400e40c77d4313cd15b2d26bc762349b4"


C:/: (run (shell "cd /home/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build"))
File "dune-project", line 32, characters 2-35:
32 |   (dune (and (>= 3.14) :with-test))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: Duplicate dependency on package (dune (and (>= 3.14) :with-test)) in
'depends' field. If you want to specify multiple constraints, combine them
using (and ...).
Hint: To disable this warning, add the following to your dune-project file:
(warnings (duplicate_deps disabled))
(cd _build/default/tests/lib && .\tests.exe -e)
Testing `dune-release'.
This run has ID `XU98W14S'.


[OK]          Github                 0   Parse.ssh_uri_from_http https://gi...
[OK]          Github                 1   Parse.ssh_uri_from_http git@github...
[OK]          Github                 2   Parse.ssh_uri_from_http https://no...
[OK]          Github                 3   Parse.ssh_uri_from_http git@not-gi...
[OK]          Github                 4   Parse.ssh_uri_from_http git://gith...
[OK]          Github                 5   Parse.ssh_uri_from_http git+https:...
[OK]          Github                 6   No project name.
[OK]          Github                 7   With project name.
[OK]          Github                 8   1 package with project name.
[OK]          Github                 9   Multiple packages, just some selec...
[OK]          Github_v3_api          0   simple.
[OK]          Github_v3_api          1   simple.
[OK]          Github_v3_api          2   simple.
[OK]          Github_v3_api          3   basic.
[OK]          Github_v3_api          4   basic.
[OK]          Github_v3_api          5   archive_upload_url.
[OK]          Github_v3_api          6   archive_upload_url.
[OK]          Github_v3_api          7   release_id.
[OK]          Github_v3_api          8   html_url: passing.
[OK]          Github_v3_api          9   html_url: handled failure.
[OK]          Github_v3_api         10   html_url: unhandled failure.
[OK]          Github_v3_api         11   number.
[OK]          Github_v4_api          0   basic.
[OK]          Github_v4_api          1   Pull_request.Request.node_id: simple.
[OK]          Github_v4_api          2   Pull_request.Response.node_id: pas...
[OK]          Github_v4_api          3   Pull_request.Response.node_id: unh...
[OK]          Github_v4_api          4   Pull_request.Request.ready_for_rev...
[OK]          Github_v4_api          5   Pull_request.Response.url: passing.
[OK]          Github_v4_api          6   Pull_request.Response.url: unhandl...
[OK]          Opam_file              0   upgrade.
[OK]          Opam_file              1   upgrade.
[OK]          Pkg                    0   is not a valid version field line.
[OK]          Pkg                    1   version:""is not a valid version f...
[OK]          Pkg                    2   version:"1"is a valid version fiel...
[OK]          Pkg                    3   version:     "1"    is a valid ver...
[OK]          Pkg                    4   version:"1.jfpojef.adp921709"is a ...
[OK]          Pkg                    5   prepare_opam_for_distrib: empty.
[OK]          Pkg                    6   prepare_opam_for_distrib: replace ...
[OK]          Pkg                    7   prepare_opam_for_distrib: only rep...
[OK]          Pkg                    8   distrib_uri:1.
[OK]          Pkg                    9   distrib_uri:2.
[OK]          Pkg                   10   distrib_uri:3.
[OK]          Pkg                   11   distrib_uri:4.
[OK]          Pkg                   12   distrib_uri:5.
[OK]          Pkg                   13   distrib_uri:6.
[OK]          Pkg                   14   distrib_uri:7.
[OK]          Pkg                   15   distrib_uri:8.
[OK]          Pkg                   16   distrib_uri:9.
[OK]          Pkg                   17   ok.
[OK]          Pkg                   18   no name.
[OK]          Pkg                   19   opam file generation.
[OK]          Pkg                   20   leading whitespace.
[OK]          Pkg                   21   Pkg.main: single package.
[OK]          Pkg                   22   Pkg.main: two packages with a name.
[OK]          Pkg                   23   Pkg.main: two packages, no name.
[OK]          Stdext                 0   Path.is_backup_file.
[OK]          Stdext                 1   Path.find_files.
[OK]          Text                   0   change_log_last_entry empty.
[OK]          Text                   1   change_log_last_entry change list 0.
[OK]          Text                   2   change_log_last_entry change list 1.
[OK]          Text                   3   change_log_last_entry change list 2.
[OK]          Text                   4   change_log_last_entry many entries.
[OK]          Text                   5   change_log_last_entry keepachangel...
[OK]          Text                   6   change_log_last_entry keepachangel...
[OK]          Text                   7   rewrite_github_refs rewritten 0.
[OK]          Text                   8   rewrite_github_refs rewritten 1.
[OK]          Text                   9   rewrite_github_refs not rewritten 0.
[OK]          Text                  10   rewrite_github_refs not rewritten 1.
[OK]          Text                  11   rewrite_github_refs not rewritten 2.
[OK]          Text                  12   rewrite_github_refs not rewritten 3.
[OK]          Sos                    0   cmd_error.
[OK]          Vcs                    0   git_escape_tag: empty.
[OK]          Vcs                    1   git_escape_tag: valid.
[OK]          Vcs                    2   git_escape_tag: tilde.
[OK]          Vcs                    3   git_unescape_tag: empty.
[OK]          Vcs                    4   git_unescape_tag: valid.
[OK]          Vcs                    5   git_unescape_tag: tilde.
[OK]          Uri_helpers            0   parse: scheme://domain.com/some/path.
[OK]          Uri_helpers            1   parse: noscheme.com/some/path.
[OK]          Uri_helpers            2   parse: nopath.com.
[OK]          Uri_helpers            3   parse: git@github.com:some/path.
[OK]          Github_repo            0   from_uri "https://github.com/owner...
[OK]          Github_repo            1   from_uri "https://github.com/owner...
[OK]          Github_repo            2   from_uri "git+https://github.com/o...
[OK]          Github_repo            3   from_uri "git@github.com:owner/rep...
[OK]          Github_repo            4   from_uri "ssh://git@github.com:own...
[OK]          Github_repo            5   from_uri "git+ssh://git@github.com...
[OK]          Github_repo            6   from_uri "https://owner.github.io/...
[OK]          Github_repo            7   from_uri "https://owner.github.io/...
[OK]          Github_repo            8   from_uri "https://gitlab.com/owner...
[OK]          Github_repo            9   https_uri: "Simple".
[OK]          Github_repo           10   ssh_uri: "Simple".
[OK]          Github_repo           11   from_gh_pages: https://user.github...
[OK]          Github_repo           12   from_gh_pages: https://user.github...
[OK]          Github_repo           13   from_gh_pages: https://user.github...
[OK]          Github_repo           14   from_gh_pages: https://user.github...
[OK]          Github_repo           15   from_gh_pages: https://user.github...


Full test results in `~\src\_build\default\tests\lib\_build\_tests\XU98W14S'.
Test Successful in 8.009s. 97 tests run.
File "tests/bin/errors/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/errors/run.t _build/default/tests/bin/errors/run.t.corrected
diff --git a/_build/default/tests/bin/errors/run.t b/_build/default/tests/bin/errors/run.t.corrected
index 7c048ce..68f7ab8 100755
--- a/_build/default/tests/bin/errors/run.t
+++ b/_build/default/tests/bin/errors/run.t.corrected
@@ -26,13 +26,13 @@ We need to set up a git project for dune-release to work properly
Let's provoke a one-line error


$ dune-release delegate-info hi
-  dune-release: [ERROR] Unknown variable "hi"
+  dune-release.exe: [ERROR] Unknown variable "hi"

[3]


Let's provoke a multi-line error


$ dune-release config hi
-  dune-release: [ERROR] Invalid dune-release config invocation. Usage:
+  dune-release.exe: [ERROR] Invalid dune-release config invocation. Usage:

dune-release config
dune-release config show [KEY]
dune-release config set KEY VALUE
@@ -46,7 +46,7 @@ Let's make `dune-release` run a `git`-command that's doomed to fail. After the c
$ dune-release tag --commit=1
[-] Extracting tag from first entry in CHANGES.md
[-] Using tag "0.1.0"
-  dune-release: [ERROR] Due to invalid commit-ish `1`:
+  dune-release.exe: [ERROR] Due to invalid commit-ish `1`:

Exit code 128 from command
`git --git-dir .git rev-parse --verify 1^0`:
fatal: Needed a single revision
File "tests/bin/opam-pkg-distrib-file-opt/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/opam-pkg-distrib-file-opt/run.t _build/default/tests/bin/opam-pkg-distrib-file-opt/run.t.corrected
diff --git a/_build/default/tests/bin/opam-pkg-distrib-file-opt/run.t b/_build/default/tests/bin/opam-pkg-distrib-file-opt/run.t.corrected
index 697c8f6..ff846a0 100755
--- a/_build/default/tests/bin/opam-pkg-distrib-file-opt/run.t
+++ b/_build/default/tests/bin/opam-pkg-distrib-file-opt/run.t.corrected
@@ -38,6 +38,6 @@ Running the following should not fail if the dune-release generated tarball
> --dist-uri "https://my.custom.url/mytarball.tbz" \
> --pkg-version 0.1.0
[-] Creating opam package description for whatever
-  [+] Wrote opam package description _build/whatever.0.1.0/opam
-  dune-release: [WARNING] The repo is dirty. The opam package may be
-                          inconsistent with the distribution.
+  [+] Wrote opam package description _build\whatever.0.1.0\opam

+  dune-release.exe: [WARNING] The repo is dirty. The opam package may be

+                              inconsistent with the distribution.

File "tests/bin/delegate-info/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/delegate-info/run.t _build/default/tests/bin/delegate-info/run.t.corrected
diff --git a/_build/default/tests/bin/delegate-info/run.t b/_build/default/tests/bin/delegate-info/run.t.corrected
index 84b35b1..ea3c9ce 100755
--- a/_build/default/tests/bin/delegate-info/run.t
+++ b/_build/default/tests/bin/delegate-info/run.t.corrected
@@ -27,12 +27,12 @@ We need to set up a git project for dune-release to work properly
Dune-release delegate-info tarball should print the path to the tarball:


$ dune-release delegate-info tarball
-  _build/whatever-0.1.0.tbz
+  _build\whatever-0.1.0.tbz



Dune-release delegate-info docdir should print the path to the docdir:


$ dune-release delegate-info docdir
-  _build/default/_doc/_html
+  _build\default\_doc\_html



Dune-release delegate-info publication-message should print the publication-message:


File "tests/bin/include-submodules/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/include-submodules/run.t _build/default/tests/bin/include-submodules/run.t.corrected
diff --git a/_build/default/tests/bin/include-submodules/run.t b/_build/default/tests/bin/include-submodules/run.t.corrected
index 3d9cdd0..932b838 100755
--- a/_build/default/tests/bin/include-submodules/run.t
+++ b/_build/default/tests/bin/include-submodules/run.t.corrected
@@ -32,4 +32,9 @@ Generating the tarball with `--include-submodules` should call `git submodule
update --init` from within the tarball build dir:


$ dune-release distrib --skip-lint --skip-build --skip-tests --include-submodules --dry-run | grep -- "--init"
-  -: exec: git --git-dir .git submodule update --init
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-0.1.0.build`:

+    Cloning into '_build\whatever-0.1.0.build'...

+    fatal: hardlink different from source at '_build\whatever-0.1.0.build/.git/objects/03/1bee930442abc632390dabf6dd46d2dd73ee21'

+    

+  [1]

File "tests/bin/include-versioned-dotfiles/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/include-versioned-dotfiles/run.t _build/default/tests/bin/include-versioned-dotfiles/run.t.corrected
diff --git a/_build/default/tests/bin/include-versioned-dotfiles/run.t b/_build/default/tests/bin/include-versioned-dotfiles/run.t.corrected
index 8436e79..127de60 100755
--- a/_build/default/tests/bin/include-versioned-dotfiles/run.t
+++ b/_build/default/tests/bin/include-versioned-dotfiles/run.t.corrected
@@ -36,6 +36,18 @@ We need to set up a git project for dune-release to work properly
The generated tarball should contain the dotfile


$ dune-release distrib --skip-lint --skip-build --skip-tests > /dev/null
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-0.1.0.build`:

+    Cloning into '_build\whatever-0.1.0.build'...

+    fatal: hardlink different from source at '_build\whatever-0.1.0.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  [3]

$ tar -xjf _build/whatever-0.1.0.tbz
+  tar (child): _build/whatever-0.1.0.tbz: Cannot open: No such file or directory

+  tar (child): Error is not recoverable: exiting now

+  tar: Child returned status 2

+  tar: Error is not recoverable: exiting now

+  [2]

$ cat whatever-0.1.0/.somedotfile
-  hello
+  cat: whatever-0.1.0/.somedotfile: No such file or directory

+  [1]

File "tests/bin/non-github-uri/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/non-github-uri/run.t _build/default/tests/bin/non-github-uri/run.t.corrected
diff --git a/_build/default/tests/bin/non-github-uri/run.t b/_build/default/tests/bin/non-github-uri/run.t.corrected
index bde1544..30ebd67 100755
--- a/_build/default/tests/bin/non-github-uri/run.t
+++ b/_build/default/tests/bin/non-github-uri/run.t.corrected
@@ -49,12 +49,10 @@ archive should fail as only publishing to github is supported.
(1) distrib


$ dune-release distrib --dry-run 2>&1 | grep -E "FAIL|ERROR"
-  [FAIL] opam fields homepage and dev-repo can be parsed by dune-release
-  dune-release: [ERROR] Github development repository URL could not be inferred
-  [FAIL] lint of _build/whatever-0.1.0 and package whatever failure: 1 errors.
+  dune-release.exe: [ERROR] Exit code 128 from command



(2) publish


$ dune-release publish --dry-run > /dev/null
-  dune-release: [ERROR] Github development repository URL could not be inferred from opam files.
+  dune-release.exe: [ERROR] Github development repository URL could not be inferred from opam files.

[3]
File "tests/bin/tag-2-packages/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/tag-2-packages/run.t _build/default/tests/bin/tag-2-packages/run.t.corrected
diff --git a/_build/default/tests/bin/tag-2-packages/run.t b/_build/default/tests/bin/tag-2-packages/run.t.corrected
index cac69b8..ca5ccd7 100755
--- a/_build/default/tests/bin/tag-2-packages/run.t
+++ b/_build/default/tests/bin/tag-2-packages/run.t.corrected
@@ -22,7 +22,7 @@ Set up a project with two packaged libraries, no name in `dune-project`.
Expect an error message about the name in `dune-project`.


$ dune-release tag -y
-  dune-release: [ERROR] cannot determine distribution name automatically: add (name <name>) to dune-project
+  dune-release.exe: [ERROR] cannot determine distribution name automatically: add (name <name>) to dune-project

[1]


Use `(name <name>)` in `dune-project` (not committed).
File "tests/bin/invalid-version-number/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/invalid-version-number/run.t _build/default/tests/bin/invalid-version-number/run.t.corrected
diff --git a/_build/default/tests/bin/invalid-version-number/run.t b/_build/default/tests/bin/invalid-version-number/run.t.corrected
index f6c7c63..64842e9 100755
--- a/_build/default/tests/bin/invalid-version-number/run.t
+++ b/_build/default/tests/bin/invalid-version-number/run.t.corrected
@@ -41,32 +41,21 @@ We do the whole dune-release process
(1) distrib


$ dune-release distrib --dry-run | grep preview1
-  => rmdir _build/whatever-3.3.4~4.10preview1.build
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git

+         _build\whatever-3.3.4~4.10preview1.build`:

+    Cloning into '_build\whatever-3.3.4~4.10preview1.build'...

+    fatal: hardlink different from source at '_build\whatever-3.3.4~4.10preview1.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  => rmdir _build\whatever-3.3.4~4.10preview1.build

-: exec: git --git-dir .git rev-parse --verify refs/tags/3.3.4_4.10preview1
=> exec: git --git-dir .git show -s --format=%ct 3.3.4_4.10preview1^0
-       git --git-dir .git clone --local .git   _build/whatever-3.3.4~4.10preview1.build
-       git --git-dir _build/whatever-3.3.4~4.10preview1.build/.git --work-tree   _build/whatever-3.3.4~4.10preview1.build/ checkout --quiet -b   dune-release-dist-3.3.4_4.10preview1 3.3.4_4.10preview1
-  => chdir _build/whatever-3.3.4~4.10preview1.build
-     [in _build/whatever-3.3.4~4.10preview1.build]
-  -: rmdir _build/whatever-3.3.4~4.10preview1.build
-  [+] Wrote archive _build/whatever-3.3.4~4.10preview1.tbz
-  => exec: tar -xjf whatever-3.3.4~4.10preview1.tbz
-  [-] Performing lint for package whatever in _build/whatever-3.3.4~4.10preview1
-  => chdir _build/whatever-3.3.4~4.10preview1
-     [in _build/whatever-3.3.4~4.10preview1]
-  [ OK ] lint of _build/whatever-3.3.4~4.10preview1 and package whatever success
-  [-] Building package in _build/whatever-3.3.4~4.10preview1
-  => chdir _build/whatever-3.3.4~4.10preview1
-  [-] Running package tests in _build/whatever-3.3.4~4.10preview1
-  => chdir _build/whatever-3.3.4~4.10preview1
-  -: rmdir _build/whatever-3.3.4~4.10preview1
-  [+] Distribution for whatever 3.3.4~4.10preview1
-  [+] Archive _build/whatever-3.3.4~4.10preview1.tbz
+       git --git-dir .git clone --local .git   _build\whatever-3.3.4~4.10preview1.build



(2) publish


$ dune-release publish --dry-run --yes | grep preview1
-  => must exists _build/whatever-3.3.4~4.10preview1.tbz
+  -: must exists _build\whatever-3.3.4~4.10preview1.tbz

-: exec: git --git-dir .git rev-parse --verify refs/tags/3.3.4_4.10preview1
-: exec: git --git-dir .git rev-parse --verify refs/tags/3.3.4_4.10preview1
git --git-dir .git ls-remote --quiet --tags https://github.com/user/repo.git   3.3.4_4.10preview1
@@ -74,17 +63,12 @@ We do the whole dune-release process
git --git-dir .git push --force git@github.com:user/repo.git   3.3.4_4.10preview1
[-] Creating release 3.3.4~4.10preview1 on https://github.com/user/repo.git via github's API
{"tag_name":"3.3.4_4.10preview1","name":"3.3.4~4.10preview1","body":"CHANGES:\n\n- Some other feature\n","draft":false}
-  [-] Uploading _build/whatever-3.3.4~4.10preview1.tbz as a release asset for 3.3.4~4.10preview1 via github's API
-       @_build/whatever-3.3.4~4.10preview1.tbz
-  -: write _build/asset-3.3.4~4.10preview1.url
+  [-] Uploading _build\whatever-3.3.4~4.10preview1.tbz as a release asset for 3.3.4~4.10preview1 via github's API

+       @_build\whatever-3.3.4~4.10preview1.tbz

+  -: write _build\asset-3.3.4~4.10preview1.url



Check the changelog


$ cat _build/whatever-3.3.4~4.10preview1/CHANGES.md
-  ## 3.3.4~4.10preview1
-  
-  - Some other feature
-  
-  ## 0.0.0
-  
-  - Some feature
+  cat: _build/whatever-3.3.4~4.10preview1/CHANGES.md: No such file or directory

+  [1]

File "tests/bin/x-commit-hash/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/x-commit-hash/run.t _build/default/tests/bin/x-commit-hash/run.t.corrected
diff --git a/_build/default/tests/bin/x-commit-hash/run.t b/_build/default/tests/bin/x-commit-hash/run.t.corrected
index 325ff27..06491f5 100755
--- a/_build/default/tests/bin/x-commit-hash/run.t
+++ b/_build/default/tests/bin/x-commit-hash/run.t.corrected
@@ -40,16 +40,22 @@ We need to set up a git project for dune-release to work properly
We make a dry-run release


$ dune-release distrib --dry-run > /dev/null
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-0.1.0.build`:

+    Cloning into '_build\whatever-0.1.0.build'...

+    fatal: hardlink different from source at '_build\whatever-0.1.0.build/.git/objects/0a/81a6ced237fdaa307c3e73c436d828674ca226'

+    

+  [3]



We create an opam package:


$ dune-release opam pkg
-  [-] Creating opam package description for whatever
-  dune-release: [WARNING] Could not find _build/asset-0.1.0.url.
-  dune-release: [WARNING] using https://github.com/foo/whatever/releases/download/0.1.0/whatever-0.1.0.tbz for as url.src. Note that it might differ from the one generated by Github
-  [+] Wrote opam package description _build/whatever.0.1.0/opam
+  dune-release.exe: [ERROR] _build\whatever-0.1.0.tbz: No such file

+    Did you forget to call 'dune-release distrib' ?

+  [3]



We make sure that `x-commit-hash` has been set in the OPAM file:


$ cat _build/whatever.0.1.0/opam | grep -o ^x-commit-hash:
-  x-commit-hash:
+  cat: _build/whatever.0.1.0/opam: No such file or directory

+  [1]

File "tests/bin/opam-pkg-distrib-multiple/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/opam-pkg-distrib-multiple/run.t _build/default/tests/bin/opam-pkg-distrib-multiple/run.t.corrected
diff --git a/_build/default/tests/bin/opam-pkg-distrib-multiple/run.t b/_build/default/tests/bin/opam-pkg-distrib-multiple/run.t.corrected
index 9ff147e..5c8b1dc 100755
--- a/_build/default/tests/bin/opam-pkg-distrib-multiple/run.t
+++ b/_build/default/tests/bin/opam-pkg-distrib-multiple/run.t.corrected
@@ -42,7 +42,12 @@ Do the release and create a tarball


$ dune-release tag -y v0.1.0 > /dev/null
$ dune-release distrib --dry-run > /dev/null
-  [1]
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-0.1.0.build`:

+    Cloning into '_build\whatever-0.1.0.build'...

+    fatal: hardlink different from source at '_build\whatever-0.1.0.build/.git/objects/0d/2b195ab3dbefc1a76cbe63762b3163d6a0a24a'

+    

+  [3]



To avoid having to interact with the outside world, we set the URL of the asset
manually
@@ -52,7 +57,12 @@ manually
Generating the OPAM files should pick up the right URL for both OPAM files:


$ dune-release opam pkg > /dev/null
+  dune-release.exe: [ERROR] _build\whatever-0.1.0.tbz: No such file

+    Did you forget to call 'dune-release distrib' ?

+  [3]

$ cat _build/whatever.0.1.0/opam | grep 'src:'
-    src: "https://some.fake.url/mytarball.tbz"
+  cat: _build/whatever.0.1.0/opam: No such file or directory

+  [1]

$ cat _build/whatever-sub.0.1.0/opam | grep 'src:'
-    src: "https://some.fake.url/mytarball.tbz"
+  cat: _build/whatever-sub.0.1.0/opam: No such file or directory

+  [1]

File "tests/bin/draft/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/draft/run.t _build/default/tests/bin/draft/run.t.corrected
diff --git a/_build/default/tests/bin/draft/run.t b/_build/default/tests/bin/draft/run.t.corrected
index f050d2d..2439c6e 100755
--- a/_build/default/tests/bin/draft/run.t
+++ b/_build/default/tests/bin/draft/run.t.corrected
@@ -41,6 +41,12 @@ We do the whole `dune-release` process but create a draft release on GitHub.
(1) `distrib` as normal


$ dune-release distrib --dry-run > /dev/null
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-0.1.0.build`:

+    Cloning into '_build\whatever-0.1.0.build'...

+    fatal: hardlink different from source at '_build\whatever-0.1.0.build/.git/objects/08/da728f7f351cc9131b8f5a5e836ba975316e12'

+    

+  [3]



(2) `publish` when asking for the release to be created as a draft should
create a draft release and submit it as such to GitHub. It should also write a
@@ -50,4 +56,4 @@ create a draft release and submit it as such to GitHub. It should also write a
[-] Creating draft release 0.1.0 on https://github.com/foo/whatever.git via github's API
{"tag_name":"0.1.0","name":"0.1.0","body":"CHANGES:\n\n- Some other feature\n","draft":true}
[+] Successfully created draft release with id 1
-  -: write _build/whatever-0.1.0.draft_release
+  -: write _build\whatever-0.1.0.draft_release

File "tests/bin/tag/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/tag/run.t _build/default/tests/bin/tag/run.t.corrected
diff --git a/_build/default/tests/bin/tag/run.t b/_build/default/tests/bin/tag/run.t.corrected
index 70ba019..7979ad3 100755
--- a/_build/default/tests/bin/tag/run.t
+++ b/_build/default/tests/bin/tag/run.t.corrected
@@ -55,7 +55,7 @@ Running `dune-release tag` again, but providing a different commit should inform
$ dune-release tag --commit=HEAD^
[-] Extracting tag from first entry in CHANGES.md
[-] Using tag "0.1.0"
-  dune-release: [ERROR] A tag with name 0.1.0 already exists, but points to a different commit. You can delete that tag using the `-d` flag.
+  dune-release.exe: [ERROR] A tag with name 0.1.0 already exists, but points to a different commit. You can delete that tag using the `-d` flag.

[3]


Trying to delete the created tag providing a different commit should give a warning. The answer to the question
@@ -65,7 +65,7 @@ asking for confirmation should default to "no".
[-] Extracting tag from first entry in CHANGES.md
[-] Using tag "0.1.0"
[?] Warning: Tag 0.1.0 does not point to the commit you've provided (default: HEAD). Do you want to delete it anyways? [y/N]
-  dune-release: [ERROR] Aborting on user demand
+  dune-release.exe: [ERROR] Aborting on user demand

[3]


Deleting the created tag providing the commit it points to (here the default, so HEAD) should work without warning.
File "tests/bin/url-file/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/url-file/run.t _build/default/tests/bin/url-file/run.t.corrected
diff --git a/_build/default/tests/bin/url-file/run.t b/_build/default/tests/bin/url-file/run.t.corrected
index 487969e..4a789cf 100755
--- a/_build/default/tests/bin/url-file/run.t
+++ b/_build/default/tests/bin/url-file/run.t.corrected
@@ -41,6 +41,12 @@ We make a dry-run release and check that the opam file is correct:
(1) Creating the distribution archive


$ dune-release distrib --dry-run > /dev/null
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-0.1.0.build`:

+    Cloning into '_build\whatever-0.1.0.build'...

+    fatal: hardlink different from source at '_build\whatever-0.1.0.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  [3]



(2) Publishing the distribution


@@ -50,18 +56,11 @@ We make a dry-run release and check that the opam file is correct:


$ echo "https://foo.fr/archive/foo/foo.tbz" > _build/asset-0.1.0.url
$ dune-release opam pkg
-  [-] Creating opam package description for whatever
-  [+] Wrote opam package description _build/whatever.0.1.0/opam
+  dune-release.exe: [ERROR] _build\whatever-0.1.0.tbz: No such file

+    Did you forget to call 'dune-release distrib' ?

+  [3]



(4) Check that the OPAM file contains the right data


$ cat _build/whatever.0.1.0/opam | sed -e 's/\(x-commit-hash:\) "[0-9a-f]*"/\1 "1abe11ed"/' | sed -n '1h;1!H;${g;s/checksum: \[.*\]/checksum: []/;p;}'
-  opam-version: "2.0"
-  homepage: "https://github.com/foo/whatever"
-  dev-repo: "git+https://github.com/foo/whatever.git"
-  synopsis: "whatever"
-  url {
-    src: "https://foo.fr/archive/foo/foo.tbz"
-    checksum: []
-  }
-  x-commit-hash: "1abe11ed"
+  cat: _build/whatever.0.1.0/opam: No such file or directory

File "tests/bin/distrib-name/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/distrib-name/run.t _build/default/tests/bin/distrib-name/run.t.corrected
diff --git a/_build/default/tests/bin/distrib-name/run.t b/_build/default/tests/bin/distrib-name/run.t.corrected
index f5775ec..74e8dc5 100755
--- a/_build/default/tests/bin/distrib-name/run.t
+++ b/_build/default/tests/bin/distrib-name/run.t.corrected
@@ -36,13 +36,13 @@ Try `dune-release distrib` with no project name, it should fail since it does
not know how to call the project.


$ dune-release distrib --skip-lint > /dev/null
-  dune-release: [ERROR] cannot determine distribution name automatically: add (name <name>) to dune-project
+  dune-release.exe: [ERROR] cannot determine distribution name automatically: add (name <name>) to dune-project

[1]


dune-release distrib --dry-run with no project name should fail as well.


$ dune-release distrib --skip-lint --dry-run > /dev/null
-  dune-release: [ERROR] cannot determine distribution name automatically: add (name <name>) to dune-project
+  dune-release.exe: [ERROR] cannot determine distribution name automatically: add (name <name>) to dune-project

[1]


Add an uncommitted name to dune-project. (Because of a dune limitation
@@ -54,13 +54,14 @@ Run dune-release distrib with the uncommitted name in dune-project.


$ dune-release tag -y > /dev/null
$ dune-release distrib --skip-lint > /dev/null
-  dune-release: [WARNING] The repo is dirty. Uncommitted changes to files
-                          (including dune-project) will not be included in the
-                          distribution archive.
-  File "dune-project", line 1, characters 0-0:
-  Error: The project name is not defined, please add a (name <name>) field to
-  your dune-project file.
-  dune-release: [ERROR] run ['dune' 'subst']: exited with 1
+  dune-release.exe: [WARNING] The repo is dirty. Uncommitted changes to files

+                              (including dune-project) will not be included in

+                              the distribution archive.

+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\liba-0.42.0.build`:

+    Cloning into '_build\liba-0.42.0.build'...

+    fatal: hardlink different from source at '_build\liba-0.42.0.build/.git/objects/01/3b84db6175a3e59b93d2327933312f3a6d365d'

+    

[3]


Commit the change in dune-project and run distrib.
@@ -68,14 +69,8 @@ Commit the change in dune-project and run distrib.
$ git add dune-project && git commit -m 'add name' > /dev/null
$ dune-release distrib --skip-lint | make_dune_release_deterministic
[-] Building source archive
-  [+] Wrote archive _build/liba-0.42.0-1-<deterministic>.tbz
-  
-  [-] Building package in _build/liba-0.42.0-1-<deterministic>
-  [ OK ] package(s) build
-  
-  [-] Running package tests in _build/liba-0.42.0-1-<deterministic>
-  [ OK ] package(s) pass the tests
-  
-  [+] Distribution for liba 0.42.0-1-<deterministic>
-  [+] Commit <deterministic>
-  [+] Archive _build/liba-0.42.0-1-<deterministic>.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\liba-0.42.0-1-gcb3b6c9.build`:

+    Cloning into '_build\liba-0.42.0-1-gcb3b6c9.build'...

+    fatal: hardlink different from source at '_build\liba-0.42.0-1-gcb3b6c9.build/.git/objects/01/3b84db6175a3e59b93d2327933312f3a6d365d'

+    
File "tests/bin/opam-file-locations/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/opam-file-locations/run.t _build/default/tests/bin/opam-file-locations/run.t.corrected
diff --git a/_build/default/tests/bin/opam-file-locations/run.t b/_build/default/tests/bin/opam-file-locations/run.t.corrected
index 69e3bd9..33d9fe1 100755
--- a/_build/default/tests/bin/opam-file-locations/run.t
+++ b/_build/default/tests/bin/opam-file-locations/run.t.corrected
@@ -37,17 +37,11 @@ Tagging should work


$ dune-release distrib --skip-lint | make_dune_release_deterministic
[-] Building source archive
-  [+] Wrote archive _build/myproject-0.1.0.tbz
-  
-  [-] Building package in _build/myproject-0.1.0
-  [ OK ] package(s) build
-  
-  [-] Running package tests in _build/myproject-0.1.0
-  [ OK ] package(s) pass the tests
-  
-  [+] Distribution for myproject 0.1.0
-  [+] Commit <deterministic>
-  [+] Archive _build/myproject-0.1.0.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\myproject-0.1.0.build`:

+    Cloning into '_build\myproject-0.1.0.build'...

+    fatal: hardlink different from source at '_build\myproject-0.1.0.build/.git/objects/01/3b84db6175a3e59b93d2327933312f3a6d365d'

+    



Now let's move the `.opam` file to the `opam/` subfolder. OPAM supports `.opam`
files in the `opam/` subfolder, but for dune to pick it up we need to tell it
@@ -86,19 +80,17 @@ And as well have a release tarball


$ dune-release distrib --skip-lint | make_dune_release_deterministic
[-] Building source archive
-  [+] Wrote archive _build/myproject-0.2.0.tbz
-  
-  [-] Building package in _build/myproject-0.2.0
-  [ OK ] package(s) build
-  
-  [-] Running package tests in _build/myproject-0.2.0
-  [ OK ] package(s) pass the tests
-  
-  [+] Distribution for myproject 0.2.0
-  [+] Commit <deterministic>
-  [+] Archive _build/myproject-0.2.0.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\myproject-0.2.0.build`:

+    Cloning into '_build\myproject-0.2.0.build'...

+    fatal: hardlink different from source at '_build\myproject-0.2.0.build/.git/objects/01/3b84db6175a3e59b93d2327933312f3a6d365d'

+    



Which contains the `.opam` file in the right location:


$ tar tjf _build/myproject-0.2.0.tbz | grep \\.opam
-  myproject-0.2.0/opam/myproject.opam
+  tar (child): _build/myproject-0.2.0.tbz: Cannot open: No such file or directory

+  tar (child): Error is not recoverable: exiting now

+  tar: Child returned status 2

+  tar: Error is not recoverable: exiting now

+  [1]

File "tests/bin/version-from-tag/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/version-from-tag/run.t _build/default/tests/bin/version-from-tag/run.t.corrected
diff --git a/_build/default/tests/bin/version-from-tag/run.t b/_build/default/tests/bin/version-from-tag/run.t.corrected
index f356c43..a91ec83 100755
--- a/_build/default/tests/bin/version-from-tag/run.t
+++ b/_build/default/tests/bin/version-from-tag/run.t.corrected
@@ -37,21 +37,36 @@ Creating a `git tag` manually since the project might be using this workflow


$ git tag -a 23.0 -m "Release 23.0"
$ dune-release distrib --dry-run | grep "Archive _build/"
-  [+] Archive _build/whatever-23.0.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-23.0.build`:

+    Cloning into '_build\whatever-23.0.build'...

+    fatal: hardlink different from source at '_build\whatever-23.0.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  [1]



Also, while not the preferred way, unannotated tags should be possible as well


$ git commit --allow-empty -m "Testing" --quiet
$ git tag 42.0
$ dune-release distrib --dry-run | grep "Archive _build/"
-  [+] Archive _build/whatever-42.0.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-42.0.build`:

+    Cloning into '_build\whatever-42.0.build'...

+    fatal: hardlink different from source at '_build\whatever-42.0.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  [1]



It should also properly map back tags to releases


$ git commit --allow-empty -m "Testing" --quiet
$ git tag -a 1337.0_beta1 -m 'Release 1337~beta1'
$ dune-release distrib --dry-run | grep "Archive _build/"
-  [+] Archive _build/whatever-1337.0~beta1.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-1337.0~beta1.build`:

+    Cloning into '_build\whatever-1337.0~beta1.build'...

+    fatal: hardlink different from source at '_build\whatever-1337.0~beta1.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  [1]



Also, specifying the tag manually should work


@@ -60,4 +75,9 @@ Also, specifying the tag manually should work
[-] Using tag "9000_alpha3"
[+] Tagged HEAD with version 9000_alpha3
$ dune-release distrib --dry-run | grep "Archive _build/"
-  [+] Archive _build/whatever-9000~alpha3.tbz
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\whatever-9000~alpha3.build`:

+    Cloning into '_build\whatever-9000~alpha3.build'...

+    fatal: hardlink different from source at '_build\whatever-9000~alpha3.build/.git/objects/18/a0c90cefcea75b4bda3d07d036cbd00dc2e44f'

+    

+  [1]

File "tests/bin/check/run.t", line 1, characters 0-0:
C:\cygwin64\bin\git.exe --no-pager diff --no-index --color=always -u --ignore-cr-at-eol _build/default/tests/bin/check/run.t _build/default/tests/bin/check/run.t.corrected
diff --git a/_build/default/tests/bin/check/run.t b/_build/default/tests/bin/check/run.t.corrected
index 01dfb50..1dcf016 100755
--- a/_build/default/tests/bin/check/run.t
+++ b/_build/default/tests/bin/check/run.t.corrected
@@ -32,13 +32,13 @@ Test that the lint check produces an error if the change log is missing:
[ OK ] The dev-repo field of my_pkg.opam contains a github uri.
[ OK ] The dune project contains a name stanza.


-  [-] Building package in <test_directory>
+  [-] Building package in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) build


-  [-] Running package tests in <test_directory>
+  [-] Running package tests in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) pass the tests


-  [-] Performing lint for package my_pkg in <test_directory>
+  [-] Performing lint for package my_pkg in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[FAIL] File README is missing.
[FAIL] File LICENSE is missing.
[FAIL] File CHANGES is missing.
@@ -66,13 +66,13 @@ If the condition described above is fulfilled, there are 5 checks to be performe
[ OK ] The dev-repo field of my_pkg.opam contains a github uri.
[ OK ] The dune project contains a name stanza.


-  [-] Building package in <test_directory>
+  [-] Building package in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) build


-  [-] Running package tests in <test_directory>
+  [-] Running package tests in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) pass the tests


-  [-] Performing lint for package my_pkg in <test_directory>
+  [-] Performing lint for package my_pkg in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[FAIL] File README is missing.
[FAIL] File LICENSE is missing.
[ OK ] File CHANGES is present.
@@ -106,13 +106,13 @@ In multi package projects, the whole lint process (including the file lints, eve
[ OK ] The dev-repo field of my_pkg.opam contains a github uri.
[ OK ] The dune project contains a name stanza.


-  [-] Building package in <test_directory>
+  [-] Building package in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) build


-  [-] Running package tests in <test_directory>
+  [-] Running package tests in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) pass the tests


-  [-] Performing lint for package my_pkg in <test_directory>
+  [-] Performing lint for package my_pkg in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[FAIL] File README is missing.
[FAIL] File LICENSE is missing.
[ OK ] File CHANGES is present.
@@ -122,7 +122,7 @@ In multi package projects, the whole lint process (including the file lints, eve
[ OK ] opam fields homepage and dev-repo can be parsed by dune-release
[FAIL] lint of <project_dir> and package my_pkg failure: 2 errors.


-  [-] Performing lint for package my_pkg-sub in <test_directory>
+  [-] Performing lint for package my_pkg-sub in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[FAIL] File README is missing.
[FAIL] File LICENSE is missing.
[ OK ] File CHANGES is present.
@@ -142,10 +142,10 @@ In the same way in which the user can skip the lint check when releasing the tar
[ OK ] The dev-repo field of my_pkg.opam contains a github uri.
[ OK ] The dune project contains a name stanza.


-  [-] Building package in <test_directory>
+  [-] Building package in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) build


-  [-] Running package tests in <test_directory>
+  [-] Running package tests in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) pass the tests


[-] Validating change log.
@@ -158,7 +158,7 @@ Same for skipping the tests
[ OK ] The dev-repo field of my_pkg.opam contains a github uri.
[ OK ] The dune project contains a name stanza.


-  [-] Building package in <test_directory>
+  [-] Building package in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) build


[-] Validating change log.
@@ -181,10 +181,10 @@ Same for skipping the change log validation
[ OK ] The dev-repo field of my_pkg.opam contains a github uri.
[ OK ] The dune project contains a name stanza.


-  [-] Building package in $TESTCASE_ROOT
+  [-] Building package in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) build


-  [-] Running package tests in $TESTCASE_ROOT
+  [-] Running package tests in C:\cygwin64\home\opam\src\_build\.sandbox\6df15c7c0c987580fa951c1d6dba587e\default\tests\bin\check

[ OK ] package(s) pass the tests


Create a project with an opam file without dev-repo field
@@ -293,14 +293,17 @@ The [--working-tree] option used so far, makes `check` be run on the working tre
or the last tag on HEAD.


$ dune-release check --skip-lint --skip-build
-  [-] Checking dune-release compatibility.
-  [FAIL] main package my_pkg.opam is not dune-release compatible. Github development repository URL could not be inferred from opam files.
-  Have you provided a github uri in the dev-repo field of your main opam file? If you don't use github, you can still use dune-release for everything but for publishing your release on the web. In that case, have a look at `dune-release delegate-info`.
-  [FAIL] The dune project doesn't contain a name stanza. Please, add one.
-  
-  [-] Validating change log.
-  [ OK ] Change log is valid.
-  [2]
+  dune-release.exe: [ERROR] Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\.dune-release-check`:

+    Cloning into '_build\.dune-release-check'...

+    fatal: hardlink different from source at '_build\.dune-release-check/.git/objects/01/3b84db6175a3e59b93d2327933312f3a6d365d'

+    

+    Error while running `check`: Exit code 128 from command

+      `git --git-dir .git clone --local .git _build\.dune-release-check`:

+    Cloning into '_build\.dune-release-check'...

+    fatal: hardlink different from source at '_build\.dune-release-check/.git/objects/01/3b84db6175a3e59b93d2327933312f3a6d365d'

+    

+  [3]



Create an invalid change log file (the title is at the same H level to the rest of the file):


@@ -321,8 +324,8 @@ Create an invalid change log file (the title is at the same H level to the rest


[-] Validating change log.
[FAIL] Change log is not valid.
-  dune-release: [ERROR] ./ChangeLog: Could not parse change log.
-    Error while running `check`: ./ChangeLog: Could not parse change log.
+  dune-release.exe: [ERROR] .\ChangeLog: Could not parse change log.

+    Error while running `check`: .\ChangeLog: Could not parse change log.

[3]


Skip the change log check while the change log file is invalid.
"C:\cygwin64\bin\bash.exe" "-lc" "cd /home/opam/src && opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1
2026-03-25 10:30.49: Job failed: Failed: Build failed