1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
puma--puma/History.txt
2014-11-26 23:05:13 -08:00

636 lines
19 KiB
Text

=== 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
=== 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!