Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore ruby 2.6 and 2.5 in CI #359

Merged
merged 2 commits into from
Dec 4, 2024

Conversation

sealocal
Copy link
Contributor

@sealocal sealocal commented Dec 3, 2024

Follow-on to #344.

This PR tests/documents running Ruby 2.6 and 2.5.

@kojix2
Copy link
Member

kojix2 commented Dec 4, 2024

Currently, IRuby doesn’t have active maintainers, so pull requests will be merged unless they cause significant issues. This is because IRuby is a tool meant to serve its active users.

I’ve merged the pull request to add Ruby 2.5 and 2.6 back to CI, even though these versions have been EOL (End-of-Life) for several years. Personally, I wouldn’t have added them back.

Could you share the specific use cases where you still rely on Ruby 2.5 or 2.6?
In the past, when older Ruby support was requested, Google SketchUp was mentioned as a use case.

It would be helpful to understand the context behind why older Ruby versions are still necessary in your environment.

@kojix2 kojix2 merged commit 5a3d56d into SciRuby:master Dec 4, 2024
9 of 10 checks passed
@sealocal
Copy link
Contributor Author

sealocal commented Dec 4, 2024

Ruby 2.6 may be EOL, but it still runs in production applications where the owners will not support upgrades.

I'm using iruby with Jupyter as an alternative to an IRB console, developing scripts with cherry-picked code from a codebase that is dependent on Ruby 2.6. Adding Ruby 2.6 to iruby's CI confirms that the library performs as expected (with the requirement of installing an older version of ffi).

Similarly, Ruby 2.5 passes CI (with an older version of ffi and irb). Ruby 2.4 requires more effort to pin down the compatible dependencies. I did not attempt Ruby 2.3; presumably, it requires even more effort.

I think it's reasonable to document that older versions still work so that Ruby users might explore iruby without giving up quickly at installation. For example, in the case of a user encountering the error in #351, Ruby 2.6 support seemed to fail - not because the library is incompatible with Ruby 2.6, but because Ruby 2.6 installs with an older version of IRB by default. A user that is unfamiliar with Jupyter/iruby may have given up on using iruby.

If the iruby library requires more changes that are difficult to maintain in support of 2.5 and 2.6, then it would be reasonable to drop them from CI; but, as of now, the library currently supports 2.5, 2.6, and maybe even older versions.

I am simply giving back here - I could still use iruby without this change.

@kojix2
Copy link
Member

kojix2 commented Dec 4, 2024

@sealocal
Thank you for your explanation. Maintaining web applications is a difficult problem, and it is easy to imagine that applications using Ruby 2.6 and Ruby 2.5 are still being used around the world. There was a pull request for Google SketchUP before, so I thought there might be some uses that we don't know about, so I asked.

I agree with the explanation that CI is a technical document that describes how to use IRuby with older versions of Ruby. On the other hand, it should be noted that while CI gives users the expectation that older versions of Ruby will continue to be supported, this is not necessarily the case.

I was hoping for more detailed comments on the background of this pull request, and the above comments achieve that purpose nicely. If you have anything else to add, please send me a pull request. Thank you.

@sealocal
Copy link
Contributor Author

sealocal commented Dec 4, 2024

Absolutely - that makes sense, and I agree. Thanks!

@sealocal sealocal deleted the restore-ruby-2-6-and-2-5-in-ci branch December 4, 2024 05:10
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.

2 participants