-
Notifications
You must be signed in to change notification settings - Fork 34
Labels
help wantedExtra attention is neededExtra attention is needed
Description
_I'd like to add CI for JRuby and TruffleRuby, but the last time I tried I got a bunch of errors (admittedly, I didn't spend much time trying to figure them out).
Ideally, we could fix the errors without significant changes, and net-imap
could be fully functional under those implementations.
If the changes needed for full compatibility are significant, maybe we can just mark some tests as pending. That will at least serve as a warning of what's incompatible, and prevent new changes from inadvertently widening that gap (see for example #452).
Fixed by
- (replaced) ✅ Add TruffleRuby and JRuby to CI #470
- ✅ Add TruffleRuby to CI #528
- ✅🚧 Add JRuby to CI #529
Other related issues
net-imap
issues/PRs
- ♻️ Short-circuit frozen SequenceSet modifications #473 (JRuby FrozenError doesn't use
#inspect
) - ✅ Update Regexp.linear_time? tests for non-CRuby #477
- ✅ Update ResponseReader, UIDFetchData, DeprecatedClientOptions tests #476
- ✅ Add timeouts to CI workflow #478
- 🐛 Fix loading of
net/imap
for JRuby/TruffleRuby #530 - ✅ Test overriding inherited ::Data methods #531
- ✅ Fix flaky tests with
FakeServer#Connection#close
mutex #520 - Don't wait for lock before closing the socket in
#disconnect
JRuby issues/PRs
- Data fixes and improvements jruby/jruby#8829 - to fix Data subclasses
- Splat with multi-line expression improperly expands jruby/jruby#8830 - fixed the response parser tests
- Prism compiler fails with lonely operator in complex call sequence jruby/jruby#8832
- JRuby isn't escaping strings correctly json#870
- Struct inheritance issues: 002db9f.
- All (or nearly all) of the SSL connection tests are failing. Hopefully this only requires small tweaks to
net-imap
test code.
TruffleRuby issues/PRs:
- "%p" % nil is "nil" on CRuby but "" on TruffleRuby truffleruby/truffleruby#3846
- Recursive inspect for Data gives StackOverflowError truffleruby/truffleruby#3847
- Frozen Struct can be modified truffleruby/truffleruby#3850
- Incompatible Struct#initialize with mixed keyword args truffleruby/truffleruby#3855
- StringIO#gets("\r\n", 10) returns an extra \n truffleruby/truffleruby#3856
- Support the same Regexps to be Regexp.linear_time? as CRuby truffleruby/truffleruby#3858
- Can't override
::Data
methods in abstract class truffleruby/truffleruby#3892
Misc
- I either omitted or marked as pending everything that's currently failing.
- TODO: diagnose deadlock on error (between
get_tagged_response
andreceive_responses
?) - Both JRuby and TruffleRuby still fail in various ways when inheriting from Data.
- I temporarily added in a crazy feature-check to our
Data
polyfill. Rather than just check RUBY_ENGINE and RUBY_ENGINE_VERSION and defined?(::Data) and ::Data.respond_to?(:define), it tries to use all of the features that were causing tests to fail. If anything looks off, it prints a warning and falls back to the polyfill. I'm not going to merge this feature check. But it's in the branch. 😉 net-imap
v0.6.0 will still be deletingDataLite
.
- I temporarily added in a crazy feature-check to our
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is needed