Description
Regarding @kit-ty-kate 's https://discuss.ocaml.org/t/ann-your-opam-repository-prs-are-now-tested-on-windows/14781 post.
TLDR: Using available: os != "win32"
disables a package for all Windows users, including existing DkML users. Since the Windows CI using GitHub Actions does not test DkML, it is inevitable that a package that works on DkML but fails Windows CI will be disabled (which disables it on DkML).
It is impossible to know in advance what will break. Of course, there will be large differences in the support for C dependencies, MSVC/GCC and Unix shellisms between DkML and opam 2.2 so those packages will be first to break ... an inexhaustive start would be the transitive dependencies of the package overlays at https://github.com/diskuv/diskuv-opam-repository/tree/main.
The Windows CI at https://github.com/ocaml/opam-repository/blob/master/.github/workflows/windows.yml looks like it is testing only GCC. So, even without considering DkML, the broad hammer of os != "win32"
really means disable all Windows users who don't compile with GCC. That can't be right.
The way forward is simple ... only disable the systems that were tested.
Two practical implementations of that:
- Test DkML with https://github.com/diskuv/dkml-workflows ... it is straightforward to test DkML in CI.
- (Better) Use something more fine-grained than
os != win32
. I can't remember how to express it (I thought @dra27 had a thread how to do it) ... but add in selectors for gcc versus msvc, and Cygwin versus MSYS2.