Skip to content

chore: fix bundle on Ruby 4.0 - #20

Merged
wteuber merged 1 commit into
masterfrom
chore/bundle-ruby-4
Nov 4, 2026
Merged

wteuber merged 1 commit into
masterfrom
chore/bundle-ruby-4

Conversation

@wteuber

@wteuber wteuber commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Summary

bundle fails on the pinned Ruby 4.0.4 (.ruby-version):

unicode-emoji-4.0.4 requires ruby version >= 2.5, < 4.0, which is incompatible with the current version, 4.0.4

This updates Gemfile.lock only:

  • unicode-emoji 4.0.4 → 4.3.0 and unicode-display_width 3.1.4 → 3.3.0 (both require Ruby >= 2.5). Updated with bundle lock --update … --conservative, so json, prism and RuboCop 1.77.0 stay as locked.
  • BUNDLED WITH 2.5.22 → 4.0.19, the Bundler that ships with Ruby 4.0. On RubyGems 4.0, Bundler 2.5.22 prints already initialized constant Gem::Platform::… warnings. Under bundle exec they leak into the CLI subprocesses' stderr and fail 7 integration tests that assert empty stderr.

Impact

  • No runtime change: the gem has no runtime dependencies, and the gemspec doesn't read the lockfile.
  • CI is unaffected: the Ruby 2.6/3.4/4.0 test jobs run without Bundler, and the RuboCop job uses gem install rubocop -v 1.77.0.
  • Bundling on Ruby < 3.2 (Bundler 4's floor) was already impossible, since RuboCop 1.77 needs Ruby >= 2.7. Ruby 2.6 support is unchanged: the suite still runs on stdlib only (verified on macOS /usr/bin/ruby 2.6.10: 204 runs, 0 failures, 100% coverage).

Verification (Ruby 4.0.4)

  • bundle install resolves and installs.
  • bundle exec rake: 204 runs, 0 failures; RuboCop: 32 files, no offenses.

- Update unicode-emoji 4.0.4 -> 4.3.0 and unicode-display_width
  3.1.4 -> 3.3.0: unicode-emoji 4.0.4 requires Ruby < 4.0, so `bundle`
  failed to resolve on the pinned Ruby 4.0.4.
- Lock Bundler 4.0.19 (ships with Ruby 4.0): Bundler 2.5.22 on
  RubyGems 4.0 prints "already initialized constant Gem::Platform"
  warnings, which leak into the CLI's stderr under `bundle exec` and
  fail the integration tests.

Updated conservatively; json, prism and RuboCop 1.77.0 stay as locked.
@wteuber
wteuber merged commit 004cd5e into master Nov 4, 2026
8 checks passed
@wteuber
wteuber deleted the chore/bundle-ruby-4 branch November 4, 2026 14:46
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