-
-
Notifications
You must be signed in to change notification settings - Fork 389
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
Add Ruby 3.4 to CI #1233
Add Ruby 3.4 to CI #1233
Conversation
I'm not sure what is happening with those leaking threads in the net-ftp folder: they don't seem to be stable, and they don't appear to show up in my fork (https://github.com/herwinw/spec/actions/runs/12559237976/job/35014669524). I can't reproduce the locally either |
5029b6d
to
585b31c
Compare
So normally we do the sync first, because then it means that version of the specs are passing on 3.4 & master, and then add 3.4 to CI here. BTW I'll also add 3.4 to https://github.com/ruby/ruby/blob/c0e2623966ea72b2b7781a13dab47ad50c362c98/.github/workflows/spec_guards.yml#L45 that can be done now: ruby/ruby#12492 |
I have mitigated the issue with the leaking file descriptors by switching the FTP stub server from I will mark this PR as draft for now, and reactivate it once we've had the merge with upstream MRI. |
Run the test inside a new Fiber, we do not want to clutter the Fiber running the specs with additional keys.
But not anything else that responds to #to_sym. It does accept objects that respond to #to_str. This expands upon the ruby_bug block from upstream MRI. This also restores the previously removed "can't use invalid keys" test, but with the String key removed. Reference: https://bugs.ruby-lang.org/issues/20978
Using a hostname does cause an occasional leaking thread in the Ruby socket library when using Ruby 3.4.1. Switching to the IP address mitigates the issue.
I noticed the upstream sync had happened, so I rebased this and it should be ready to merge now. It contains two commits with updates for the specs for fiber storage. These two could be extracted into a new PR if required, they're not really necessary in this branch (but they're here since this is the way I wrote them). |
Completed synchronising (upstreaming only actually). |
Thank you! |
Most of it is rather straightforward, except for the changes to
fiber/storage_spec
. This has been a very recent change (https://bugs.ruby-lang.org/issues/20978), and is not mentioned in the changelog (nor in the documentation). This file differed on two locations from this version. I made a total of three changes:"3.2.3"..."3.4"
, but it failed at 3.2.2 too (and coincidentally the ruby/spec CI uses Ruby 3.2.2). The lower bound on the version constraint was superfluous, I removed that one and tested it with 3.2.2 and 3.2.3. (This feature has been introduced in Ruby 3.2, so 3.1 and 3.0 skip this file completely). It also updates the test to keep the Fiber variables locally, so they don't leak to the other tests.I am not sure how this will interact with the periodic sync between this repo and the MRI repo, so if this will cause any conflicts in the sync, just let me know how to prevent that.