NEWS in rainbows-2.0.1 vs NEWS in rainbows-2.1.0
- old
+ new
@@ -1,12 +1,39 @@
-=== 2.0.1 / 2010-12-03 01:26 UTC
+=== Rainbows! 2.1.0 - Cool.io, bugfixes and more! / 2010-12-29 02:18 UTC
+ Cool.io (new version of Rev) support is explicitly added
+ (it always worked before). ":Coolio" may be used in place
+ of ":Rev" anywhere in your Rainbows! config file.
+
+ There is a new "keepalive_requests" config directive to limit
+ the number of requests a single connection may make (default:
+ 100, same as nginx). This may be useful for better
+ load-balancing characteristics.
+
+ The old "Rev" prefixes remain supported as long as Cool.io
+ remains compatible with Rev (likely forever).
+
+ Bug fixes:
+
+ * Rainbows::ThreadTimeout middleware with multiple clients
+ * large, pipelined upload errors with Revactor+Coolio(Rev)
+ * high CPU usage for maintaining idle keepalive on *Fiber*
+ * needless ThreadPool wakeups
+ * request env prematurely cleared keepalive requests,
+ breaking some middlewares such as Clogger.
+ * "close" not called on body if wrapper and sendfile used together
+
+ Various code cleanups, and our RDoc website is JavaScript-free.
+ See the ChangeLog or git for all changes.
+
+=== Rainbows! 2.0.1 - upload pipelining fixes / 2010-12-03 01:26 UTC
+
For HTTP clients living on the edge and pipelining uploads, we
now fully support pipelined requests (as long as the application
consumes each request in its entirety).
-=== 2.0.0 / 2010-11-20 03:10 UTC
+=== Rainbows! 2.0.0 - minority rules! / 2010-11-20 03:10 UTC
This release is targeted at the minority of web applications
that deal heavily with uploads.
Thanks to Unicorn 3.x, we now support HTTP keepalive for
@@ -17,29 +44,29 @@
The global client_body_max_size may also be applied per-endpoint
using the Rainbows::MaxBody middleware described in:
http://rainbows.rubyforge.org/Rainbows/MaxBody.html
-=== 1.0.0 / 2010-10-28 09:01 UTC
+=== Rainbows! 1.0.0 - internal cleanups / 2010-10-28 09:01 UTC
This release is merely a milestone in our evolving internal API.
Use of kgio may result in performance improvements under Ruby
1.9.2 with non-blocking I/O-intensive workloads.
The only bugfix is that SIGHUP reloads restores defaults on
unset settings. A similar fix is included in Unicorn 2.0.0
as well.
-=== 1.0.0pre1 / 2010-10-26 21:33 UTC
+=== Rainbows! 1.0.0pre1 - kinder, gentler I/O / 2010-10-26 21:33 UTC
Mostly internal changes for kgio (and Unicorn) integration.
There should be no (supported) user-visible changes from
Rainbows! 0.97.0. kgio should improve performance for
concurrency models that use non-blocking I/O internally,
especially under Ruby 1.9.2
-=== 0.97.0 / 2010-08-28 19:46 UTC
+=== Rainbows! 0.97.0 / 2010-08-28 19:46 UTC
We now depend on Unicorn 1.1.3 to avoid race conditions during
log cycling. This bug mainly affected folks using Rainbows! as
a multithreaded static file server.
@@ -53,11 +80,11 @@
There are several bugfixes for proxying IO objects and the usual
round of small code cleanups and documentation updates.
See the commits in git for all the details.
-=== 0.96.0 / 2010-08-03 09:04 UTC
+=== Rainbows! 0.96.0 - range support / 2010-08-03 09:04 UTC
For concurrency models that use sendfile or IO.copy_stream, HTTP
Range requests are honored when serving static files. Due to
the lack of known use cases, multipart range responses are not
supported.
@@ -97,18 +124,18 @@
* Range responses supported when using sendfile or
IO.copy_stream.
See the full git logs for a list of all changes.
-=== 0.95.1 / 2010-07-11 02:53 UTC
+=== Rainbows! v0.95.1 - depend on newer Unicorn / 2010-07-11 02:53 UTC
Eric Wong (3):
test_isolate: document why we test with Rack 1.1.0
doc: make RDoc skip private methods
bump Unicorn dependency to 1.1.1
-=== 0.95.0 / 2010-07-10 08:45 UTC
+=== Rainbows! 0.95.0 - sendfile() support! / 2010-07-10 08:45 UTC
In addition to the 1.9-only IO.copy_stream, the new sendfile
1.0.0 gem may optionally be used with most concurrency models
(even under 1.8).
@@ -122,11 +149,11 @@
* optional ServerToken middleware for to display Server: header
* Dependencies bumped to Rack 1.1+ and Unicorn 1.1.0+
* numerous internal cleanups, small bugfixes and speedups
* more concise website oriented at users
-=== 0.94.0 / 2010-06-04 08:42 UTC
+=== Rainbows! 0.94.0 - one eight ate my homework! / 2010-06-04 08:42 UTC
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.
@@ -143,11 +170,11 @@
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.
-=== 0.93.0 / 2010-05-29 06:20 UTC
+=== Rainbows! 0.93.0 - MOAR!!!1 / 2010-05-29 06:20 UTC
In our race to have more concurrency options than real sites
using this server, we've added two new and fully supported
concurrency models: WriterThreadSpawn and WriterThreadPool
@@ -165,11 +192,11 @@
I floated the idea of doing something along these lines back in
the early days of Unicorn, but deemed it too dangerous for some
applications. But nothing is too dangerous for Rainbows! So
here they are now for your experimentation.
-=== 0.92.0 / 2010-05-04 21:58 UTC
+=== Rainbows! 0.92.0 - inching towards the pot of gold / 2010-05-04 21:58 UTC
Mostly internal cleanups and small improvements.
The only backwards incompatible change was the addition of the
"client_max_body_size" parameter to limit upload sizes to
@@ -194,11 +221,11 @@
[1] - http://euruko2008.csrug.cz/system/assets/documents/0000/0007/tanaka-IOcopy_stream-euruko2008.pdf
[2] - http://eventmachine.rubyforge.org/EventMachine/Connection.html#M000312
[3] - http://brainspl.at/articles/2008/04/18/deferred-requests-with-merb-ebb-and-thin
-=== 0.91.1 / 2010-04-19 21:13 UTC
+=== Rainbows! 0.91.1 - use a less-broken parser from Unicorn / 2010-04-19 21:13 UTC
This release fixes a denial-of-service vector for deployments
exposed directly to untrusted clients.
The HTTP parser in Unicorn <= 0.97.0 would trip an assertion
@@ -221,11 +248,11 @@
0.91.0 nor Unicorn 0.97.0
This bug affects all previously released versions of Rainbows!
and Zbatery.
-=== 0.91.0 / 2010-03-01 10:03 UTC
+=== Rainbows! 0.91.0 - Unicorn resync / 2010-03-01 10:03 UTC
Unicorn 0.97.0 has a bunch of internal cleanups and small fixes
and this is mainly to resync with those changes.
keepalive_timeout now defaults to 5 seconds (from 2 seconds
@@ -237,11 +264,11 @@
explicitly with FiberSpawn/FiberPool-only (not RevFiberSpawn)
* quiet down ENOTCONN handling, there's nothing we can do about
this error so we won't fill our logs with it.
-=== 0.90.2 / 2010-02-13 09:11 UTC
+=== Rainbows! 0.90.2 / 2010-02-13 09:11 UTC
This release depends on Unicorn 0.96.1 for an updated
Unicorn::HttpParser to avoid leaking memory.
The HttpParser in Unicorn <= 0.96.0 did not setup the parser
@@ -264,11 +291,11 @@
Rakefile: autoload Gem
t/bin/*: encoding should be the first line after shebang
gemspec: bump dependency on Unicorn to avoid leak
Rainbows! 0.90.2
-=== 0.90.1 / 2009-12-30 10:24 UTC
+=== Rainbows! 0.90.1 / 2009-12-30 10:24 UTC
This release contains minor bugfixes/compatibility improvements
for ThreadSpawn, ThreadPool and EventMachine users.
Excessive error messages from spurious wakeups using
@@ -277,21 +304,21 @@
EventMachine users may now use EM::Deferrable objects in
responses, vastly improving compatibility with existing
async_sinatra apps.
-=== 0.90.0 / 2009-12-22 21:54 UTC
+=== Rainbows! 0.90.0 / 2009-12-22 21:54 UTC
This release should fix ThreadSpawn green thread blocking issues
under MRI 1.8. Excessive socket closing is avoided when using
Thread* models with Sunshowers (or clients disconnecting
during uploads).
There is a new RevFiberSpawn concurrency model which combines
Rev with the traditional FiberSpawn model.
-=== 0.9.0 / 2009-12-13 22:51 UTC
+=== Rainbows! 0.9.0 / 2009-12-13 22:51 UTC
This release introduces compatibility with Sunshowers, a library
for Web Sockets, see http://rainbows.rubyforge.org/sunshowers
for more information. Several small cleanups and fixes.
@@ -315,17 +342,17 @@
README: add Sunshowers reference
Rakefile: resync with Unicorn
doc/comparison: add Web Sockets to comparison
README updates
-=== 0.8.0 / 2009-12-02 08:55 UTC
+=== Rainbows! 0.8.0 / 2009-12-02 08:55 UTC
This release fixes a memory leak in our existing Revactor
concurrency model. A new RevThreadPool concurrency model has
been added as well as small cleaups to exit handling in workers.
-=== 0.7.0 / 2009-11-30 04:21 UTC
+=== Rainbows! 0.7.0 / 2009-11-30 04:21 UTC
keepalive_timeout (default: 2 seconds) is now supported to
disconnect idle connections. Several new concurrency models
added include: NeverBlock, FiberSpawn and FiberPool; all of
which have only been lightly tested. RevThreadSpawn loses
@@ -340,11 +367,11 @@
If you're using any of the Rev-based concurrency models, the
latest iobuffer (0.1.3) gem will improve performance. Also,
RevThreadSpawn should become usable under MRI 1.8 with the next
release of Rev (0.3.2).
-=== 0.6.0 / 2009-11-15 23:29 UTC
+=== Rainbows! 0.6.0 - bugfixes galore / 2009-11-15 23:29 UTC
Client shutdowns/errors when streaming "rack.input" into the
Rack application are quieter now. Rev and EventMachine workers
now shutdown correctly when the master dies. Worker processes
now fail gracefully if log reopening fails. ThreadSpawn and
@@ -383,11 +410,11 @@
revactor/tee_input: share error handling with superclass
RevThreadSpawn is still experimental
Revert "Threaded models have trouble with late loading under 1.9"
Rakefile: add raa_update task
-=== 0.5.0 / 2009-11-05 10:27 UTC
+=== Rainbows! 0.5.0 / 2009-11-05 10:27 UTC
We depend on the just-released Unicorn 0.94.0 for the fixed
trailer handling. As with `unicorn', the `rainbows' executable
now sets and respects ENV["RACK_ENV"]. Also small fixes and
cleanups including better FreeBSD 7.2 compatibility and
@@ -413,11 +440,11 @@
cleanup: remove unused t????.ru test files
tests: staggered trailer upload test
ensure RACK_ENV is inherited from the parent env
t0100: more precise `expr` usage
-=== 0.4.0 / 2009-10-27 08:44 UTC
+=== Rainbows! 0.4.0 / 2009-10-27 08:44 UTC
Basic single-threaded EventMachine support is now included. It
supports async_synatra[1] via the "async.callback" Rack
environment[2]. For EventMachine, we rely on the updated
attach/watch API in EventMachine 0.12.10.
@@ -484,11 +511,11 @@
[1] http://github.com/raggi/async_sinatra
[2] this is not 100% Rack::Lint compatible, but we'll let it
slide since there are already folks depending on
the async_sinatra gem
-=== 0.3.0 / 2009-10-19 18:21 UTC
+=== Rainbows! 0.3.0 / 2009-10-19 18:21 UTC
The major feature of this release is the new DeferredResponse
middleware for the Rev-based concurrency model. It should be
transparently compatible with non-Rev models, as well. As a
pleasant side effect, this change also allows large files to be
@@ -537,11 +564,11 @@
TUNING: update documentation notes
TODO: update with new items
local.mk.sample: sync with BDFL's version
Rainbows! 0.3.0
-=== 0.2.0 / 2009-10-15 08:01 UTC
+=== Rainbows! 0.2.0 / 2009-10-15 08:01 UTC
This release adds preliminary Rev support for network
concurrency under Ruby 1.8 and Ruby 1.9. There are caveats to
this model and reading the RDoc for Rainbows::Rev is
recommended.
@@ -622,11 +649,11 @@
t4003: chmod +x
local.mk.sample: use rev 0.3.1 instead
README: link to AppPool and extra note about Rev model
Rainbows! 0.2.0
-=== 0.1.1 / 2009-10-06 03:51 UTC
+=== Rainbows! v0.1.1 / 2009-10-06 03:51 UTC
Fixed Ruby 1.8 support (and all 1.9 systems without Revactor).
Process-wide timeout handling for the ThreadSpawn concurrency
model should now work properly. Small cleanups everywhere.
@@ -646,10 +673,10 @@
local.mk.sample: fix revactor dependency
Thread* models: cleanup timeout management
thread_spawn: fix timeout leading to worker death
less error-prone timeouts for Thread models
-=== 0.1.0 / 2009-10-05 10:44 UTC
+=== Rainbows! 0.1.0 / 2009-10-05 10:44 UTC
Initial release
This release is currently highly experimental and is still
missing a lot of test coverage.