Skip to content

Conversation

@unflxw
Copy link
Contributor

@unflxw unflxw commented Nov 19, 2025

[skip changeset] because all changes are to the CI configuration and tests -- no implementation change was made

Add Ruby 4.0.0 preview to CI

Run our tests against Ruby's 4.0.0-preview2 on our CI anywhere
where we were already running them against 3.5.0-preview1.

Fix test failures in Ruby 4

  • Use URI.decode_www_form instead of CGI.parse, which has now
    been removed, to validate the query string sent by the transmitter.
  • When testing against Bundler versions that raise an error when
    Bundler.rubygems.all_specs is called, skip the test. This test
    was already skipped if the method is not implemented.
  • Use a regular expression to assert the logs content when a Set
    object is rejected by the sample data, accounting for the different
    output of Set.inspect in Ruby 4.

Exclude Padrino and Hanami from Ruby 4 CI

Padrino and Hanami have dependencies that ultimately depend on
bundler < 3. This makes them incompatible with Ruby 4 for the
time being.

We should re-assess this after Ruby 4 is released and the affected
libraries release the necessary updates.

@unflxw unflxw self-assigned this Nov 19, 2025
@backlog-helper
Copy link

backlog-helper bot commented Nov 19, 2025

✔️ All good!

New issue guide | Backlog management | Rules | Feedback

@unflxw
Copy link
Contributor Author

unflxw commented Nov 19, 2025

CI is broken, #1477 fixes it. Rebasing this on top of #1477 to see if it actually works.

@unflxw unflxw added the chore A small task that takes a day or two at the most. label Nov 19, 2025
@unflxw
Copy link
Contributor Author

unflxw commented Nov 19, 2025

A deprecation in Bundler, a change in how Set objects are represented by .inspect, and CGI.parse is not there anymore. Could've been worse!

@unflxw unflxw marked this pull request as draft November 19, 2025 17:12
@unflxw unflxw requested review from lipskis and tombruijn November 21, 2025 11:10
@unflxw unflxw marked this pull request as ready for review November 21, 2025 11:10
Run our tests against Ruby's `4.0.0-preview2` on our CI anywhere
where we were already running them against `3.5.0-preview1`.
- Use `URI.decode_www_form` instead of `CGI.parse`, which has now
been removed,  to validate the query string sent by the transmitter.
- When testing against Bundler versions that raise an error when
`Bundler.rubygems.all_specs` is called, skip the test. This test
was already skipped if the method is not implemented.
- Use a regular expression to assert the logs content when a `Set`
object is rejected by the sample data, accounting for the different
output of `Set.inspect` in Ruby 4.
Padrino and Hanami have dependencies that ultimately depend on
`bundler < 3`. This makes them incompatible with Ruby 4 for the
time being.

We should re-assess this after Ruby 4 is released and the affected
libraries release the necessary updates.
@backlog-helper
Copy link

Hi @unflxw,

We've found new issues for this Pull Request. Please see the main comment on this issue for a list of all current warnings. This comment will not be updated to reflect resolved warnings.

  • This Pull Request does not include a changeset. Add a changeset if the change impacts users and should be included in the changelog upon release. Read more about changesets.
    Ignore this rule by adding [skip changeset] to your Pull Request body. - (More info)

New issue guide | Backlog management | Rules | Feedback

Copy link
Member

@tombruijn tombruijn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess Ruby 3.5.0 isn't happening anymore? We have the preview1 in the CI, but if they're going forward with Ruby 4 then we could remove it from our CI, right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore A small task that takes a day or two at the most.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants