J’ai rencontré ce problème il y a quelques semaines et j’ai pu le résoudre de la manière suivante.
Le gem mailcatcher, au moment où j’écris ces lignes, dépend de thin-1.5.1, qui ne s’installe pas correctement.
Maintenant, si vous rencontrez ce problème, désinstallez le gem thin. Ensuite, exécutez :
Discourse est tout à fait disposé à financer jusqu’à 3000 $ pour une réécriture ou un fork de mailcatcher qui abandonne Event Machine et le remplace par @ioquatixasync et son écosystème. (et permettant ainsi de l’utiliser avec puma plutôt que thin)
Actuellement, mailcatcher est bloqué sur une ancienne version d’Event Machine, et la communauté a largement abandonné l’utilisation d’Event Machine.
Si vous ou toute autre personne êtes intéressé, contactez-moi par message privé.
Le résultat final du travail sera :
Suppression du gem mailcatcher
Ajout d’un nouveau gem à Discourse
Tout fonctionne exactement de la même manière en développement qu’auparavant
Avant de faire un fork du gem, je recommande également de soumettre une PR à mailcatcher pour le débarrasser d’Event Machine… et d’en discuter avec le mainteneur.
Salut ! Je suis le mainteneur de mailcatcher. Je surveille la migration vers async depuis un moment, car plusieurs problèmes systémiques liés à eventmachine freinent le gem, et async permettrait de les résoudre. Il existe même quelques branches sandbox async. Cependant, la version actuelle fonctionne suffisamment bien, ce qui n’a jamais rendu rentable un investissement dans une réécriture. Néanmoins, les évolutions des systèmes d’exploitation et de Ruby deviennent un facteur contraignant. Ainsi, si quelqu’un dispose du temps et des compétences nécessaires pour entreprendre la refactorisation vers async, je soutiendrai cette initiative. Je suis ravi d’en discuter par e-mail, en message privé ou sur GitHub.