about summary refs log tree commit homepage
DateCommit message (Collapse)
2010-07-06tee_input: allow tuning of client_body_buffer_size/io_size
Some folks may require more fine-grained control of buffering and I/O chunk sizes, so we'll support them (unofficially, for now). (cherry picked from commit 9f48be69bfe579dab02b5fe8d6e728ae63fd24fc)
2010-07-06tee_input: (nitpick) use IO#rewind instead of IO#seek(0)
no need to pass an extra argument (cherry picked from commit 1a49a8295054a2e931f5288540acb858be8edcc8)
2010-06-25test-exec: prefer ENV['PWD'] in working_directory tests
We do an extra check in the application dispatch to ensure ENV['PWD'] is set correctly to match Dir.pwd (even if the string path is different) as this is required for Capistrano deployments. These tests should now pass under OSX where /var is apparently a symlink to /private/var.
2010-06-17unicorn 1.0.0 - yes, this is a real project v1.0.0
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
2010-06-17doc: update CONTRIBUTORS
2010-06-17GNUmakefile: allow RSYNC variable to be overridden
This lets me use RSYNC=echo when testing/editing documentation without actually publishing it.
2010-06-17t030[34]: proper temporary UNIX domain socket handling
test-lib handles variables named "*socket" (and "*fifo") differently than ordinary variables.
2010-06-17tests: 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.
2010-06-17tests: reenable more tests for rbx
As of rbx commit cf4a5a759234faa3f7d8a92d68fa89d8c5048f72, most of the issues uncovered in our test suite are fixed.
2010-06-17revert rbx-only workaround for IO#reopen
This is fixed upstream in Rubinius by commit b630ad9ddb4544a62e8e2282ba7dc59c4269bad7
2010-06-15workaround 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
2010-06-14tee_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.
2010-06-14local.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.
2010-06-14app/exec_cgi: rack.input may not respond to #size
Rack 1.2 no longer requires "rack.input" objects respond to size.
2010-06-12http: fix rb_str_set_len() define for 1.8.6
2010-06-11t0005: Ruby 1.9.2 $LOAD_PATH fix
Ruby 1.9.2 no longer adds the current directory to $LOAD_PATH automatically.
2010-06-11cleanup: use modules were applicable
No point in having namespaces be classes when we never create instances of them...
2010-06-11doc: cleanup rdoc escaping in title, hopefully
2010-06-10unicorn 0.991.0 - startup improvements v0.991.0
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.
2010-06-10test to ensure "unicorn fooapp.rb" respects working_directory
2010-06-10add test for erroring out when config.ru is bad
2010-06-10t0303: extra test for multiple listeners
We share the same array from the original bin/* down into the Configurator.
2010-06-10docs: hopefully clarify preload_app=false behavior
While we're at it, inform people of why they might use a symlink
2010-06-10README: more aggressively kill unnecessary links
... And make the gemspec do minor un-RDoc-ing
2010-06-10examples/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.
2010-06-10tests: fix sha1 calculation for non-random_blob
This was commit abc207b2918606867094f2820bab58223e99aac4 from rainbows.git
2010-06-10t0303: set executable bit
2010-06-10my-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...
2010-06-10tests: 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
2010-06-10configurator: remove debugging output
2010-06-10fix alt-working_directory behavior for Rails 3
2010-06-10http: 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().
2010-06-10unicorn_rails: no need to load ActionDispatch::Static
Rails 3 will automatically load it for us.
2010-06-10tests: split out host/port extraction from listen
more tests may use it
2010-06-10tests: update Rails 3 tests to Rails 3 beta4
2010-06-10respect "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
2010-06-10unicorn_rails: use Kernel#warn instead of $stderr.puts
shorter is better
2010-06-10tests: 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.
2010-06-10Rakefile: isolate to rbx directory
We haven't started using isolate with Rubinius, yet, but we may soon.
2010-06-10Rakefile: only try rake-compiler if VERSION is defined
Our gemspec won't work without it
2010-06-10isolate: don't run isolate in parallel
~/.gems is still shared, and we don't isolate *that* often enough to matter
2010-06-10launcher: get rid of backwards compatibility code
Rainbows! and Zbatery have long been upgraded to pass options to us.
2010-06-08tests: 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.
2010-06-08unicorn_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.
2010-06-08tests: libify common rails3 setup code
We'll be adding more Rails 3 tests..
2010-06-08Fix 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 <normalperson@yhbt.net>
2010-06-08t0300: Rails 3 test actually uses unicorn_rails
Oops, but unicorn_rails appears to work well here
2010-06-08unicorn 0.990.0 - inching towards 1.0 v0.990.0
Thanks to Augusto Becciu for finding a bug in the HTTP parser that caused a TypeError (and 500) when a rare client set the "Version:" header which conflicts with the HTTP_VERSION header we parse in the first line of the request[1]. Horizontal tabs are now allowed as leading whitespace in header values as according to RFC 2616 as pointed out by IƱaki Baz Castillo[2]. Taking a hint from Rack 1.1, the "logger" configuration parameter no longer requires a "close" method. This means some more Logger replacements may be used. There's a new, optional, Unicorn (and maybe Passenger)-only middleware, Unicorn::OobGC[2] that runs GC outside of the normal request/response cycle to help out memory-hungry applications. Thanks to Luke Melia for being brave enough to test and report back on my big_app_gc.rb monkey patch[3] which lead up to this. Rails 3 (beta) support: Using "unicorn" is still recommended as Rails 3 comes with a config.ru, but "unicorn_rails" is cleaned up a bit and *should* work as well as "unicorn" out-of-the-box. Feedback is much appreciated. Rubinius updates: USR2 binary upgrades are broken due to {TCPServer,UNIXServer}.for_fd[5][6] being broken (differently). Repeatedly hitting the server with signals in a tight loop is unusual and not recommended[7]. There are some workarounds and general code cleanups for other issues[8], as well but things should generally work unless you need USR2 upgrades. Feedback and reports would be greatly appreciated as usual. MRI support: All tests (except old Rails) run and pass under 1.9.2-preview3. 1.8.7 and 1.9.1 work well as usual and will continue to be supported indefinitely. Lets hope this is the last release before 1.0. Please report any issues on the mailing list[9] or email us privately[a]. Don't send HTML mail. [1] - http://mid.gmane.org/AANLkTimuGgcwNAMcVZdViFWdF-UcW_RGyZAue7phUXps@mail.gmail.com [2] - http://mid.gmane.org/i2xcc1f582e1005070651u294bd83oc73d1e0adf72373a@mail.gmail.com [3] - http://unicorn.bogomips.org/Unicorn/OobGC.html [4] - http://unicorn.bogomips.org/examples/big_app_gc.rb [5] - http://github.com/evanphx/rubinius/issues/354 [6] - http://github.com/evanphx/rubinius/issues/355 [7] - http://github.com/evanphx/rubinius/issues/356 [8] - http://github.com/evanphx/rubinius/issues/347 [9] - mailto:mongrel-unicorn@rubyforge.org [a] - mailto:unicorn@bogomips.org
2010-06-08cleanup makefiles, restore aggregation screwup
The publish_doc target belongs in main, since other people may update the website. local.mk.sample enables a subset of tests for Rubinius and allows them to run in parallel with the MRI tests. And it was NOT a UUoC after all, there are multiple files to aggregate :x
2010-06-08GNUmakefile: add test-all and test-integration targets
Long overdue