Release Name: 1.0.0
Notes:
Unicorn is an HTTP server for Rack applications designed to only serve
fast clients on low-latency, high-bandwidth connections and take
advantage of features in Unix/Unix-like kernels. Slow clients should
only be served by placing a reverse proxy capable of fully buffering
both the the request and response in between Unicorn and slow clients.
* http://unicorn.bogomips.org/
* mongrel-unicorn@rubyforge.org
* git://git.bogomips.org/unicorn.git
Changes:
There are only minor changes since 0.991.0.
For users clinging onto the past, MRI 1.8.6 support has been
restored. Users are strongly encouraged to upgrade to the
latest 1.8.7, REE or 1.9.1.
For users looking towards the future, the core test suite and
the Rails 3 (beta) integration tests pass entirely under 1.9.2
preview3. As of the latest rubinius.git[1], Rubinius support is
nearly complete as well.
Under Rubinius, signals may corrupt responses as they're being
written to the socket, but that should be fixable transparently
to us[4]. Support for the hardly used, hardly documented[2]
embedded command-line switches in rackup config (.ru) files is
is also broken under Rubinius.
The recently-released Rack 1.2.1 introduced no compatiblity
issues[3] in core Unicorn. We remain compatible with all Rack
releases starting with 0.9.1 (and possibly before).
[1] tested with Rubinius upstream commit
cf4a5a759234faa3f7d8a92d68fa89d8c5048f72
[2] lets avoid the Dueling Banjos effect here :x
[3] actually, Rack 1.2.1 is broken under 1.8.6.
[4] http://github.com/evanphx/rubinius/issues/373
Changes:
CONTRIBUTORS | 7 +-
GIT-VERSION-GEN | 2 +-
GNUmakefile | 5 +-
README | 2 +-
ext/unicorn_http/ext_help.h | 1 +
lib/unicorn/app/exec_cgi.rb | 3 +-
lib/unicorn/const.rb | 4 +-
lib/unicorn/launcher.rb | 2 +-
lib/unicorn/tee_input.rb | 6 ++
lib/unicorn/util.rb | 3 +-
local.mk.sample | 14 +++-
t/t0005-working_directory_app.rb.sh | 2 +-
t/t0006-reopen-logs.sh | 83 ++++++++++++++++++++
t/t0006.ru | 13 +++
t/t0007-working_directory_no_embed_cli.sh | 44 ++++++++++
t/t0303-rails3-alt-working_directory_config.ru.sh | 11 ++-
...04-rails3-alt-working_directory_no_embed_cli.sh | 52 ++++++++++++
test/exec/test_exec.rb | 6 +-
test/unit/test_signals.rb | 2 +-
test/unit/test_socket_helper.rb | 6 +-
unicorn.gemspec | 2 +-
21 files changed, 241 insertions(+), 29 deletions(-)
commit d9470b6358730fe9bef12cc9b7506e913ef91857
Author: Eric Wong
Date: Thu Jun 17 09:18:16 2010 +0000
unicorn 1.0.0 - yes, this is a real project
There are only minor changes since 0.991.0.
For users clinging onto the past, MRI 1.8.6 support has been
restored. Users are strongly encouraged to upgrade to the
latest 1.8.7, REE or 1.9.1.
For users looking towards the future, the core test suite and
the Rails 3 (beta) integration tests pass entirely under 1.9.2
preview3. As of the latest rubinius.git[1], Rubinius support is
nearly complete as well.
Under Rubinius, signals may corrupt responses as they're being
written to the socket, but that should be fixable transparently
to us[4]. Support for the hardly used, hardly documented[2]
embedded command-line switches in rackup config (.ru) files is
is also broken under Rubinius.
The recently-released Rack 1.2.1 introduced no compatiblity
issues[3] in core Unicorn. We remain compatible with all Rack
releases starting with 0.9.1 (and possibly before).
[1] tested with Rubinius upstream commit
cf4a5a759234faa3f7d8a92d68fa89d8c5048f72
[2] lets avoid the Dueling Banjos effect here :x
[3] actually, Rack 1.2.1 is broken under 1.8.6.
[4] http://github.com/evanphx/rubinius/issues/373
commit 3d72f695def9c4a960e44c03de3e71d537f94f87
Author: Eric Wong
Date: Thu Jun 17 09:05:41 2010 +0000
doc: update CONTRIBUTORS
commit 333f22b27fdfb89b5f579ab541d1daa3167fdc73
Author: Eric Wong
Date: Thu Jun 17 07:41:53 2010 +0000
GNUmakefile: allow RSYNC variable to be overridden
This lets me use RSYNC=echo when testing/editing documentation
without actually publishing it.
commit bb6b693ae1eb0a32f374ab5d6ebf8f595be2812d
Author: Eric Wong
Date: Thu Jun 17 07:02:33 2010 +0000
t030[34]: proper temporary UNIX domain socket handling
test-lib handles variables named "*socket" (and "*fifo")
differently than ordinary variables.
commit b64099a18c7a353d2b6f34ad84da8afafd6f873d
Author: Eric Wong
Date: Thu Jun 17 06:46:43 2010 +0000
tests: extra working_directory integration cases
Our fugly code can't handle embedded command-line options in
config.ru when using Rubinius yet. So add some related tests
to the ones marked RBX_SKIP that don't rely on embedded
command-line options.
commit 5c804c89093378c67db56474ce1da1a0e0f08a7d
Author: Eric Wong
Date: Thu Jun 17 06:41:36 2010 +0000
tests: reenable more tests for rbx
As of rbx commit cf4a5a759234faa3f7d8a92d68fa89d8c5048f72,
most of the issues uncovered in our test suite are fixed.
commit 85709c6c86c792a9a8576e83b40a70322c5d6034
Author: Eric Wong
Date: Thu Jun 17 04:32:08 2010 +0000
revert rbx-only workaround for IO#reopen
This is fixed upstream in Rubinius by commit
b630ad9ddb4544a62e8e2282ba7dc59c4269bad7
commit 13dc5b88cde691cc4e105de04ebb7804ae633ae6
Author: Eric Wong
Date: Tue Jun 15 23:17:33 2010 +0000
workaround rbx not reopening logs to stderr/stdout
While log reopening worked reliably for newly-created File
objects in the unit tests, the $stderr and $stdout handles that
get redirected did not get reopened reliably under Rubinius.
We work around this by relying on Rubinius internals and
directly setting the @path instance variable. This is harmless
for MRI and should be harmless for other any other Ruby
implementations we'll eventually support.
ref: http://github.com/evanphx/rubinius/issues/360
commit 43175d4fe36f91a28563a8cbf46160ee076de31c
Author: Eric Wong
Date: Mon Jun 14 08:33:55 2010 +0000
tee_input: update documentation for Rack 1.2
Rack 1.2 removed the +size+ method requirement, but we'll
still support it since Rack 1.2 doesn't _prohibit_ it, and
Rack 1.[01] applications will continue to exist for a while.
commit dbcbbe566b6745e6ff8b1a56218bdc0999810902
Author: Eric Wong
Date: Mon Jun 14 08:16:38 2010 +0000
local.mk.sample: add 1.8.6-p114 to "full-test"
p114 probably had the most deployments of the 1.8.6 series,
and I encountered problems with p399 that don't seem to be
triggered with any other Rubies. 1.8.6 is mostly a lost
cause, but we shall avoid the rb_str_set_len() regression.
commit 075f83bf7929daa152dc1c12e2c53b8c61cc15c0
Author: Eric Wong
Date: Mon Jun 14 08:00:04 2010 +0000
app/exec_cgi: rack.input may not respond to #size
Rack 1.2 no longer requires "rack.input" objects respond
to size.
commit 0cb02efd0e2e2c80667863fd404d1fad7c63bb1f
Author: Eric Wong
Date: Sat Jun 12 18:32:12 2010 +0000
http: fix rb_str_set_len() define for 1.8.6
commit 97dca61543683b286eac41c6fb2665e5a13098c6
Author: Eric Wong
Date: Fri Jun 11 15:29:26 2010 -0700
t0005: Ruby 1.9.2 $LOAD_PATH fix
Ruby 1.9.2 no longer adds the current directory to $LOAD_PATH
automatically.
commit 549ac1249142d2f9a75f8eb05963898c53ab6b6d
Author: Eric Wong
Date: Fri Jun 11 13:22:31 2010 -0700
cleanup: use modules were applicable
No point in having namespaces be classes when we never
create instances of them...
commit b7247fe1329092671a893b4f75def8d66bad31c8
Author: Eric Wong
Date: Fri Jun 11 13:01:31 2010 -0700
doc: cleanup rdoc escaping in title, hopefully
|