Repository navigation
Conversation
The ruby-loco mswin build has not been updated since 2026-10-14. The mswin engine uses the builds published at cache.ruby-lang.org instead. `mswin` stays the master build as `mswin-head`, which picks the latest one from index.json at runtime. Only 3.4 and later are provided, because the packages of 3.3 and earlier reject the MSVC version of the runners or ship bin stubs that do not run from bash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The OpenSSL in the mswin builds looks for CA certificates in an OPENSSLDIR that does not exist on the runners, so certificate verification fails without it. A missing bundle only warns, because its path on windows-11-arm is not confirmed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The mswin builds are downloaded from cache.ruby-lang.org, which does not take the token. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
423acc9 to
db08eaf
Compare
|
I wonder if it will be better to make a breaking change and have |
|
I agree. As it is a breaking change, I'd like to hear from @eregon before changing it in this PR. |
setup-msys2-gcc renamed the platform of the arm64 vcpkg packages from aarch64-mswin64 to arm64-mswin64. ruby/setup-msys2-gcc#42 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A missing bundle now fails the setup, so it is reported there rather than as a certificate error later. The bundle is found on every runner image, windows-11-arm included. #971 (comment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
||
| export function isBundler1Default(engine, rubyVersion) { | ||
| if (engine === 'ruby') { | ||
| if (isCRuby(engine)) { |
There was a problem hiding this comment.
This is quite error-prone as engine === 'ruby' has always been used and might be in the future.
Not sure what's a good solution though.
There was a problem hiding this comment.
Another approach I can think of that is potentially less error-prone is to make this more object oriented. E.g. introduce a class RubyVersion. If we only pass the object around, and only call the instance method provided by the class, so there is less chance to have errors?
class RubyVersion {
constructor(rubyVersion) {
...
}
get engine() {
...
}
get isCRuby() {
...
}
get version() {
...
}
get floatVersion() {
...
}
}|
I'll think a bit about this. I agree if we add those names that it would be natural for I would like to know more about the longer-term plans for those builds. I'm unsure it's worth having 2 variants of builds on Windows. |
| | ----------- | -------- | | ||
| | `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.1.0-preview1, head, debug, mingw, mswin, ucrt | | ||
| | `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.1.0-preview1, head, debug, mingw, ucrt | | ||
| | `mswin` | 3.4.11 - 4.0.9, head (Windows only) | |
There was a problem hiding this comment.
mswin isn't really an interpreter so this reads a bit strange.
|
Relevant ticket: https://bugs.ruby-lang.org/issues/22180 |
ruby-version: mswininstalls the ruby-loco master build, which has not been updated since 2026-10-14 because its mswin workflow fails every day. #969 removesmingwfor the same kind of reason.I publish mswin builds at https://cache.ruby-lang.org/pub/ruby/binaries/mswin64/ for stable releases and for master daily, and I will keep maintaining them. This adds
mswinas an engine with 3.4 to 4.0 and head, and pointsmswinat the new master build. The default Windows builds stay RubyInstaller.SSL_CERT_FILEis set to Git's CA bundle for mswin, because the OpenSSL in these builds has no usable trust anchors on the runners.I think plain
mswinshould mean the latest stable release likerubyandjruby, and I'd like to change that in a follow-up if you agree.Generated with Claude Code