=== 2.9.0 / 2014-07-12 * 1 minor feature: * Add SSL support for JRuby * 3 bug fixes: * Typo BUNDLER_GEMFILE -> BUNDLE_GEMFILE * Use fast_write because we can't trust syswrite * pumactl - do not modify original ARGV * 4 doc fixes: * BSD-3-Clause over BSD to avoid confusion * Deploy doc: clarification of the GIL * Fix typo in DEPLOYMENT.md * Update README.md * 6 PRs merged: * Merge pull request #520 from misfo/patch-2 * Merge pull request #530 from looker/jruby-ssl * Merge pull request #537 from vlmonk/patch-1 * Merge pull request #540 from allaire/patch-1 * Merge pull request #544 from chulkilee/bsd-3-clause * Merge pull request #551 from jcxplorer/patch-1 === 2.8.2 / 2014-04-12 * 4 bug fixes: * During upgrade, change directory in main process instead of workers. * Close the client properly on error * Capistrano: fallback from phased restart to start when not started * Allow tag option in conf file * 4 doc fixes: * Fix Puma daemon service README typo * `preload_app!` instead of `preload_app` * add preload_app and prune_bundler to example config * allow changing of worker_timeout in config file * 11 PRs merged: * Merge pull request #487 from ckuttruff/master * Merge pull request #492 from ckuttruff/master * Merge pull request #493 from alepore/config_tag * Merge pull request #503 from mariuz/patch-1 * Merge pull request #505 from sammcj/patch-1 * Merge pull request #506 from FlavourSys/config_worker_timeout * Merge pull request #510 from momer/rescue-block-handle-servers-fix * Merge pull request #511 from macool/patch-1 * Merge pull request #514 from edogawaconan/refactor_env * Merge pull request #517 from misfo/patch-1 * Merge pull request #518 from LongMan/master === 2.8.1 / 2014-03-06 * 1 bug fixes: * Run puma-wild with proper deps for prune_bundler * 2 doc changes: * Described the configuration file finding behavior added in 2.8.0 and how to disable it. * Start the deployment doc * 6 PRs merged: * Merge pull request #471 from arthurnn/fix_test * Merge pull request #485 from joneslee85/patch-9 * Merge pull request #486 from joshwlewis/patch-1 * Merge pull request #490 from tobinibot/patch-1 * Merge pull request #491 from brianknight10/clarify-no-config === 2.8.0 / 2014-02-28 * 8 minor features: * Add ability to autoload a config file. Fixes #438 * Add ability to detect and terminate hung workers. Fixes #333 * Add booted_workers to stats response * Add config to customize the default error message * Add prune_bundler option * Add worker indexes, expose them via on_worker_boot. Fixes #440 * Add pretty process name * Show the ruby version in use * 7 bug fixes: * Added 408 status on timeout. * Be more hostile with sockets that write block. Fixes #449 * Expect at_exit to exclusively remove the pidfile. Fixes #444 * Expose latency and listen backlog via bind query. Fixes #370 * JRuby raises IOError if the socket is there. Fixes #377 * Process requests fairly. Fixes #406 * Rescue SystemCallError as well. Fixes #425 * 4 doc changes: * Add 2.1.0 to the matrix * Add Code Climate badge to README * Create signals.md * Set the license to BSD. Fixes #432 * 14 PRs merged: * Merge pull request #428 from alexeyfrank/capistrano_default_hooks * Merge pull request #429 from namusyaka/revert-const_defined * Merge pull request #431 from mrb/master * Merge pull request #433 from alepore/process-name * Merge pull request #437 from ibrahima/master * Merge pull request #446 from sudara/master * Merge pull request #451 from pwiebe/status_408 * Merge pull request #453 from joevandyk/patch-1 * Merge pull request #470 from arthurnn/fix_458 * Merge pull request #472 from rubencaro/master * Merge pull request #480 from jjb/docs-on-running-test-suite * Merge pull request #481 from schneems/master * Merge pull request #482 from prathamesh-sonpatki/signals-doc-cleanup * Merge pull request #483 from YotpoLtd/master === 2.7.1 / 2013-12-05 * 1 bug fix: * Keep STDOUT/STDERR the right mode. Fixes #422 === 2.7.0 / 2013-12-03 * 1 minor feature: * Adding TTIN and TTOU to increment/decrement workers * N bug fixes: * Always use our Process.daemon because it's not busted * Add capistrano restart failback to start. * Change position of `cd` so that rvm gemset is loaded * Clarify some platform specifics * Do not close the pipe sockets when retrying * Fix String#byteslice for Ruby 1.9.1, 1.9.2 * Fix compatibility with 1.8.7. * Handle IOError closed stream in IO.select * Increase the max URI path length to 2048 chars from 1024 chars * Upstart jungle use config/puma.rb instead === 2.6.0 / 2013-09-13 * 2 minor features: * Add support for event hooks ** Add a hook for state transitions * Add phased restart to capistrano recipe. * 4 bug fixes: * Convince workers to stop by SIGKILL after timeout * Define RSTRING_NOT_MODIFIED for Rubinius performance * Handle BrokenPipe, StandardError and IOError in fat_wrote and break out * Return success status to the invoking environment === 2.5.1 / 2013-08-13 * 2 bug fixes: * Keep jruby daemon mode from retrying on a hot restart * Extract version from const.rb in gemspec === 2.5.0 / 2013-08-08 * 2 minor features: * Allow configuring pumactl with config.rb * make `pumactl restart` start puma if not running * 6 bug fixes: * Autodetect ruby managers and home directory in upstart script * Convert header values to string before sending. * Correctly report phased-restart availability * Fix pidfile creation/deletion race on jruby daemonization * Use integers when comparing thread counts * Fix typo in using lopez express (raw tcp) mode * 6 misc changes: * Fix typo in phased-restart response * Uncomment setuid/setgid by default in upstart * Use Puma::Const::PUMA_VERSION in gemspec * Update upstart comments to reflect new commandline * Remove obsolete pumactl instructions; refer to pumactl for details * Make Bundler used puma.gemspec version agnostic === 2.4.1 / 2013-08-07 * 1 experimental feature: * Support raw tcp servers (aka Lopez Express mode) === 2.4.0 / 2013-07-22 * 5 minor features: * Add PUMA_JRUBY_DAEMON_OPTS to get around agent starting twice * Add ability to drain accept socket on shutdown * Add port to DSL * Adds support for using puma config file in capistrano deploys. * Make phased_restart fallback to restart if not available * 10 bug fixes: * Be sure to only delete the pid in the master. Fixes #334 * Call out -C/--config flags * Change parser symbol names to avoid clash. Fixes #179 * Convert thread pool sizes to integers * Detect when the jruby daemon child doesn't start properly * Fix typo in CLI help * Improve the logging output when hijack is used. Fixes #332 * Remove unnecessary thread pool size conversions * Setup :worker_boot as an Array. Fixes #317 * Use 127.0.0.1 as REMOTE_ADDR of unix client. Fixes #309 === 2.3.2 / 2013-07-08 * 1 bug fix: * Move starting control server to after daemonization. === 2.3.1 / 2013-07-06 * 2 bug fixes: * Include the right files in the Manifest. * Disable inheriting connections on restart on windows. Fixes #166 * 1 doc change: * Better document some platform constraints === 2.3.0 / 2013-07-05 * 1 major bug fix: * Stabilize control server, add support in cluster mode * 5 minor bug fixes: * Add ability to cleanup stale unix sockets * Check status data better. Fixes #292 * Convert raw IO errors to ConnectionError. Fixes #274 * Fix sending Content-Type and Content-Length for no body status. Fixes #304 * Pass state path through to `pumactl start`. Fixes #287 * 2 internal changes: * Refactored modes into seperate classes that CLI uses * Changed CLI to take an Events object instead of stdout/stderr (API change) === 2.2.2 / 2013-07-02 * 1 bug fix: * Fix restart_command in the config === 2.2.1 / 2013-07-02 * 1 minor feature: * Introduce preload flag * 1 bug fix: * Pass custom restart command in JRuby === 2.2.0 / 2013-07-01 * 1 major feature: * Add ability to preload rack app * 2 minor bugfixes: * Don't leak info when not in development. Fixes #256 * Load the app, then bind the ports === 2.1.1 / 2013-06-20 * 2 minor bug fixes: * Fix daemonization on jruby * Load the application before daemonizing. Fixes #285 === 2.1.0 / 2013-06-18 * 3 minor features: * Allow listening socket to be configured via Capistrano variable * Output results from 'stat's command when using pumactl * Support systemd socket activation * 15 bug fixes: * Deal with pipes closing while stopping. Fixes #270 * Error out early if there is no app configured * Handle ConnectionError rather than the lowlevel exceptions * tune with `-C` config file and `on_worker_boot` * use `-w` * Fixed some typos in upstart scripts * Make sure to use bytesize instead of size (MiniSSL write) * Fix an error in puma-manager.conf * fix: stop leaking sockets on restart (affects ruby 1.9.3 or before) * Ignore errors on the cross-thread pipe. Fixes #246 * Ignore errors while uncorking the socket (it might already be closed) * Ignore the body on a HEAD request. Fixes #278 * Handle all engine data when possible. Fixes #251. * Handle all read exceptions properly. Fixes #252 * Handle errors from the server better * 3 doc changes: * Add note about on_worker_boot hook * Add some documentation for Clustered mode * Added quotes to /etc/puma.conf === 2.0.1 / 2013-04-30 * 1 bug fix: * Fix not starting on JRuby properly === 2.0.0 / 2013-04-29 RailsConf 2013 edition! * 2 doc changes: * Start with rackup -s Puma, NOT rackup -s puma. * Minor doc fixes in the README.md, Capistrano section * 2 bug fixes: * Fix reading RACK_ENV properly. Fixes #234 * Make cap recipe handle tmp/sockets; fixes #228 * 3 minor changes: * Fix capistrano recipe * Fix stdout/stderr logs to sync outputs * allow binding to IPv6 addresses === 2.0.0.b7 / 2013-03-18 * 5 minor enhancements: * Add -q option for :start * Add -V, --version * Add default Rack handler helper * Upstart support * Set worker directory from configuration file * 12 bug fixes: * Close the binder in the right place. Fixes #192 * Handle early term in workers. Fixes #206 * Make sure that the default port is 80 when the request doesn't include HTTP_X_FORWARDED_PROTO. * Prevent Errno::EBADF errors on restart when running ruby 2.0 * Record the proper @master_pid * Respect the header HTTP_X_FORWARDED_PROTO when the host doesn't include a port number. * Retry EAGAIN/EWOULDBLOCK during syswrite * Run exec properly to restart. Fixes #154 * Set Rack run_once to false * Syncronize all access to @timeouts. Fixes #208 * Write out the state post-daemonize. Fixes #189 * Prevent crash when all workers are gone === 2.0.0.b6 / 2013-02-06 * 2 minor enhancements: * Add hook for running when a worker boots * Advertise the Configuration object for apps to use. * 1 bug fix: * Change directory in working during upgrade. Fixes #185 === 2.0.0.b5 / 2013-02-05 * 2 major features: * Add phased worker upgrade * Add support for the rack hijack protocol * 2 minor features: * Add -R to specify the restart command * Add config file option to specify the restart command * 5 bug fixes: * Cleanup pipes properly. Fixes #182 * Daemonize earlier so that we don't lose app threads. Fixes #183 * Drain the notification pipe. Fixes #176, thanks @cryo28 * Move write_pid to after we daemonize. Fixes #180 * Redirect IO properly and emit message for checkpointing === 2.0.0.b4 / 2012-12-12 * 4 bug fixes: * Properly check #syswrite's value for variable sized buffers. Fixes #170 * Shutdown status server properly * Handle char vs byte and mixing syswrite with write properly * made MiniSSL validate key/cert file existence === 2.0.0.b3 / 2012-11-22 * 1 bug fix: * Package right files in gem === 2.0.0.b2 / 2012-11-18 * 5 minor feature: * Now Puma is bundled with an capistrano recipe. Just require 'puma/capistrano' in you deploy.rb * Only inject CommonLogger in development mode * Add -p option to pumactl * Add ability to use pumactl to start a server * Add options to daemonize puma * 7 bug fixes: * Reset the IOBuffer properly. Fixes #148 * Shutdown gracefully on JRuby with Ctrl-C * Various methods to get newrelic to start. Fixes #128 * fixing syntax error at capistrano recipe * Force ECONNRESET when read returns nil * Be sure to empty the drain the todo before shutting down. Fixes #155 * allow for alternate locations for status app === 2.0.0.b1 / 2012-09-11 * 1 major feature: * Optional worker process mode (-w) to allow for process scaling in addition to thread scaling * 1 bug fix: * Introduce Puma::MiniSSL to be able to properly control doing nonblocking SSL NOTE: SSL support in JRuby is not supported at present. Support will be added back in a future date when a java Puma::MiniSSL is added. === 1.6.3 / 2012-09-04 * 1 bug fix: * Close sockets waiting in the reactor when a hot restart is performed so that browsers reconnect on the next request === 1.6.2 / 2012-08-27 * 1 bug fix: * Rescue StandardError instead of IOError to handle SystemCallErrors as well as other application exceptions inside the reactor. === 1.6.1 / 2012-07-23 * 1 packaging bug fixed: * Include missing files === 1.6.0 / 2012-07-23 * 1 major bug fix: * Prevent slow clients from starving the server by introducing a dedicated IO reactor thread. Credit for reporting goes to @meh. === 1.5.0 / 2012-07-19 * 7 contributers to this release: * Christian Mayer * DarĂ­o Javier Cravero * Dirkjan Bussink * Gianluca Padovani * Santiago Pastorino * Thibault Jouan * tomykaira * 6 bug fixes: * Define RSTRING_NOT_MODIFIED for Rubinius * Convert status to integer. Fixes #123 * Delete pidfile when stopping the server * Allow compilation with -Werror=format-security option * Fix wrong HTTP version for a HTTP/1.0 request * Use String#bytesize instead of String#length * 3 minor features: * Added support for setting RACK_ENV via the CLI, config file, and rack app * Allow Server#run to run sync. Fixes #111 * Puma can now run on windows === 1.4.0 / 2012-06-04 * 1 bug fix: * SCRIPT_NAME should be passed from env to allow mounting apps * 1 experimental feature: * Add puma.socket key for direct socket access === 1.3.1 / 2012-05-15 * 2 bug fixes: * use #bytesize instead of #length for Content-Length header * Use StringIO properly. Fixes #98 === 1.3.0 / 2012-05-08 * 2 minor features: * Return valid Rack responses (passes Lint) from status server * Add -I option to specify $LOAD_PATH directories * 4 bug fixes: * Don't join the server thread inside the signal handle. Fixes #94 * Make NullIO#read mimic IO#read * Only stop the status server if it's started. Fixes #84 * Set RACK_ENV early in cli also. Fixes #78 * 1 new contributer: * Jesse Cooke === 1.2.2 / 2012-04-28 * 4 bug fixes: * Report a lowlevel error to stderr * Set a fallback SERVER_NAME and SERVER_PORT * Keep the encoding of the body correct. Fixes #79 * show error.to_s along with backtrace for low-level error === 1.2.1 / 2012-04-11 1 bug fix: * Fix rack.url_scheme for SSL servers. Fixes #65 === 1.2.0 / 2012-04-11 1 major feature: * When possible, the internal restart does a "hot restart" meaning the server sockets remains open, so no connections are lost. 1 minor feature: * More helpful fallback error message 6 bug fixes: * Pass the proper args to unknown_error. Fixes #54, #58 * Stop the control server before restarting. Fixes #61 * Fix reporting https only on a true SSL connection * Set the default content type to 'text/plain'. Fixes #63 * Use REUSEADDR. Fixes #60 * Shutdown gracefull on SIGTERM. Fixes #53 2 new contributers: * Seamus Abshere * Steve Richert === 1.1.1 / 2012-03-30 1 bugfix: * Include puma/compat.rb in the gem (oops!) === 1.1.0 / 2012-03-30 1 bugfix: * Make sure that the unix socket has the perms 0777 by default 1 minor feature: * Add umask param to the unix:// bind to set the umask === 1.0.0 / 2012-03-29 * Released!