https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112021-01-28T09:50:28ZRuby Issue Tracking SystemRuby master - Misc #17586: Please run Windows CI in all std-lib reposhttps://bugs.ruby-lang.org/issues/17586?journal_id=901262021-01-28T09:50:28Zhsbt (Hiroshi SHIBATA)hsbt@ruby-lang.org
<ul></ul><p>What's mean <code>Windows CI</code>? Is it <code>mingw</code> or <code>mswin</code> or else?</p> Ruby master - Misc #17586: Please run Windows CI in all std-lib reposhttps://bugs.ruby-lang.org/issues/17586?journal_id=901272021-01-28T14:34:57ZMSP-Greg (Greg L)
<ul></ul><blockquote>
<p>What's mean Windows CI? Is it mingw or mswin or else?</p>
</blockquote>
<p>First of all, re ‘or else’, <code>mingw</code> is widely used, and there are commercial applications using <code>mswin</code>. Other platforms are much less common.</p>
<p>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.</p>
<p>As to Windows issues, the most common issues are:</p>
<ol>
<li>File system path strings, in particular the drive at the root of a path. Note that Windows paths can begin with a <code>File::SEPARATOR</code>.</li>
<li>File system case insensitivity.</li>
<li>Unavailable features like fork, UNIXSockets, various nonblock operations, etc.</li>
<li>Compile problems (<code>mingw</code>’s gcc vs <code>mswin</code>’s msvc).</li>
</ol>
<p>I’ve been running scheduled <code>mingw</code> and <code>mswin</code> 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.</p>
<p>If there were no resource/time constraints, I’d suggest testing on both <code>mingw</code> and <code>mswin</code>. Practically, for Ruby code (not extension code), I think a few <code>mingw</code> jobs would find the vast majority of compatibility problems.</p>