Skip to content

Conversation

@taketo1113
Copy link
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

Copy link
Collaborator

@PikachuEXE PikachuEXE left a comment

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?)

Add Ruby 4.0 to CI Matrix

Co-authored-by: PikachuEXE <git@pikachuexe.net>
@taketo1113
Copy link
Contributor Author

taketo1113 commented Nov 30, 2025

@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
Copy link
Contributor Author

taketo1113 commented Nov 30, 2025

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
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
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
Collaborator

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

@taketo1113
Copy link
Contributor Author

Thank you for merging it!

@egonSchiele
Copy link
Owner

pushed thanks all

@PikachuEXE
Copy link
Collaborator

Added missing tag v0.17.3

@egonSchiele
Copy link
Owner

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

@PikachuEXE
Copy link
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