Skip to content

Upgrade to Ruby 3.3#611

Draft
sethboyles wants to merge 1 commit intodevelopfrom
ruby-3.3-upgrade
Draft

Upgrade to Ruby 3.3#611
sethboyles wants to merge 1 commit intodevelopfrom
ruby-3.3-upgrade

Conversation

@sethboyles
Copy link
Member

@sethboyles sethboyles commented Feb 4, 2026

In light of the impending Ruby 3.2 EOL (2026-03-31) we need to upgrade Ruby.

Upgrading to Ruby 3.3 is complicated by this Bundler bug: ruby/rubygems#8217, and this PR gets around this bug by using gem fetch bundler -v GEMFILE_LOCK_VERSION in prepackaging and installing from the local bundler gem copy during packaging.

Every jobs which uses the CCNG job will check if the right bundler gem version is installed, and if not, install from the local copy.

(another potential solution is packaging git on the VMs)

I'm putting forth this solution as opposed to upgrading to Ruby 3.4 directly (which would skip the broken Bundler version), as Ruby 3.4 will require more syntax changes and we'd be more at risk of encountering gems that are incompatible with 3.4, notably the unmaintained Fog gems. Compare the Ruby 3.3 changeset to the old Ruby 3.4 changeset from a year ago.

Tasks before this is safe to merge:

Related Issues

cloudfoundry/cloud_controller_ng#4682

* prepackage local copy of Bundler gem so we can install it during packaging
@sethboyles sethboyles changed the title Package Ruby 3.3. Upgrade to Ruby 3.3 Feb 4, 2026
@sethboyles sethboyles marked this pull request as draft February 4, 2026 22:19
@sethboyles
Copy link
Member Author

sethboyles commented Feb 5, 2026

✅ fog-local passed units on 3.3:

% git checkout v0.9.0
% bundle exec rake test
export FOG_MOCK=false && bundle exec shindont
not recording test coverage: #<LoadError: cannot load such file -- codeclimate-test-reporter>

  Storage[:local] | directories (local) ++++++++++++++++++++
  Storage[:local] | directory (local) +
  Storage[:local] | file (local) ++++++++++
  Storage[:local] | files (local) +
  Local | storage ++++
  36 succeeded in 0.176605 seconds

@sethboyles
Copy link
Member Author

✅ fog-azure-rm units passed on 3.3:

# Running:

............................................................................................................../Users/sethboyles/.gem/ruby/3.3.7/gems/fog-core-2.6.0/lib/fog/core/attributes/default.rb:59: warning: redefining `object_id' may cause serious problems
.............................................................................................................................................................................................................................................................../Users/sethboyles/workspace/fog-azure-rm/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb:14: warning: DEPRECATED: Use assert_nil if expecting nil. This will fail in Minitest 6.
.....................................................................................................................................................................................................................................................................................................................................................Enum does not contain AccountNameInvalid|AlreadyExists, but was received from the server.
..Enum does not contain AccountNameInvalid|AlreadyExists, but was received from the server.
..........................................................................................................................................................................................................................................................................................................................................

I had to fix the tests for 3.2 while I was at it: fog/fog-azure-rm#447

@sethboyles sethboyles requested review from Gerg and tcdowney February 5, 2026 20:11
@sethboyles
Copy link
Member Author

✅ fog-aws units passed on 3.3:

AWS::Support | describe_trusted_advisor_checks (aws, support) ++  
  AWS | signaturev4 (aws) ++++++++++++++  
  AWS | signed_params (aws) +++  
  AWS Storage | escape (aws) +  
  159 pending and 2572 succeeded in 189.495823 seconds

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