Skip to content

Relax required_ruby_version to support Ruby 4.0#312

Merged
PikachuEXE merged 1 commit into
egonSchiele:masterfrom
taketo1113:relax-require-ruby
Dec 8, 2025
Merged

Relax required_ruby_version to support Ruby 4.0#312
PikachuEXE merged 1 commit into
egonSchiele:masterfrom
taketo1113:relax-require-ruby

Conversation

@taketo1113

Copy link
Copy Markdown
Contributor

This Pull Request relaxed the required_ruby_version to allow Ruby 4.0.

The current gemspec specifies an upper bound of < 4, which prevents gem install contracts from working on Ruby 4.0, scheduled for release on December 25.
By removing this upper bound, the gem will continue to work on Ruby 4.0 and future Ruby versions.

Additional Information

All tests pass on my local environment using Ruby 4.0-dev.

$ ruby -v
ruby 4.0.0dev (2025-11-28T10:49:46Z master dcb9e17f46) +PRISM [arm64-darwin25]

$ bundle exec rake spec
...
Finished in 0.06349 seconds (files took 0.0736 seconds to load)
231 examples, 0 failures

$ bundle exec rake cucumber
...
85 scenarios (1 undefined, 84 passed)
372 steps (372 passed)
0m9.122s

@PikachuEXE PikachuEXE left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Also .github/workflows/tests.yaml should be updated to add 4.0 (it should pick up beta?)

Comment thread contracts.gemspec Outdated
Add Ruby 4.0 to CI Matrix

Co-authored-by: PikachuEXE <git@pikachuexe.net>
@taketo1113

taketo1113 commented Nov 30, 2025

Copy link
Copy Markdown
Contributor Author

@PikachuEXE I have updated required_ruby_version and added Ruby 4.0 to the CI matrix.
(Since the CI will use the latest available Ruby 4.0 version when it runs, I don't think any manual pick-up is necessary.)

However, bundle exec cucumber is failing in the CI on my forked repository, so I will look into the cause.
https://github.com/taketo1113/contracts.ruby/actions/runs/19799663868/job/56725105155

@taketo1113

taketo1113 commented Nov 30, 2025

Copy link
Copy Markdown
Contributor Author

However, bundle exec cucumber is failing in the CI on my forked repository, so I will look into the cause.
https://github.com/taketo1113/contracts.ruby/actions/runs/19799663868/job/56725105155

The CI was failing because the aruba gem dependency includes a bundler < 3.0 constraint, causing an older version of aruba to be used on Ruby 4.0.
This dependency issue has already been fixed in the following PR, so it should be resolved in the next release of the aruba gem.

https://github.com/taketo1113/contracts.ruby/actions/runs/19799663868/job/56725105155#step:3:49

      archive-tar-minitar (0.12)
        minitar (~> 0.12)
        minitar-cli (~> 0.12)
# when use ruby 4.0-preview2: test fail
+      aruba (0.14.14)
+        childprocess (>= 0.6.3, < 4.0.0)
+        contracts (~> 0.9)
+        cucumber (>= 1.3.19)
+        ffi (~> 1.9)
+        rspec-expectations (>= 2.99)
+        thor (>= 0.19, < 2.0)
# use ruby 3.4.7: test pass
-      aruba (2.3.2)
-        bundler (>= 1.17, < 3.0)
-        contracts (>= 0.16.0, < 0.18.0)
-        cucumber (>= 8.0, < 11.0)
-        rspec-expectations (>= 3.4, < 5.0)
-        thor (~> 1.0)
      ast (2.4.3)

@PikachuEXE

Copy link
Copy Markdown
Collaborator

Thx for checking
I've subscribe to https://github.com/cucumber/aruba release so when there is a new version I will come back and let workflow run... (or maybe I will test locally first

@taketo1113

Copy link
Copy Markdown
Contributor Author

Since aruba gem v2.3.3 has been released, I believe the CI should now pass.
When you have a moment, could you please take a look?

@PikachuEXE PikachuEXE merged commit e4dd7c4 into egonSchiele:master Dec 8, 2025
8 checks passed
@taketo1113 taketo1113 deleted the relax-require-ruby branch December 8, 2025 03:11
@PikachuEXE

Copy link
Copy Markdown
Collaborator

Oh I am not an owner
Need to wait for @egonSchiele to release

@taketo1113

Copy link
Copy Markdown
Contributor Author

Thank you for merging it!

@egonSchiele

Copy link
Copy Markdown
Owner

pushed thanks all

@PikachuEXE

Copy link
Copy Markdown
Collaborator

Added missing tag v0.17.3

@egonSchiele

Copy link
Copy Markdown
Owner

Fun I always forget git push doesn't push tags. Thanks!

@PikachuEXE

Copy link
Copy Markdown
Collaborator

I usually use SourceTree with option to push
Or just gem-release (commit manually but release + push tag via command)

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.

3 participants