=== 2.16.0 / 2016-01-27
* 7 minor features:
* Add 'set_remote_address' config option
* Allow to run puma in silent mode
* Expose cli options in DSL
* Support passing JRuby keystore info in ssl_bind DSL
* Allow umask for unix:/// style control urls
* Expose `old_worker_count` in stats url
* Support TLS client auth (verify_mode) in jruby
* 7 bug fixes:
* Don't persist before_fork hook in state file
* Reload bundler before pulling in rack. Fixes#859
* Remove NEWRELIC_DISPATCHER env variable
* Cleanup C code
* Use Timeout.timeout instead of Object.timeout
* Make phased restarts faster
* Ignore the case of certain headers, because HTTP
* 1 doc changes:
* Test against the latest Ruby 2.1, 2.2, 2.3, head and JRuby 9.0.4.0 on Travis
* 12 merged PRs
* Merge pull request #822 from kwugirl/remove_NEWRELIC_DISPATCHER
* Merge pull request #833 from joemiller/jruby-client-tls-auth
* Merge pull request #837 from YuriSolovyov/ssl-keystore-jruby
* Merge pull request #839 from mezuka/master
* Merge pull request #845 from deepj/timeout-deprecation
* Merge pull request #846 from sriedel/strip_before_fork
* Merge pull request #850 from deepj/travis
* Merge pull request #853 from Jeffrey6052/patch-1
* Merge pull request #857 from zendesk/faster_phased_restarts
* Merge pull request #858 from mlarraz/fix_some_warnings
* Merge pull request #860 from zendesk/expose_old_worker_count
* Merge pull request #861 from zendesk/allow_control_url_umask
=== 2.11.3 / 2015-05-18
* 5 bug fixes:
* Be sure to unlink tempfiles after a request. Fixes#690
* Coerce the key to a string before checking. (thar be symbols). Fixes#684
* Fix hang on bad SSL handshake
* Remove `enable_SSLv3` support from JRuby
* 1 PR merged:
* Merge pull request #698 from looker/hang-handshake
=== 2.11.2 / 2015-04-11
* 2 minor features:
* Add `on_worker_fork` hook, which allows to mimic Unicorn's behavior
* Add shutdown_debug config option
* 4 bug fixes:
* Fix the Config constants not being available in the DSL. Fixes#683
* Ignore multiple port declarations
* Proper 'Connection' header handling compatible with HTTP 1.[01] protocols
* Use "Puma" instead of "puma" to reporting to New Relic
* 1 doc fixes:
* Add Gitter badge.
* 6 PRs merged:
* Merge pull request #657 from schneems/schneems/puma-once-port
* Merge pull request #658 from Tomohiro/newrelic-dispatcher-default-update
* Merge pull request #662 from basecrm/connection-compatibility
* Merge pull request #664 from fxposter/on-worker-fork
* Merge pull request #667 from JuanitoFatas/doc/gemspec
* Merge pull request #672 from chulkilee/refactor
=== 2.11.0 / 2015-01-20
* 9 bug fixes:
* Add mode as an additional bind option to unix sockets. Fixes#630
* Advertise HTTPS properly after a hot restart
* Don't write lowlevel_error_handler to state
* Fix phased restart with stuck requests
* Handle spaces in the path properly. Fixes#622
* Set a default REMOTE_ADDR to avoid using peeraddr on unix sockets. Fixes#583
* Skip device number checking on jruby. Fixes#586
* Update extconf.rb to compile correctly on OS X
* redirect io right after daemonizing so startup errors are shown. Fixes#359
* 6 minor features:
* Add a configuration option that prevents puma from queueing requests.
* Add reload_worker_directory
* Add the ability to pass environment variables to the init script (for Jungle).
* Add the proctitle tag to the worker. Fixes#633
* Infer a proctitle tag based on the directory
* Update lowlevel error message to be more meaningful.
* 10 PRs merged:
* Merge pull request #478 from rubencaro/master
* Merge pull request #610 from kwilczynski/master
* Merge pull request #611 from jasonl/better-lowlevel-message
* Merge pull request #616 from jc00ke/master
* Merge pull request #623 from raldred/patch-1
* Merge pull request #628 from rdpoor/master
* Merge pull request #634 from deepj/master
* Merge pull request #637 from raskhadafi/patch-1
* Merge pull request #639 from ebeigarts/fix-phased-restarts
* Merge pull request #640 from codehotter/issue-612-dependent-requests-deadlock
=== 2.10.2 / 2014-11-26
* 1 bug fix:
* Conditionalize thread local cleaning, fixes perf degradation fix
The code to clean out all Thread locals adds pretty significant
overhead to a each request, so it has to be turned on explicitly
if a user needs it.
=== 2.10.1 / 2014-11-24
* 1 bug fix:
* Load the app after daemonizing because the app might start threads.
This change means errors loading the app are now reported only in the redirected
stdout/stderr.
If you're app has problems starting up, start it without daemon mode initially
to test.
=== 2.10.0 / 2014-11-23
* 3 minor features:
* Added on_worker_shutdown hook mechanism
* Allow binding to ipv6 addresses for ssl URIs
* Warn about any threads started during app preload
* 5 bug fixes:
* Clean out a threads local data before doing work
* Disable SSLv3. Fixes#591
* First change the directory to use the correct Gemfile.
* Only use config.ru binds if specified. Fixes#606
* Strongish cipher suite with FS support for some browsers
* 2 doc changes:
* Change umask examples to more permissive values
* fix typo in README.md
* 9 Merged PRs:
* Merge pull request #560 from raskhadafi/prune_bundler-bug
* Merge pull request #566 from sheltond/master
* Merge pull request #593 from andruby/patch-1
* Merge pull request #594 from hassox/thread-cleanliness
* Merge pull request #596 from burningTyger/patch-1
* Merge pull request #601 from sorentwo/friendly-umask
* Merge pull request #602 from 1334/patch-1
* Merge pull request #608 from Gu1/master
* Merge remote-tracking branch 'origin/pr/538'
=== 2.9.2 / 2014-10-25
* 8 bug fixes:
* Fix puma-wild handling a restart properly. Fixes#550
* JRuby SSL POODLE update
* Keep deprecated features warnings
* Log the current time when Puma shuts down.
* Fix cross-platform extension library detection
* Use the correct Windows names for OpenSSL.
* Better error logging during startup
* Fixing sexist error messages
* 6 PRs merged:
* Merge pull request #549 from bsnape/log-shutdown-time
* Merge pull request #553 from lowjoel/master
* Merge pull request #568 from mariuz/patch-1
* Merge pull request #578 from danielbuechele/patch-1
* Merge pull request #581 from alexch/slightly-better-logging
* Merge pull request #590 from looker/jruby_disable_sslv3
=== 2.9.1 / 2014-09-05
* 4 bug fixes:
* Cleanup the SSL related structures properly, fixes memory leak
* Fix thread spawning edge case.
* Force a worker check after a worker boots, don't wait 5sec. Fixes#574
* Implement SIGHUP for logs reopening
* 2 PRs merged:
* Merge pull request #561 from theoldreader/sighup
* Merge pull request #570 from havenwood/spawn-thread-edge-case
=== 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
Puma: A Ruby Web Server Built For Concurrency
Puma is a simple, fast, and highly concurrent HTTP 1.1 server for Ruby web
applications. It can be used with any application that supports Rack, and is
considered the replacement for Webrick and Mongrel. It was designed to be the
go-to server for Rubinius, but also works well with JRuby and MRI. Puma is
intended for use in both development and production environments.