== 1.5.0 Knife
* Fix compilation under Ubuntu 12.04 with -Werror=format-security option.
* Raise an error when no PID file.
* Prevent duplicate response headers.
* Make proper response on exception [MasterLambaster].
* Automatically close idling pipeline connections on server stop [MasterLambaster].
== 1.4.1 Chromeo Fix
* Fix error when sending USR1 signal and no log file is supplied.
== 1.4.0 Chromeo
* kill -USR1 $PID for log rotation [catwell].
* Fix HUP signal being reseted after deamonization [atotic].
* Fix error with nil addresses in Connection#socket_address.
== 1.3.2 Low-bar Squat
* Remove mack and halcyon Rack adapters from automatic detection.
== 1.3.1 Triple Espresso
* Fix service not working pre 1.9.
== 1.3.0 Double Espresso
* BREAKING CHANGE: Thin no longer ships with fat Windows binaries.
From now on, to install on Windows, install https://github.com/oneclick/rubyinstaller/wiki/Development-Kit.
* BREAKING CHANGE: Remove automatic Content-Length setting.
It is now the responsibility of the app (or a middleware) to set the Content-Length.
* Log errors to STDERR [textgoeshere]
* Shut down gracefully when receiving SIGTERM [ddollar]
Processes are allowed a chance to shut down gracefully when receiving
SIGTERM (http://en.wikipedia.org/wiki/SIGTERM).
On Heroku, when shutting down a process, we send a SIGTERM followed 10
seconds later with a SIGKILL, similar to the behavior of the init daemon
on most Unix systems. This patch will allow Heroku apps to shut down
gracefully when they need to be terminated / moved.
== 1.2.11 Bat-Shit Crazy
* Fix pure Ruby gem to not include binary.
== 1.2.10 I'm dumb (BAD RELEASE, DON'T USE)
* I really am (bad release fix)
== 1.2.9 Black Keys Extra Plus Wow (BAD RELEASE, DON'T USE)
* Improve fat binary loading.
== 1.2.8 Black Keys
* Allow the connection to remain open for 1xx statuses [timshadel]
Both the 100 and 101 status codes require that the connection to the
server remain open. The 100 status code is used to tell the client that
the server is still receiving its request, and will continue to read
request input on the connection. The 101 status code is used to upgrade
the existing connection to another protocol, and specifically is NOT
used to upgrade a separate connection. Therefore, the connection must
remain open after this response in order to facilitate that.
* Accept IE7 badly encoded URL (eg.: %uEEEE)
* Fix gemspec to work w/ Bundler [smparkes]
* Add SSL support [tmm1]
* Catch Errno::EPERM in Process.running? [Tony Kemp]
On some systems (e.g. OpenBSD) you receive an EPERM exception if
you try to Process.getpgid on a process you do not own (even if you
are root). But it does mean that the process exists, so return true.
* Fix Rails version check that select which Rack adapter to use. Was using CGI adapter in Rails 3.
* Ignore SIGHUP when no restart block is given
* Add SSL options to thin command line tool [goldmann]
--ssl Enables SSL
--ssl-key-file PATH Path to private key
--ssl-cert-file PATH Path to certificate
--ssl-verify Enables SSL certificate verification
* Expose peer SSL certificate in env (rack.peer_cert) [fd]
* Adjusting unix socket permissions to be more open [mbj]
- matches previous package name without "${RUBY_PKGPREFIX}-"
- matches current "ruby18-" and "ruby19-" packages
* Since these packages aren't update its version during update of Ruby
package's framework, bump PKGREVISION for safe update. Noted by
obache@ on tech-pkg.
* Add LICENSE.
* Remove default value of GEM_BUILD.
* Add CONFLICTS since it will install the same name commands both
ruby18 and ruby19 based packages.
== 1.2.7 No Hup
* Support multiple Ruby version (fat binaries under windows)
* Do not trap unsupported HUP signal on Windows
== 1.2.6 Crazy Delicious
* Make work with Rails 3 out-of-the-box.
* Auto-detect and load config.ru files on start. Makes Rails 3 work.
* Fix signals being ignored under 1.9 when daemonized.
== 1.2.5 This Is Not A Web Server
* Add rolling restart support (--onebyone option) [sikachu]
* Force external_encoding of request's body to ASCII_8BIT [jeremyz]
* Ensure Rack base API is used in Rails adapter only if version >= 2.3.2
[#111 state:resolved]
== 1.2.4 Flaming Astroboy
* Fix a few issues in thin to make it a better "gem citizen" [josh]
* Fix test for rack based Rails in adapter under Ruby >= 1.8.7
[#109 state:resolved]
* Fix Remote address spoofing vulnerability in Connection#remote_address
[Alexey Borzenkov]
* Fix uninitialized constant ActionController::Dispatcher error with
Rails 1.2.3 [Chris Anderton] [#103 state:resolved]
== 1.2.2 I Find Your Lack of Sauce Disturbing release
* Fix force kill under 1.9 [Alexey Chebotar]
* Fix regression when --only option is used w/ --socket.
* Add process name 'tag' functionality. Easier to distinguish thin daemons
from eachother in process listing [ctcherry]
== 1.2.1 Asynctilicious Ultra Supreme release
* Require Rack 1.0.0
* Require EventMachine 0.12.6
* Use Rails Rack based dispatcher when available
* Allow String for response body
* Require openssl before eventmachine to prevent crash in 1.9
== 1.2.0 Asynctilicious Supreme release
* Add support for Windows mingw Ruby distro [Juan C. Rodriguez]
* Add async response support, see example/async_*.ru [raggi]
== 1.1.1 Super Disco Power Plus release
* Fix bug when running with only options [hasimo]
== 1.1.0 Super Disco Power release
* 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 [Jeremy 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]
== 1.0.0 That's What She Said release
* Fixed vlad.rake to allow TCP or socket [hellekin]
* Updated Mack adapter to handle both <0.8.0 and >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]
== 0.8.2 Double Margarita release
* 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]
* [bug] Rescue all types of errors when processing request
* [bug] Use Swiftiply backend when -y option is specified
* 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).
* 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.
* Serve static file only on GET and HEAD requests in Rails adapter.
* Add threaded option to run server in threaded mode; calling the
application in a thread allowing for concurrency in the Rack adapter.
* Guess which adapter to use from directory (chdir option) or use
specified one in 'adapter' option.
Thin is a very simple web server written in Ruby. It's single-threaded,
which means it can only serve one request at a time. This simplicity
affords increased speed and decreased memory usage for singled-threaded
framework like Rails.