Misc #17586
openPlease run Windows CI in all std-lib repos
Description
Please consider adding Windows CI to all std-lib repos.
Having ruby/ruby CI fail due to std-lib commits merged from their respective repos causes downstream issues, wasted time, etc.
See https://github.com/ruby/irb/pull/179 for an example adding Windows to Actions CI.
Re Actions matrix:
- The os change from
*-latest
to*-<numeric>
(eg,macos-latest
tomacos-11.0
). The-latest
designation changes, so some may prefer a-<numeric>
tag. See https://github.com/actions/virtual-environments#available-environments for available environments and their naming. - Using numeric versions for Ruby causes an issue with 3.0, as it’s interpreted as 3, which is only a sematic major requirement. Hence, quote all numeric versions.
Updated by hsbt (Hiroshi SHIBATA) almost 4 years ago
What's mean Windows CI
? Is it mingw
or mswin
or else?
Updated by MSP-Greg (Greg L) almost 4 years ago
What's mean Windows CI? Is it mingw or mswin or else?
First of all, re ‘or else’, mingw
is widely used, and there are commercial applications using mswin
. Other platforms are much less common.
Everyone is aware of Windows Ruby, so we’ll assume that CI is not done to minimize the number of jobs run. What is adequate CI for Windows? I think it depends on the code being tested.
As to Windows issues, the most common issues are:
- File system path strings, in particular the drive at the root of a path. Note that Windows paths can begin with a
File::SEPARATOR
. - File system case insensitivity.
- Unavailable features like fork, UNIXSockets, various nonblock operations, etc.
- Compile problems (
mingw
’s gcc vsmswin
’s msvc).
I’ve been running scheduled mingw
and mswin
builds at the same time since the introduction of GitHub Actions, and when the code in question is pure Ruby code, both platforms normally fail.
If there were no resource/time constraints, I’d suggest testing on both mingw
and mswin
. Practically, for Ruby code (not extension code), I think a few mingw
jobs would find the vast majority of compatibility problems.