Project

General

Profile

Actions

Misc #17586

open

Please run Windows CI in all std-lib repos

Added by MSP-Greg (Greg L) about 3 years ago. Updated about 3 years ago.

Status:
Open
Assignee:
-
[ruby-core:102267]

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:

  1. The os change from *-latest to *-<numeric> (eg, macos-latest to macos-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.
  2. 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) about 3 years ago

What's mean Windows CI? Is it mingw or mswin or else?

Actions #2

Updated by MSP-Greg (Greg L) about 3 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:

  1. File system path strings, in particular the drive at the root of a path. Note that Windows paths can begin with a File::SEPARATOR.
  2. File system case insensitivity.
  3. Unavailable features like fork, UNIXSockets, various nonblock operations, etc.
  4. Compile problems (mingw’s gcc vs mswin’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.

Actions

Also available in: Atom PDF

Like0
Like0Like0