one of the great things about Ruby webapps is the many, many options you
have to deploy them. Besides choosing a web server, as a developer you
also get to choose a Rails or Sinatra version, and to pick your favorite
rack or Rails plugin(s).
The downside of all this is that it's a crazy duplication of work, and
following all your choices, you might discover that the versions of some
of your plugins conflict with rubygem-* RPM's in Fedora.
To make all this easier, it would be great if we could come up with the
Grand Useful Fedora Ruby Appserver (yes, GUFRA ;). I see this whole
effort consisting of two parts:
* discuss the tradeoffs at each level of the stack and come up
with a recommendation for what we like (hopefully some document
on the Wiki)
* package whatever needs to be packaged for Fedora
The end result should make it easier for budding Ruby web developers to
start with a well-tested set of tools, rather than have to go and figure
all this out for themselves. And, of course, packages for all these
things in F15.
To kick this off, here's what I think belongs into GUFRA:
* Ruby interpreter
* frontend webserver
* Ruby webserver
* Rails and Sinatra
* Rack plugins (which ones ?)
* Rails plugins (which ones ?)
* Devtools (rspec, rinari, ...)
Some thoughts on the tradeoffs:
Only MRI seems practical for now, and there the big question is whether
we'll make the switchover to 1.9.x in F15, and how.
Frontrunners are probably httpd and nginx. Apache httpd is hte Swiss
army knife, nginx is more limited, but people like how easy it is to
Mostly passenger vs. thin vs. unicorn. Passenger has the advantage that
it can be loaded as a module into httpd, but packaging it has proven
OTOH, thin and unicorn are a nightmare to manage, since you get to
babysit a good number of processes, and can't take advantage of httpd's
ability to spin threads up and down depending on load.
For F15, the big question is whether to go with 3.0.x or the latest
2.3.x. And that mostly depends on whether people's favorite plugins are
available for Rails 3.
As a sidenote, we'll also have to worry about Bundler, since that's what
people are told to use for their Rails3 apps; Bundler doesn't play nice
Mostly an exercise in collecting people's favorite plugins, and making
sure they are in F15, in the right version.