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:
The "working_directory" configuration parameter is now handled
before config.ru. That means "unicorn" and "unicorn_rails" no
longer barfs when initially started outside of the configured
"working_directory" where a config.ru is required. A huge
thanks to Pierre Baillet for catching this ugly UI inconsistency
before the big 1.0 release
Thanks to Hongli Lai, out-of-the-box Rails 3 (beta) support
should be improved for deployments lacking a config.ru
There are more new integration tests, cleanups and some
documentation improvements.
Changes:
GIT-VERSION-GEN | 2 +-
GNUmakefile | 2 +-
README | 4 +-
Rakefile | 21 ++++--
SIGNALS | 7 ++-
bin/unicorn | 5 +-
bin/unicorn_rails | 49 ++++++++++---
examples/init.sh | 18 +++++-
ext/unicorn_http/ext_help.h | 8 +--
ext/unicorn_http/extconf.rb | 6 +--
lib/unicorn.rb | 7 +-
lib/unicorn/configurator.rb | 80 +++++++++++++++++++--
lib/unicorn/const.rb | 4 +-
lib/unicorn/launcher.rb | 63 ++++++++--------
t/my-tap-lib.sh | 5 +-
t/t0003-working_directory.sh | 56 ++++++++++++++
t/t0004-working_directory_broken.sh | 24 ++++++
t/t0005-working_directory_app.rb.sh | 37 ++++++++++
t/t0300-rails3-basic.sh | 34 +--------
t/t0301-rails3-missing-config-ru.sh | 33 +++++++++
t/t0302-rails3-alt-working_directory.sh | 32 ++++++++
t/t0303-rails3-alt-working_directory_config.ru.sh | 58 +++++++++++++++
t/test-lib.sh | 11 +++-
t/test-rails3.sh | 27 +++++++
test/test_helper.rb | 3 +
unicorn.gemspec | 2 +-
26 files changed, 480 insertions(+), 118 deletions(-)
commit 5d53342d6cb7724a3e357551aae358b63b45342c
Author: Eric Wong
Date: Thu Jun 10 19:13:49 2010 -0700
unicorn 0.991.0 - startup improvements
The "working_directory" configuration parameter is now handled
before config.ru. That means "unicorn" and "unicorn_rails" no
longer barfs when initially started outside of the configured
"working_directory" where a config.ru is required. A huge
thanks to Pierre Baillet for catching this ugly UI inconsistency
before the big 1.0 release
Thanks to Hongli Lai, out-of-the-box Rails 3 (beta) support
should be improved for deployments lacking a config.ru
There are more new integration tests, cleanups and some
documentation improvements.
commit eb57310d6130e5d2ce146126a17346f9cba6c49e
Author: Eric Wong
Date: Thu Jun 10 19:11:01 2010 -0700
test to ensure "unicorn fooapp.rb" respects working_directory
commit 454293f71376a3601e5e087d20a7d8420fdb3260
Author: Eric Wong
Date: Thu Jun 10 19:03:12 2010 -0700
add test for erroring out when config.ru is bad
commit 20e84b261be1b7452d0e91b3c7d072413c8e5aea
Author: Eric Wong
Date: Thu Jun 10 18:39:31 2010 -0700
t0303: extra test for multiple listeners
We share the same array from the original bin/* down
into the Configurator.
commit f9baab18705218dae4c37c2c92d1ceea151bba8e
Author: Eric Wong
Date: Thu Jun 10 17:57:08 2010 -0700
docs: hopefully clarify preload_app=false behavior
While we're at it, inform people of why they might use
a symlink
commit 14da5bda8f4f34e84670fd7ce411dc92c22ec469
Author: Eric Wong
Date: Thu Jun 10 17:31:33 2010 -0700
README: more aggressively kill unnecessary links
... And make the gemspec do minor un-RDoc-ing
commit 264337bcdb77252404fcef62be1efc5a125d781f
Author: Eric Wong
Date: Thu Jun 10 17:12:37 2010 -0700
examples/init: "upgrade" task waits for completion
This makes the user (sysadmin in this case) more aware if the
upgrade fails or doesn't work as intended. This change could be
more useful for Rainbows! with its long-running responses.
commit e8a3abc038c6a282a1e9943039c9e46c27720928
Author: Eric Wong
Date: Thu Jun 10 16:43:06 2010 -0700
tests: fix sha1 calculation for non-random_blob
This was commit abc207b2918606867094f2820bab58223e99aac4 from
rainbows.git
commit 0f2b2d484e978face3aa1495526f4b4b6a6e474f
Author: Eric Wong
Date: Thu Jun 10 23:04:21 2010 +0000
t0303: set executable bit
commit d0a0883eaaeec37800ca5cd07647b7b66a00c453
Author: Eric Wong
Date: Thu Jun 10 16:28:51 2010 -0700
my-tap-lib: fix race condition in verbose mode
Don't try to redirect until we know our FIFO consumers are
ready for us. This only seems to happen with bash and not
ksh...
commit 18e6540cb0fd824989dacecc84039d91b539a101
Author: Eric Wong
Date: Thu Jun 10 22:15:44 2010 +0000
tests: skip config.ru parsing tests under rbx
eval("...", TOPLEVEL_BINDING) is broken for us in Rubinius
(And our code is extremely nasty as well :x)
ref: http://github.com/evanphx/rubinius/issues/357
commit 89707c2c8dd7068d6fe9bd7f12b389e937fe1fed
Author: Eric Wong
Date: Thu Jun 10 22:09:19 2010 +0000
configurator: remove debugging output
commit ee0088ea9906701f0c89e89ce78acd9d4820ee65
Author: Eric Wong
Date: Thu Jun 10 21:45:54 2010 +0000
fix alt-working_directory behavior for Rails 3
commit 5e8979ad38efdc4de3a69cc53aea33710d478406
Author: Eric Wong
Date: Thu Jun 10 21:43:14 2010 +0000
http: cleanups for latest Rubinius
Rubinius now supports rb_str_set_len() and sets -fPIC.
We shouldn't check for rb_str_modify() since link-time detection
is broken under Rubinius and even 1.8.6 has rb_str_modify().
commit 25bfeb87bbc6266e7e20a2b7fec21b84c8ca0e2c
Author: Eric Wong
Date: Thu Jun 10 21:15:21 2010 +0000
unicorn_rails: no need to load ActionDispatch::Static
Rails 3 will automatically load it for us.
commit c5357d45d506caafee2a90ac550c4c00b4b15ed1
Author: Eric Wong
Date: Thu Jun 10 20:55:50 2010 +0000
tests: split out host/port extraction from listen
more tests may use it
commit 30996361d8134fee92f0198f83d71bc32f338de7
Author: Eric Wong
Date: Thu Jun 10 20:49:52 2010 +0000
tests: update Rails 3 tests to Rails 3 beta4
commit 4accf4449390c649bce0b1c9d84314d65fd41f8e
Author: Eric Wong
Date: Thu Jun 10 08:47:10 2010 +0000
respect "working_directory" wrt config.ru
Since we added support for the "working_directory" parameter, it
often became unclear where/when certain paths would be bound.
There are some extremely nasty dependencies and ordering issues
when doing this. It's all pretty fragile, but works for now
and we even have a full integration test to keep it working.
I plan on cleaning this up 2.x.x to be less offensive to look
at (Rainbows! and Zbatery are a bit tied to this at the moment).
Thanks to Pierre Baillet for reporting this.
ref: http://mid.gmane.org/AANLkTimKb7JARr_69nfVrJLvMZH3Gvs1o_KwZFLKfuxy@mail.gmail.com
commit bff55e030fa3dcd4ac24ec481a67d6f327d67797
Author: Eric Wong
Date: Thu Jun 10 03:06:31 2010 +0000
unicorn_rails: use Kernel#warn instead of $stderr.puts
shorter is better
commit 107f33b2205829c0ef07216255b4ec0e9b8f6730
Author: Eric Wong
Date: Wed Jun 9 23:50:00 2010 +0000
tests: set NO_PROXY when running tests
It's a good idea to use a caching http_proxy to save bandwidth
when isolating gems for different Ruby versions.
commit 56519d744eea72ace7c325d37b493ab9217ef44f
Author: Eric Wong
Date: Wed Jun 9 23:48:58 2010 +0000
Rakefile: isolate to rbx directory
We haven't started using isolate with Rubinius, yet,
but we may soon.
commit 2224b68cfbd77bc117c79d3db6e3c320bb8aafc6
Author: Eric Wong
Date: Wed Jun 9 23:48:28 2010 +0000
Rakefile: only try rake-compiler if VERSION is defined
Our gemspec won't work without it
commit ddb56ce824ea3686fb9a43685ddae6473e5c91c2
Author: Eric Wong
Date: Wed Jun 9 16:32:34 2010 -0700
isolate: don't run isolate in parallel
~/.gems is still shared, and we don't isolate
*that* often enough to matter
commit 4c5faa3c001d695330f49fbed162d97e31f60357
Author: Eric Wong
Date: Wed Jun 9 16:14:34 2010 -0700
launcher: get rid of backwards compatibility code
Rainbows! and Zbatery have long been upgraded to
pass options to us.
commit bfb10e16337c99fccfc86b37cff9b78857b0fa1c
Author: Eric Wong
Date: Tue Jun 8 19:39:09 2010 +0000
tests: add Rails 3 test for the missing config.ru case
In case we have weird Rails 3 users who choose to ignore
config.ru, we'll be ready.
commit 2c6141c8ae54f17cfb3091231dce0dde7212736b
Author: Eric Wong
Date: Tue Jun 8 19:35:42 2010 +0000
unicorn_rails: fix requires for Ruby 1.9.2
Ruby 1.9.2 no longer includes "." in $LOAD_PATH, so we need to
require using an explicit path. This issue only affected Rails
3 users who chose to run without the default config.ru, as the
config.ru generated by Rails 3 will call File.expand_path
in the same way.
commit 181ee8ca0855ca8f3af7317f2dc54c7ee63524f7
Author: Eric Wong
Date: Tue Jun 8 19:28:03 2010 +0000
tests: libify common rails3 setup code
We'll be adding more Rails 3 tests..
commit 37e264d7e132969e1faf87247e66abf909cedf29
Author: Hongli Lai (Phusion)
Date: Tue Jun 8 13:22:25 2010 +0200
Fix unicorn_rails compatibility with the latest Rails 3 code
This allows us to properly detect Rails 3 installations
in cases where config.ru is not present.
[ew: expanded commit message
fixed static file serving,
more flexible regexp for matching module ]
ref: mid.gmane.org/AANLkTiksBxIo_PFWoiPTWi1entXZRb7D2uE-Rl7H3lbw@mail.gmail.com
Acked-by: Eric Wong
commit ac0033c74c7477d5fe13bd95df4e704b9544a9ae
Author: Eric Wong
Date: Tue Jun 8 18:41:57 2010 +0000
t0300: Rails 3 test actually uses unicorn_rails
Oops, but unicorn_rails appears to work well here
|