Dk 2.1.3 - Please upgrade!

THE DkML DISTRIBUTION HAS BEEN SUNSET

End-of-life is December 31, 2026.

The announcement at https://discuss.ocaml.org/t/ann-sunsetting-of-dkml-distribution/17530 has full details.

UPGRADING YOUR OUT-OF-DATE VERSION

In PowerShell do:

winget remove dkml

You’ll see Uninstall failed with exit code: 4294967295 but otherwise it should succeed.

Then do:

winget install dkml

Errata

  1. winget upgrade and winget remove will fail with an innocuous error:

    Uninstall failed with exit code: 4294967295

    Just ignore the error and continue with winget install dkml. Issue: https://gitlab.com/dkml/distributions/dkml/-/issues/26.

  2. The installer does not yet check that all OCaml programs are stopped before upgrading or uninstalling. If you get Permission denied then stop OCaml manually: close Visual Studio Code, stop any dune build, and stop any opam install / opam exec. And then forcibly kill the processes in PowerShell:

    1..6 | % {  @("bash","sh","with-dkml","ocamllsp","git","opam","dune","ocamlrun") | % { taskkill /F /IM "$_.exe" }; Start-Sleep 1 }

Release Notes

Major Changes

Usage Notes

  • You can continue to use dkml.exe and with-dkml.exe but both are deprecated; the new (unified) executable is dk.exe. See Deprecated Commands in the release notes.
  • Once every two weeks DkML news about new versions, errata, uninstalling, etc. will be shown on a webpage. It is triggered from the now deprecated dkml init, the replacement dk Ml.Switch init and the with-dkml proxy commands, and can be disabled with dk Ml.News disable. In particular, use dk Ml.News to show the news if you are experiencing problems with DkML.

Deprecated Commands in 2.1.2+

The deprecated commands still work, but will first display the new command on the standard error and then pause for 15 seconds.

Old CommandNew CommandExample
dkml initdk Ml.Switchdk Ml.Switch init
dk Ml.Newsdk Ml.News show
dkml versiondk Ml.Versiondk Ml.Version show
with-dkml bashdk Ml.Use(1) dk Ml.Use -- bash

(1) with-dkml bash / with-dkml python3 / etc will not pause for 15 seconds.

Minor Changes

  • dkml-target-abi-windows_x86_64 and similar 64-bit packages now conflict with ocaml-option-32bit, and 32-bit Linux/macOS/Win32 target packages depend on ocaml-option-32bit.
  • dk Ml.Use no longer pauses for 15 seconds since with-dkml bash / with-dkml python3 / etc is used frequently by opam install inside DkML switches.

Upgraded opam packages

PackageFromTo
opam2.2.0.12.2.1

Upgraded GitHub Actions for dkml-workflows

ActionFromTo
actions/checkoutv3v4
actions/cachev3v4

Patches