End-of-life is December 31, 2026.
The announcement at https://discuss.ocaml.org/t/ann-sunsetting-of-dkml-distribution/17530 has full details.
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
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.
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 }
dk Ml.Switch init was broken on Linux and macOS. DkML 2.1.2 had incorrectly pinned the dkml-host-abi and dkml-target-abi of the master DkML build machine. https://gitlab.com/dkml/distributions/dkml/-/issues/24dkml.exe and with-dkml.exe but both are deprecated; the new (unified) executable is dk.exe. See Deprecated Commands in the release notes.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.The deprecated commands still work, but will first display the new command on the standard error and then pause for 15 seconds.
| Old Command | New Command | Example |
|---|---|---|
dkml init | dk Ml.Switch | dk Ml.Switch init |
dk Ml.News | dk Ml.News show | |
dkml version | dk Ml.Version | dk Ml.Version show |
with-dkml bash | dk Ml.Use | (1) dk Ml.Use -- bash |
(1) with-dkml bash / with-dkml python3 / etc will not pause for 15 seconds.
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.| Package | From | To |
|---|---|---|
| opam | 2.2.0.1 | 2.2.1 |
| Action | From | To |
|---|---|---|
| actions/checkout | v3 | v4 |
| actions/cache | v3 | v4 |
ocaml-option-32bit OCaml 5 restriction to bytecode only in DkML repository: https://github.com/ocaml/opam-repository/commit/98911a0f405a9a9bad86279c00c823929deb3619
