The 0.2.x release is not yet available but I wanted to give an early heads-up on upcoming breaking changes.
0.2.x Upcoming Breaking Changes
1) (Major) Changed Opam root from $env:USERPROFILE/.opam
to $env:LOCALAPPDATA/opam
Why? The new Opam root will be the standard in a future release of Opam. That Opam root should work even if you are on a managed Windows machine (especially corporate/enterprise installations). One of the aims of Diskuv OCaml is to be standards compliant as much as possible, which means less hassle for you if you use another Windows distribution in the future.
Consequences: During the upgrade (instructions will be given in the upcoming 0.2.x announcement) you will be prompted to accept the deletion of the old Opam root and your old Opam switches. If you have adopted the Local Project directory structure (ex. diskuv-ocaml-starter) then ./makeit prepare-dev
will recreate the Opam root and your Opam switch correctly based on your .opam files. If you have been creating Opam switches manually (which is not currently recommended because the Diskuv OCaml pinned package versions will be missing) you will use opam install ./xxx.opam --deps-only --with-test
to re-install the packages in your new Opam switches.
Thanks to @dra27 for extensively reviewing Opam changes for Windows MSVC+MSYS2!
2) (Minor) Changed make.cmd
script to makeit.cmd
Why? If you are an OCaml package maintainer and are creating documentation for your users, it would be nice if you had the same copy-and-paste documentation for both Windows and *nix (Linux/macOS). With this rename your user instructions can be ./makeit build-dev
to build your project regardless of whether your users are on Windows or *nix; that syntax works in Powershell where makeit.cmd
will be invoked and it works in *nix where the shell script makeit
will be invoked. There will be an example of that in diskuv-ocaml-starter in the upcoming announcement.
(An alternative could have been typing ./make
but that may be confused with make
)
Consequences: You’ll need to rename your make.cmd
script.