1================
2Changelog - 2014
3================
4
5.. note::
6
7   Please see :doc:`news` for the latest changes.
8
919.1.1 / 2014-08-16
10===================
11
12Changes
13-------
14
15Core
16++++
17
18- fix :issue:`835`: display correct pid of already running instance
19- fix :pr:`833`: fix `PyTest` class in setup.py.
20
21
22Logging
23+++++++
24
25- fix :issue:`838`: statsd logger, send statsd timing metrics in milliseconds
26- fix :issue:`839`: statsd logger, allows for empty log message while pushing
27  metrics and restore worker number in DEBUG logs
28- fix :issue:`850`: add timezone to logging
29- fix :issue:`853`: Respect logger_class setting unless statsd is on
30
31AioHttp worker
32++++++++++++++
33
34- fix :issue:`830` make sure gaiohttp worker is shipped with gunicorn.
35
3619.1 / 2014-07-26
37=================
38
39Changes
40-------
41
42Core
43++++
44
45- fix :issue:`785`: handle binary type address given to a client socket address
46- fix graceful shutdown. make sure QUIT and TERMS signals are switched everywhere.
47- :issue:`799`: fix support loading config from module
48- :issue:`805`: fix check for file-like objects
49- fix :issue:`815`: args validation in WSGIApplication.init
50- fix :issue:`787`: check if we load a pyc file or not.
51
52
53Tornado worker
54++++++++++++++
55
56- fix :issue:`771`: support tornado 4.0
57- fix :issue:`783`: x_headers error. The x-forwarded-headers option has been removed
58  in `c4873681299212d6082cd9902740eef18c2f14f1
59  <https://github.com/benoitc/gunicorn/commit/c4873681299212d6082cd9902740eef18c2f14f1>`_.
60  The discussion is available on :pr:`633`.
61
62
63AioHttp worker
64++++++++++++++
65
66- fix: fetch all body in input. fix :issue:`803`
67- fix: don't install the worker if python < 3.3
68- fix :issue:`822`: Support UNIX sockets in gaiohttp worker
69
70
71Async worker
72++++++++++++
73
74- fix :issue:`790`: StopIteration shouldn't be catched at this level.
75
76
77Logging
78+++++++
79
80- add statsd logging handler fix :issue:`748`
81
82
83Paster
84++++++
85
86- fix :issue:`809`: Set global logging configuration from a Paste config.
87
88
89Extra
90+++++
91
92- fix RuntimeError in gunicorn.reloader (:issue:`807`)
93
94
95Documentation
96+++++++++++++
97
98- update faq: put a note on how `watch logs in the console
99  <http://docs.gunicorn.org/en/latest/faq.html#why-i-don-t-see-any-logs-in-the-console>`_
100  since many people asked for it.
101
102
10319.0 / 2014-06-12
104=================
105
106Gunicorn 19.0 is a major release with new features and fixes. This
107version improve a lot the usage of Gunicorn with python 3 by adding `two
108new workers <http://docs.gunicorn.org/en/latest/design.html#asyncio-workers>`_
109to it: `gthread` a fully threaded async worker using futures and `gaiohttp` a
110worker using asyncio.
111
112
113Breaking Changes
114----------------
115
116Switch QUIT and TERM signals
117++++++++++++++++++++++++++++
118
119With this change, when gunicorn receives a QUIT all the workers are
120killed immediately and exit and TERM is used for the graceful shutdown.
121
122Note: the old behaviour was based on the NGINX but the new one is more
123correct according the following doc:
124
125https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html
126
127also it is complying with the way the signals are sent by heroku:
128
129https://devcenter.heroku.com/articles/python-faq#what-constraints-exist-when-developing-applications-on-heroku
130
131Deprecations
132++++++++++++
133
134`run_gunicorn`, `gunicorn_django` and `gunicorn_paster` are now
135completely deprecated and will be removed in the next release. Use the
136`gunicorn` command instead.
137
138
139Changes
140-------
141
142core
143++++
144
145- add aiohttp worker named `gaiohttp` using asyncio. Full async worker
146  on python 3.
147- fix HTTP-violating excess whitespace in write_error output
148- fix: try to log what happened in the worker after a timeout, add a
149  `worker_abort` hook on SIGABRT signal.
150- fix: save listener socket name in workers so we can handle buffered
151  keep-alive requests after the listener has closed.
152- add on_exit hook called just before exiting gunicorn.
153- add support for python 3.4
154- fix: do not swallow unexpected errors when reaping
155- fix: remove incompatible SSL option with python 2.6
156- add new async gthread worker and `--threads` options allows to set multiple
157  threads to listen on connection
158- deprecate `gunicorn_django` and `gunicorn_paster`
159- switch QUIT and TERM signal
160- reap workers in SIGCHLD handler
161- add universal wheel support
162- use `email.utils.formatdate` in gunicorn.util.http_date
163- deprecate the `--debug` option
164- fix: log exceptions that occur after response start …
165- allows loading of applications from `.pyc` files (#693)
166- fix: issue #691, raw_env config file parsing
167- use a dynamic timeout to wait for the optimal time. (Reduce power
168  usage)
169- fix python3 support when notifying the arbiter
170- add: honor $WEB_CONCURRENCY environment variable. Useful for heroku
171  setups.
172- add: include tz offset in access log
173- add: include access logs in the syslog handler.
174- add --reload option for code reloading
175- add the capability to load `gunicorn.base.Application` without the loading of
176  the arguments of the command line. It allows you to :ref:`embed gunicorn in
177  your own application <custom>`.
178- improve: set wsgi.multithread to True for async workers
179- fix logging: make sure to redirect wsgi.errors when needed
180- add: syslog logging can now be done to a unix socket
181- fix logging: don't try to redirect stdout/stderr to the logfile.
182- fix logging: don't propagate log
183- improve logging: file option can be overriden by the gunicorn options
184  `--error-logfile` and `--access-logfile` if they are given.
185- fix: don't override SERVER_* by the Host header
186- fix: handle_error
187- add more option to configure SSL
188- fix: sendfile with SSL
189- add: worker_int callback (to react on SIGTERM)
190- fix: don't depend on entry point for internal classes, now absolute
191  modules path can be given.
192- fix: Error messages are now encoded in latin1
193- fix: request line length check
194- improvement: proxy_allow_ips: Allow proxy protocol if "*" specified
195- fix: run worker's `setup` method  before setting num_workers
196- fix: FileWrapper inherit from `object` now
197- fix: Error messages are now encoded in latin1
198- fix: don't spam the console on SIGWINCH.
199- fix: logging -don't stringify T and D logging atoms (#621)
200- add support for the latest django version
201- deprecate `run_gunicorn` django option
202- fix: sys imported twice
203
204
205gevent worker
206+++++++++++++
207
208- fix: make sure to stop all listeners
209- fix: monkey patching is now done in the worker
210- fix: "global name 'hub' is not defined"
211- fix: reinit `hub` on old versions of gevent
212- support gevent 1.0
213- fix: add subprocess in monkey patching
214- fix: add support for multiple listener
215
216
217eventlet worker
218+++++++++++++++
219
220- fix: merge duplicate EventletWorker.init_process method (fixes #657)
221- fix: missing errno import for eventlet sendfile patch
222- fix: add support for multiple listener
223
224
225tornado worker
226++++++++++++++
227
228- add graceful stop support
229