Release Name: 0.94.0
Notes:
\Rainbows! is an HTTP server for sleepy Rack applications. It is based on
Unicorn, but designed to handle applications that expect long
request/response times and/or slow clients. For Rack applications not
heavily bound by slow external network dependencies, consider Unicorn
instead as it simpler and easier to debug.
* http://rainbows.rubyforge.org/
* rainbows-talk@rubyforge.org
* git://git.bogomips.org/rainbows.git
Changes:
This release fixes corrupted large response bodies for Ruby 1.8
users with the WriterThreadSpawn and WriterThreadPool models
introduced in 0.93.0. This bug did not affect Ruby 1.9 users
nor the users of any older concurrency models.
There is also a strange new Rainbows::Sendfile middleware. It
is used to negate the effect of Rack::Contrib::Sendfile, if that
makes sense. See the RDoc or
http://rainbows.rubyforge.org/Rainbows/Sendfile.html for all the
gory details.
Finally, the RDoc for our test suite is on the website:
http://rainbows.rubyforge.org/Test_Suite.html
I wrote this document back when the project started but
completely forgot to tell RDoc about it. Personally, this
test suite is one of my favorite parts of the project.
Changes:
.document | 1 +
.gitignore | 1 -
GIT-VERSION-GEN | 2 +-
GNUmakefile | 23 ++++++---
Rakefile | 21 -------
Test_Suite | 1 +
config/.gitignore | 1 -
config/isolate.rb | 25 ---------
lib/rainbows.rb | 1 +
lib/rainbows/const.rb | 2 +-
lib/rainbows/sendfile.rb | 100 +++++++++++++++++++++++++++++++++++
lib/rainbows/writer_thread_pool.rb | 11 +---
lib/rainbows/writer_thread_spawn.rb | 8 +--
local.mk.sample | 72 +++++++------------------
rainbows.gemspec | 1 +
t/.gitignore | 1 +
t/GNUmakefile | 22 ++++----
t/README | 25 +++++++--
t/t0005-large-file-response.sh | 17 +++---
t/t0300-async_sinatra.sh | 6 ++
t/t9001-sendfile-to-path.sh | 45 ++++++++++++++++
t/t9001.ru | 11 ++++
t/test-lib.sh | 16 ++----
t/test_isolate.rb | 39 ++++++++++++++
24 files changed, 297 insertions(+), 155 deletions(-)
commit 6ada0eb9916bbcebbcf2af843c1f5fb11904caee
Author: Eric Wong
Date: Fri Jun 4 08:24:33 2010 +0000
Rainbows! 0.94.0 - one eight ate my homework!
This release fixes corrupted large response bodies for Ruby 1.8
users with the WriterThreadSpawn and WriterThreadPool models
introduced in 0.93.0. This bug did not affect Ruby 1.9 users
nor the users of any older concurrency models.
There is also a strange new Rainbows::Sendfile middleware. It
is used to negate the effect of Rack::Contrib::Sendfile, if that
makes sense. See the RDoc or
http://rainbows.rubyforge.org/Rainbows/Sendfile.html for all the
gory details.
Finally, the RDoc for our test suite is on the website:
http://rainbows.rubyforge.org/Test_Suite.html
I wrote this document back when the project started but
completely forgot to tell RDoc about it. Personally, this
test suite is one of my favorite parts of the project.
commit 761b4a346865267c3fef79a62b9bebcbf6277319
Author: Eric Wong
Date: Fri Jun 4 07:48:08 2010 +0000
sendfile: update RDoc for this middleware.
commit 8ac80b06424350fd6088c1363661a12620040ae8
Author: Eric Wong
Date: Fri Jun 4 07:11:47 2010 +0000
doc: update test suite README and link with RDoc
Apparently this document was completely forgotten over the
course of development and never properly put on the website.
The test suite is one of my favorite parts of Rainbows! and
allows us to test the server as real clients would hit it.
commit 9dd7e943707608d9c98240b33c859d3c09fac577
Author: Eric Wong
Date: Fri Jun 4 06:54:52 2010 +0000
cleanup makefiles, move publish_doc into main
Since the docs for this project are hosted on Rubyforge.org
(currently Apache), it can't use the nginx "gzip_static on"
configuration I normally use on on *.bogomips.org.
I never used the irb/sh wrappers in local.mk, either, and
the isolate bits have all been moved inside t/
commit 93842bb5ef9e5da1d750e41614a99024dc7a0399
Author: Eric Wong
Date: Fri Jun 4 06:36:28 2010 +0000
tests: make -C $MODEL.tNNNN-foo.sh work again out-of-the box
It was missing dependencies on the first run
commit f66c59d7b259e5784c9da87df1a6f1dbca160577
Author: Eric Wong
Date: Fri Jun 4 01:25:29 2010 +0000
tests: cleanup isolate usage
We don't need tmp/ in our top level directory
commit e7690caedf80a1af2b6145d1b8f108ea42ee9a29
Author: Eric Wong
Date: Fri Jun 4 00:34:01 2010 +0000
tests: disable async_sinatra test for Ruby 1.9.2
Sinatra 0.9.4 does not appear to be compatible with
Ruby 1.9.2...
commit 8e9144341c6169abd2fa6ec20343e3152534b38b
Author: Eric Wong
Date: Fri Jun 4 00:32:47 2010 +0000
local.mk.sample: add a hint for TMPDIR
It makes tests run significantly faster on a beefy box.
commit 7ca6682fac2a30a69834b46a678ec956db4a45e9
Author: Eric Wong
Date: Fri Jun 4 00:21:58 2010 +0000
local.mk.sample: update for running 1.9.2 (preview3) tests
Now that 1.9.2 preview3 is available and usable, it'll
be added to the list of Rubies we run and officially
support.
commit 50f764fcbc0ef84fd0589d16179fed637d817b19
Author: Eric Wong
Date: Fri Jun 4 00:20:59 2010 +0000
Rakefile: explain ourselves when Isolating
Yes there's a reason for everything we do :>
commit e93d93d7deb29b09dd68abfddd8a34cec8fed9b3
Author: Eric Wong
Date: Fri Jun 4 00:16:51 2010 +0000
test-lib: set NO_PROXY to counter http_proxy
Some testers (like myself) use http_proxy when isolating
gems to avoid wasting bandwidth, but we don't proxy requests
to localhost.
commit 6d62a7de86369e046e6f6b221153d867df11e74c
Author: Eric Wong
Date: Thu Jun 3 17:15:18 2010 -0700
depend on Isolate ~> 2.0.2 for development
It's useful given all the Gems we support but don't have hard
installation dependencies on.
commit cf122e941e10c2812b7ba5e75c053a28950ddcb6
Author: Eric Wong
Date: Thu Jun 3 15:23:01 2010 -0700
add Rainbows::Sendfile middleware
This lets most concurrency models understand and process
X-Sendfile efficiently with IO.copy_stream under Ruby 1.9.
EventMachine can take advantage of this middleware under
both Ruby 1.8 and Ruby 1.9.
commit 5a0a190253434d3eef5332d979d56f3e16e876bd
Author: Eric Wong
Date: Thu Jun 3 14:55:37 2010 -0700
writer_thread_*: fix static file response under 1.8
While these models are designed to work with IO.copy_stream
under Ruby 1.9, it should be possible to run them under Ruby
1.8 without returning corrupt responses. The large file
response test is beefed up to compare SHA1 checksums of
the served file, not just sizes.
commit b6e354116d4da5c7c6de59f87ab5815f21e202ed
Author: Eric Wong
Date: Thu Jun 3 07:52:34 2010 +0000
test-lib: remove ancient wait_for_pid() function
It hasn't been used since the first month of development
when we started using FIFOs
|