Add JRuby and TruffleRuby to CI

Aperta
#454 18 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@nevans ci sta già lavorando.

Dal 3/10/2025.

  • #470 di @nevans — chiusa senza merge
  • #528 di @nevans — integrata
  • #529 di @nevans — aperta

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
ruby
Ambito
ci-cd, networking

Direzione di ricerca

Esamina i test del parser delle risposte e i test della connessione SSL, quindi traccia l’interazione tra get_tagged_response e receive_responses per il deadlock segnalato. Controlla le issue correlate di JRuby e TruffleRuby prima di modificare net-imap; il lavoro è completato quando CI esegue entrambe le implementazioni e le incompatibilità sono state risolte o indicate esplicitamente come in sospeso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

help wanted

_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) #470
  • #528
  • #529
Other related issues
net-imap issues/PRs
  • #473 (JRuby FrozenError doesn't use #inspect)
  • #477
  • #476
  • #478
  • #530
  • #531
  • #520
  • Don't wait for lock before closing the socket in #disconnect
JRuby issues/PRs
  • jruby/jruby#8829 - to fix Data subclasses
  • jruby/jruby#8830 - fixed the response parser tests
  • jruby/jruby#8832
  • ruby/json/issues/870
  • Struct inheritance issues: 002db9f58.
  • 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:
  • oracle/truffleruby#3846
  • oracle/truffleruby#3847
  • oracle/truffleruby#3850
  • oracle/truffleruby#3855
  • oracle/truffleruby#3856
  • oracle/truffleruby#3858
  • oracle/truffleruby#3892
Misc
  • I either omitted or marked as pending everything that's currently failing.
  • TODO: diagnose deadlock on error (between get_tagged_response and receive_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 deleting DataLite.
Lingua principale
Ruby
Stelle
121
Fork
47
Merge medio
19h 25m
PR unite (30g)
3

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ruby/net-imap

Tutte le issue di ruby/net-imap

Issue simili

Altre issue su Ruby

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.