I faced this issue a few weeks back and was able to resolve it in the following manner.
The mailcatcher gem as of writing this depends on thin-1.5.1 which doesn’t install correctly.
Now, if you face the issue, uninstall the thin gem. Then,
do
Discourse actually is very happy to fund up to say $3000 dollars for a mailcatcher rewrite/fork that junks event machine and replaces it with @ioquatixasync and family instead. (and allowing this to work with say puma instead of thin)
At the moment mailcatcher is stuck on an old version of event machine, and the community has mostly moved on from using event machine.
If you or anyone is interested contact me via a PM.
End result of the work is
Remove mailcatcher gem
Add new gem to Discourse
Everything works exactly the same dev wise as it used to
Also prior to forking the gem I would recommend a PR to mailcatcher the de-event machines it… and to discuss with the maintainer.
مرحباً! أنا مسؤول صيانة مشروع mailcatcher. لقد كنت أراقب فكرة الانتقال إلى نموذج غير متزامن (async) منذ فترة طويلة، لأن هناك عدة مشاكل هيكلية متجذرة في مكتبة eventmachine التي تعيق تطور هذا الجيم، والتي كان من شأن async حلها. بل إن هناك بالفعل فرعين تجريبيين للـ async في فرع التجربة. ومع ذلك، فقد عمل المشروع بشكل جيد بما يكفي في شكله الحالي، لذا لم يكن من المجدي الاستثمار في إعادة كتابته. غير أن التغييرات في أنظمة التشغيل وبيئة Ruby أصبحت الآن دافعاً قوياً لذلك، لذا إذا كان لدى شخص ما الوقت والقدرة على تنفيذ إعادة الهيكلة نحو async، فسأدعم هذا الجهد. يسعدني مناقشة الأمر عبر البريد الإلكتروني، أو الرسائل الخاصة، أو على GitHub.