Changelog History
Page 4
-
v1.1.0 Changes
- Require EventMachine 0.12.4
- Remove Thin handler, now part of Rack 0.9.1
- Fix Rack protocol version to 0.1 in environment hash.
- Fix error when passing no_epoll option to a cluster.
- Omit parsing #defined strings [Jérémy Zurcher]
- Defaults SERVER_NAME to localhost like webrick does [#87 state:resolved]
- Namespace parser to prevent error when mongrel is required [cliffmoon]
- Set RACK_ENV based on environment option when loading rackup file [Curtis Summers] [#83 state:resolved]
- Fixes a warning RE relative_url_root when using a prefix with Rails 2.1.1 [seriph] [#85 state:resolved]
- --only can work as a sequence number (if < 80) or a port number (if >= 80) [jmay] [#81 state:resolved]
-
v1.0.0 Changes
- Fixed vlad.rake to allow TCP or socket [hellekin]
- Updated Mack adapter to handle both 0.8.0 [Mark Bates]
- rails rack adapter uses File.readable_real? so it recognizes ACL permissions [Ricardo Chimal]
- Log a warning if Rack application returns nil body [Michael S. Klishin]
- Handle nil and Time header values correctly [#76 state:resolved] [tmm1]
- Add Content-Length header to response automatically when possible [#74 state:resolved] [dkubb]
- Runner now remembers -r, -D and -V parameters so that clustered servers inherit those and
restart
keep your parameters. - Make Set-Cookie header, in Rails adapter, compatible with current Rack spec [Pedro Belo] [#73, state:resolved]
- Add --no-epoll option to disable epoll usage on Linux [#61 state:resolved]
- Add --force (-f) option to force stopping of a daemonized server [#72 state:resolved]
- Update halycon adapter loader [mtodd]
-
v0.8.2 Changes
- Require EventMachine 0.12.0
- [bug] Fix timeout handling when running command
- [bug] Fix hanging when restarting and no process is running in single server move, fixes #67
- Added Mack adapter [markbates]
- Allow rackup .rb files by getting a conventionally named constant as the app [bmizerany]
-
v0.8.1 Changes
- [bug] Rescue all types of errors when processing request, fixes #62
- [bug] Use Swiftiply backend when -y option is specified, fixes #63 and #64
- Allow passing port as a string in Server.new
- Define deferred?(env) in your Rack application to set if a request is handled in a thread (return true) or not (return false).
-
v0.8.0 Changes
- [bug] Fix server crash when header too large.
- Add --require (-r) option to require a library, before executing your script.
- Rename --rackup short option to -R, warn and load as rackup when file ends with .ru.
- List supported adapters in command usage.
- Add file adapter to built-in adapter, serve static files in current directory.
- Allow disabling signal handling in Server with :signals => false
- Make Server.new arguments more flexible, can now specify any of host, port, app or hash options.
- Add --backend option to specified which backend to use, closes #55
- [bug] Serve static file only on GET and HEAD requests in Rails adapter, fixes #58
- Add threaded option to run server in threaded mode, calling the application in a thread allowing for concurrency in the Rack adapter, closes #46
- Guess which adapter to use from directory (chdir option) or use specified one in 'adapter' option, re #47.
-
v0.7.1 Changes
- Clean stale PID files when starting as daemon, fixes #53 [Chu Yeow]
- Require EventMachine 0.11.0 for UNIX domain sockets. Until it's released, install from: gem install eventmachine --source http://code.macournoyer.com
- Ruby 1.8.5 compatibility, closes #49 [Wincent Colaiuta]
- Move all EventMachine stuff out of Server, you can now create a Thin Backend that does not depend on EventMachine.
- Rename Connector to Backend. Extend Thin::Backends::Base to implement your own.
- Fix high memory usage with big POST body, fixes #48
-
v0.7.0 Changes
- Add --max-persistent-conns option to sets the maximum number of persistent connections. Set to 0 to disable Keep-Alive.
- INT signal now force stop and QUIT signal gracefully stops.
- Warn when descriptors table size can't be set as high as expected.
- Eval Rackup config file using top level bindings.
- Remove daemons gem dependency on Windows plateform, fixes #45.
- Change default timeout from 60 to 30 seconds.
- Add --max-conns option to sets the maximum number of file or socket descriptors that your process may open, defaults to 1024.
- Tail logfile when stopping and restarting a demonized server, fixes #26.
- Wrap application in a Rack::CommonLogger adapter in debug mode.
- --debug (-D) option no longer set $DEBUG so logging will be less verbose and Ruby won't be too strict, fixes #36.
- Deprecate Server#silent in favour of Logging.silent.
- Persistent connection (keep-alive) support.
- Fix -s option not being included in generated config file, fixes #37.
- Add Swiftiply support. Use w/ the --swiftiply (-y) option in the thin script, closes #28 [Alex MacCaw]
-
v0.6.4 Changes
- Fix error when stopping server on UNIX domain socket, fixes #42
- Rescue errors in Connection#get_peername more gracefully, setting REMOTE_ADDR to nil, fixes #43
-
v0.6.3 Changes
- Add tasks for Vlad the Deployer in example/vlad.rake [cnantais]
Add Ramaze Rackup config file in example dir [tmm1] Use like this from you Ramaze app dir:
thin start -r /path/to/thin/example/ramaze.ru
Add the --rackup option to load a Rack config file instead of the Rails adapter. So you can use any framework with the thin script and start cluster and stuff like that. A Rack config file is one that is usable through the rackup command and looks like this:
use Rack::CommonLogger run MyCrazyRackAdapter.new(:uterly, 'cool')
Then use it with thin like this:
thin start --rackup config.ru
- thin config --chrdir ... -C thin/yml do not change current directory anymore, fixes #33.
- Add a better sample god config file in example/thin.god that loads all info from config files in /etc/thin. Drop-in replacement for the thin runlevel service [Gump].
- Add support for specifying a custom Connector to the server and add more doc about Server configuration.
Add a script to run thin as a runlevel service that can start at startup, closes #31 [Gump] Setup the service like this:
sudo thin install /etc/thin
This will install the boot script under /etc/init.d/thin. Then copy your config files to /etc/thin. Works only under Linux.
- Set process name to 'thin server (0.0.0.0:3000)' when running as a daemon, closes #32.
- Make sure chdir option from config file is used when present.
- Raise an error when starting a server as a daemon and pid file already exist, fixes #27.
-
v0.6.2 Changes
- Server now let current connections finish before stopping, fixes #18
- Fix uploading hanging bug when body is moved to a tempfile, also delete the tempfile properly upon completion, fixes #25
- 'thin restart' now sends HUP signals rather then stopping & starting, closes #17
- HUP signal now launches a new process with the same options.
- Add PID and more info from the last request to the Stats adapter mostly taken from Rack::ShowException.
- pid and log files in cluster are no longer required to be relative to the app directory (chdir option), fixes #24
- Revert to using #each when building response headers under Ruby 1.8, solves an issue w/ Camping adapter, fixes #22
- Restructure thin script options in 3 sections: server, daemon and cluster
- Add --only (-o) option to control only one server of a cluster.
- Stylize stats page and make the url configurable from the thin script.
- Raise error if attempting to use unix sockets on windows.
Add example config files for http://www.tildeslash.com/monit usage. Include the example file using "include /path/to/thin/monit/file" in your monitrc file. The group settings let you do this to manage your clusters:
sudo monit -g blog restart all
There are examples of thin listening on sockets and thin listening on unix sockets.