Skip to content

ci: skip Gemfile.lock BUNDLED WITH on ruby-head#2952

Merged
soutaro merged 1 commit into
masterfrom
worktree-graceful-kindling-mochi
May 12, 2026
Merged

ci: skip Gemfile.lock BUNDLED WITH on ruby-head#2952
soutaro merged 1 commit into
masterfrom
worktree-graceful-kindling-mochi

Conversation

@soutaro
Copy link
Copy Markdown
Member

@soutaro soutaro commented May 12, 2026

Summary

  • The Ruby / Ruby on Windows / C99_compile / clang_compile workflows have been failing on ruby-head (and the ucrt / mswin dev builds on Windows) with NameError: private constant Pathname::SEPARATOR_PAT referenced raised from Bundler::Source::Path#generate_bin.
  • Root cause: Pathname::SEPARATOR_PAT became a private constant on ruby-head (4.1.0.dev). Every released bundler up to 4.0.11 still references it. Because Gemfile.lock pins BUNDLED WITH 4.0.1, the bundler 4.1.0.dev that ships with ruby-head downgrades itself to 4.0.1 before running and then crashes.
  • The upstream fix is Use Pathname#absolute? rubygems#9529 ("Use Pathname#absolute?", merged 2026-05-07) — but it has not landed in any released bundler yet, so simply bumping BUNDLED WITH would not help.
  • This PR adds bundle config set --local version system for ruby-head / ucrt / mswin only. That tells bundler to use the system-installed bundler instead of the one pinned in Gemfile.lock, avoiding the forced downgrade to 4.0.1. Stable Ruby versions are unaffected because Gemfile.lock is untouched.

Once a fixed bundler (4.0.12 or 4.1.0) is released, run bundle update --bundler to bump BUNDLED WITH in both Gemfile.lock and steep/Gemfile.lock, and revert these workaround steps.

Test plan

  • Ruby workflow: test (head, ...) jobs go green
  • Ruby workflow: C99_compile (head) goes green
  • Ruby workflow: clang_compile (head) goes green
  • Ruby on Windows workflow: compile (ucrt) and compile (mswin) go green
  • No regression on stable Ruby versions (3.2 / 3.3 / 3.4 / 4.0)

🤖 Generated with Claude Code

Released bundlers (up to 4.0.11) reference Pathname::SEPARATOR_PAT,
which became a private constant on ruby-head, causing bundle install
to crash with NameError. The fix (ruby/rubygems#9529) is on master
but not yet released.

Use bundler's "version system" config to skip the lockfile-pinned
4.0.1 and use ruby-head's bundled bundler instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@soutaro soutaro added this to the RBS 4.1 milestone May 12, 2026
@soutaro soutaro merged commit feae4ad into master May 12, 2026
24 of 25 checks passed
@soutaro soutaro deleted the worktree-graceful-kindling-mochi branch May 12, 2026 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant