Phusion Passenger背后的公司宣布它们的Ruby Enterprises Edition(REE)将会停止开发。REE基于MRI Ruby 1.8.7,后者也正在淡出(1.8.7将会继续获得常规维护,直到2012年6月,安全更新将会到2013年6月为止)。
\REE包含的补丁解决了Ruby 1.8.7的以下问题,使之在通常的面向服务器的使用场景表现更好:
\虽然已经淡出,但Phusion仍然发布新版。最新版本1.8.7-2012.02把底层的Ruby升级到1.8.7-p358,把RubyGem升级到1.8.15,包含了最新的MBARI补丁,现在兼容Xcode 4或以上和OS X Lion。
\Phusion建议开始迁移到Ruby 1.9,他们也在寻找新的维护者,提供后续维护服务:
\我们目前计划提供次要修复和更新,但建议用户逐渐迁移到Ruby 1.9。Phusion Passenger 3.1或之前版本的用户可以使用反向代理安装(reverse proxy setup)在同一台服务器上运行多个Ruby版本。从Phusion Passenger 3.2开始,它会原生支持多个Ruby版本,无需使用反向代理安装。\\我们相信Ruby Enterprise Edition已经完成它的使命了。我们理解许多人目前由于兼容性的问题仍然依然于Ruby 1.8。因此我们想找一些志愿者帮助维护Ruby Enterprise Edition。如果你感兴趣,请联系我们!
InfoQ采访了Phusion的Hongli Lai,了解为何不会发布REE 1.9:
\REE的大多数补丁在1.9里都是不需要的,其中一些在REE里没有对应。举个例子,MBARI补丁集是和1.8紧密相关的;一些MBARI补丁已经合并到MBI 1.8了,另一些解决的问题在1.9是并不存在。另一个例子是:caller_for_all_threads补丁在1.9里已经废弃,因为1.9对于类似的功能有自己的官方API。Ruby 1.9没有提供任何调度GC的选项,但它的GC总体性能更优,因此没有太大的必要提供调度选项。\
InfoQ:Phusion Passenger 3.2将会支持多个Ruby版本,你能详细告诉我们Passenger的未来是如何规划的吗?
\我们的规划里有很多令人振奋的东西。不过目前无法告诉你所有东西,其中一个我们正在做的是把Phusion Passenger从目前的基于多线程的I/O体系换成基于时间的I/O体系。这使我们可以通过更健壮的方式处理I/O,从而带来几乎没有限制的I/O并发,为更好地在将来支持流和WebSockets等功能铺平道路。\
最新的REE已经可以下载。你是否已经换到Ruby 1.9?如果没有,是什么让你继续保持现状?
\查看英文原文:Ruby Enterprise Edition End-of-Life, Phusion Focuses on Passenger