All Versions
49
Latest Version
Avg Release Cycle
311 days
Latest Release
4436 days ago

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.