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
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
1 bug fix:
Keep STDOUT/STDERR the right mode. Fixes #422
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 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 bug fixes:
Keep jruby daemon mode from retrying on a hot restart
Extract version from const.rb in gemspec
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
1 experimental feature:
Support raw tcp servers (aka Lopez Express mode)
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
1 bug fix:
Move starting control server to after daemonization.
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
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)
1 bug fix:
Fix restart_command in the config
1 minor feature:
Introduce preload flag
1 bug fix:
Pass custom restart command in JRuby
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 minor bug fixes:
Fix daemonization on jruby
Load the application before daemonizing. Fixes #285
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
1 bug fix:
Fix not starting on JRuby properly
RailsConf 2013 edition!
2 doc changes:
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
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 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 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
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
1 bug fix:
Package right files in gem
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
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 bug fix:
Close sockets waiting in the reactor when a hot restart is performed so that browsers reconnect on the next request
1 bug fix:
Rescue StandardError instead of IOError to handle SystemCallErrors as well as other application exceptions inside the reactor.
1 packaging bug fixed:
Include missing files
1 major bug fix:
Prevent slow clients from starving the server by introducing a dedicated IO reactor thread. Credit for reporting goes to @meh.
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 bug fix:
SCRIPT_NAME should be passed from env to allow mounting apps
1 experimental feature:
Add puma.socket key for direct socket access
2 bug fixes:
use bytesize instead of length for Content-Length header
Use StringIO properly. Fixes #98
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
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 bug fix: * Fix rack.url_scheme for SSL servers. Fixes #65
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 bugfix: * Include puma/compat.rb in the gem (oops!)
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
Released!
Generated with the Darkfish Rdoc Generator 2.