Skip to content

[pull] master from ruby:master#1162

Merged
pull[bot] merged 26 commits into
turkdevops:masterfrom
ruby:master
Jun 29, 2026
Merged

[pull] master from ruby:master#1162
pull[bot] merged 26 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jun 29, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

hsbt and others added 26 commits June 29, 2026 11:45
…ling

The fake forced the RUBY of mkmf-generated Makefiles to baseruby. When
baseruby is an older release than the source tree (e.g. on mswin, where the
tree is ahead of the latest release), building the bundler spec's native test
gems fails rbconfig's version check against the freshly built standard
library. test-bundler[-parallel] only runs on native builds, so the just-built
ruby is available there and matches the tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
On Windows the freshly built ruby often has no usable default CA bundle
because its OpenSSL's OPENSSLDIR does not exist, so HTTPS fails in tests such
as test-bundler, which downloads from rubygems.org over TLS. Fall back to the
CA bundle of baseruby (the installed ruby the build was bootstrapped with)
unless the caller already configured SSL_CERT_FILE/SSL_CERT_DIR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The make jobserver is a GNU make feature. On Windows extensions are built
with nmake, which has no `-j` jobserver, so the per-gem slot count these
examples assert never appears in the build output.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…_parser_spec

The spec built the expected checksum location with
`Bundler.default_lockfile.relative_path_from(Dir.pwd)`, which raises on Windows
when the lockfile and the working directory are on different drives. The parser
itself uses `SharedHelpers.relative_lockfile_path`, which falls back to the
absolute path in that case, so mirror it to stay consistent and drive-safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A few examples set up the temp home, bundled app or caches under the temp dir
and then look them up relative to the source tree. On Windows there is no
relative path between different drives, so these cannot be set up correctly when
the temp dir and the source tree live on different drives. Add a
`tmp_and_source_on_different_drives?` helper to support/path.rb and skip those
examples in that case.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Different drives only exist on Windows, so short-circuit the predicate there
instead of relying on the absence of a drive letter on other platforms.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The make jobserver is a GNU make feature. On Windows extensions are built with
nmake, which has no `-j` jobserver, and an inherited `-j` MAKEFLAGS even breaks
nmake, so the per-gem slot count these examples assert never appears.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
These exec extensionless commands (`erb`, the source `bin/gem`) the same way the
other examples in this file already skipped for rubygems#3351, which Windows
cannot run directly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The example deliberately builds a very long cache path to exercise the
path-shortening logic. Windows without long path support cannot create it, so
skip it there. Also guard the manual cleanup so the skipped example does not
raise in its ensure block.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
On the current mswin platform the gem restricted to legacy windows platforms is
not cached, so the expectation cannot hold.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The raygun-apm fixture provides linux, darwin and mingw variants but no
x64-mswin64 one, so resolution conflicts on the current platform.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
These assert the GNU make `-L` libpath flag, but on Windows the extension's
Makefile is generated for MSVC and uses `-libpath:` instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bundler's spec helpers walk up from the working directory looking for a
`.bundle` directory, stopping at the first ancestor that contains a `tmp`
directory (Bundler::SharedHelpers#search_up). On Windows the test temp dir
lives under the user home (%LOCALAPPDATA%\Temp), so the search escaped the
sandbox and picked up the real ~/.bundle, breaking config, cache and other
specs. Create a `tmp` marker at the temp root so the search stops there.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Native extension builds spawned by the specs can exceed the 60-second
command timeout on Windows when the temp dir lives under the user
profile, so allow 120 seconds there.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The sandbox marker created at the temp root is ours, so the END block
must remove it before Dir.rmdir(tmpdir); otherwise that call always
fails with ENOTEMPTY and a clean run looks like it left files behind.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
These specs guard limitations specific to the mswin build: nmake has no
make jobserver, the generated Makefile uses MSVC `-libpath:` syntax,
extensionless executables cannot be exec'd, and the raygun-apm fixture
only ships an x64-mswin64 variant. The mingw build passes them, so match
the platform string directly instead of Gem.win_platform?, which is also
true on mingw. The MAX_PATH and cross-drive guards stay on Gem.win_platform?
since those limitations are not specific to mswin.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…xtures/tapioca

Bumps [yard](https://yardoc.org) from 0.9.42 to 0.9.44.

---
updated-dependencies:
- dependency-name: yard
  dependency-version: 0.9.44
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

ruby/rubygems@b8e687623c
These specs were authored directly in ruby/ruby, where this rubocop
config does not lint them, so they reached for `/mswin/.match?` and a
`%r{}` literal that Performance/StringInclude and Style/RegexpLiteral
flag here. Align them with the equivalent `include?`/`//` forms.

ruby/rubygems@22ebbb0cc7
The forward-ported specs repeated RUBY_PLATFORM.include?("mswin") to gate
limitations specific to the nmake/MSVC build. Extract it into a
Spec::Platforms predicate so the make jobserver skip and the other Windows
skips share one definition.

ruby/rubygems@b384022119
The platform-conflict lock spec skipped on mswin because the raygun-apm
fixture only built linux, darwin, and mingw variants. Add an x64-mswin64
build so the local platform resolves and the example runs there too.

ruby/rubygems@ff8601ff12
…tens the path

The guard recomputed the basename slice from the trimmed suffix, so when the
basename was long enough to be truncated it grew back by exactly the bytes
removed from the suffix and the path length never changed. Slice the basename
once up front and trim that already-sliced value after the suffix, so the
temporary path is brought within MAX_PATH instead of staying put.

ruby/rubygems@1fc7ff87ba
Bumps [github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg) from master to 2026.06.24. This release includes the previously tagged commit.
- [Release notes](https://github.com/microsoft/vcpkg/releases)
- [Commits](microsoft/vcpkg@f3e1065...cd61e1e)

---
updated-dependencies:
- dependency-name: github.com/microsoft/vcpkg
  dependency-version: 2026.06.24
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the github-actions group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) | `1.16.1` | `1.17.0` |
| [actions/cache](https://github.com/actions/cache) | `5.0.5` | `6.1.0` |
| [actions/cache/restore](https://github.com/actions/cache) | `5.0.5` | `6.1.0` |
| [actions/cache/save](https://github.com/actions/cache) | `5.0.5` | `6.1.0` |
| [taiki-e/install-action](https://github.com/taiki-e/install-action) | `2.82.2` | `2.82.6` |

Bumps the github-actions group with 1 update in the /.github/actions/setup/directories directory: [actions/cache](https://github.com/actions/cache).


Updates `actions-rust-lang/setup-rust-toolchain` from 1.16.1 to 1.17.0
- [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases)
- [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md)
- [Commits](actions-rust-lang/setup-rust-toolchain@46268bd...166cdcf)

Updates `actions/cache` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@27d5ce7...55cc834)

Updates `actions/cache/restore` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@27d5ce7...55cc834)

Updates `actions/cache/save` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@27d5ce7...55cc834)

Updates `taiki-e/install-action` from 2.82.2 to 2.82.6
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@9e1e580...9bcaee1)

Updates `actions/cache` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@27d5ce7...55cc834)

---
updated-dependencies:
- dependency-name: actions-rust-lang/setup-rust-toolchain
  dependency-version: 1.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: actions/cache
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/cache/restore
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/cache/save
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: taiki-e/install-action
  dependency-version: 2.82.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/cache
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
@pull pull Bot locked and limited conversation to collaborators Jun 29, 2026
@pull pull Bot added the ⤵️ pull label Jun 29, 2026
@pull pull Bot merged commit a291454 into turkdevops:master Jun 29, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants