Releases: benoitc/gunicorn
Releases · benoitc/gunicorn
19.9.0
- fix: address a regression that prevented syslog support from working
(#1668, #1773) - fix: correctly set
REMOTE_ADDR
on versions of Python 3 affected by
Python Issue 30205 <https://bugs.python.org/issue30205>
_
(#1755, #1796) - fix: show zero response length correctly in access log (#1787)
- fix: prevent raising :exc:
AttributeError
when--reload
is not passed
in case of a :exc:SyntaxError
raised from the WSGI application.
(#1805, #1806) - ❗️The internal module
gunicorn.workers.async
was renamed to
gunicorn.workers.base_async
sinceasync
is now a reserved word
in Python 3.7.
(#1527)
19.8.1
19.8.0
- Eventlet 0.21.0 support (#1584)
- Tornado 5 support (#1728, #1752)
- support watching additional files with
--reload-extra-file
(#1527) - support configuring logging with a dictionary with
--logging-config-dict
(#1087, #1110, #1602) - add support for the
--config
flag in theGUNICORN_CMD_ARGS
environment
variable (#1576, #1581) - disable
SO_REUSEPORT
by default and add the--reuse-port
setting
(#1553, #1603, #1669) - fix: installing
inotify
on MacOS no longer breaks the reloader
(#1540, #1541) - fix: do not throw
TypeError
whenSO_REUSEPORT
is not available
(#1501, #1491) - fix: properly decode HTTP paths containing certain non-ASCII characters
(#1577, #1578) - fix: remove whitespace when logging header values under gevent (#1607)
- fix: close unlinked temporary files (#1327, #1428)
- fix: parse
--umask=0
correctly (#1622, #1632) - fix: allow loading applications using relative file paths
(#1349, #1481) - fix: force blocking mode on the gevent sockets (#880, #1616)
- fix: preserve leading
/
in request path (#1512, #1511) - fix: forbid contradictory secure scheme headers
- fix: handle malformed basic authentication headers in access log
(#1683, #1684) - fix: defer handling of
USR1
signal to a new greenlet under gevent
(#1645, #1651) - fix: the threaded worker would sometimes close the wrong keep-alive
connection under Python 2 (#1698, #1699) - fix: re-open log files on
USR1
signal usinghandler._open
to
support subclasses ofFileHandler
(#1739, #1742) - deprecation: the
gaiohttp
worker is deprecated, see the
worker-class
documentation for more information
(#1338, #1418, #1569)
19.7.1
19.7.0
== 19.7.0 ==
- The previously deprecated
gunicorn_django
command has been removed.
Use the command-line interface instead. - The previously deprecated
django_settings
setting has been removed.
Use the raw-env setting instead. - The default value of ssl-version has been changed from
ssl.PROTOCOL_TLSv1
tossl.PROTOCOL_SSLv23
. - fix: initialize the group access list when initgroups is set (#1297)
- add environment variables to gunicorn access log format (#1291)
- add --paste-global-conf option (#1304)
- fix: print access logs to STDOUT (#1184)
- remove upper limit on max header size config (#1313)
- fix: print original exception on AppImportError (#1334)
- use SO_REUSEPORT if available (#1344)
- fix leak of duplicate file descriptor for bound sockets.
- add --reload-engine option, support inotify and other backends (#1368, #1459)
- fix: reject request with invalid HTTP versions
- add
child_exit
callback (#1394) - add support for eventlets _AlreadyHandled object (#1406)
- format boot tracebacks properly with reloader (#1408)
- refactor socket activation and fd inheritance for better support of SystemD (#1310)
- fix: o fds are given by default in gunicorn (#1423)
- add ability to pass settings to GUNICORN_CMD_ARGS environnement variable which helps in container world (#1385)
- fix: catch access denied to pid file (#1091)
- many additions and improvements to the documentation
Breaking Change
- Python 2.6.0 is the last supported version
19.6.0
19.5.0
== 19.5.0 ==
=== Core ===
- fix: Ensure response to HEAD request won't have message body
- fix: lock domain socket and remove on last arbiter exit (#1220)
- improvement: use EnvironmentError instead of socket.error (#939)
- add: new $FORWARDDED_ALLOW_IPS environment variable (#1205)
- fix: infinite recursion when destroying sockets (#1219)
- fix: close sockets on shutdown (#922)
- fix: clean up sys.exc_info calls to drop circular refs (#1228)
- fix: do post_worker_init after load_wsgi (#1248)
=== Workers ===
- fix access logging in gaiohttp worker (#1193)
- eventlet: handle QUIT in a new coroutine (#1217)
- gevent: remove obsolete exception clauses in run (#1218)
- tornado: fix extra "Server" response header (#1246)
- fix: unblock the wait loop under python 3.5 in sync worker (#1256)
=== Logging ===
- fix: log message for listener reloading (#1181)
- Let logging module handle traceback printing (#1201)
- improvement: Allow configuring logger_class with statsd_host (#1188)
- fix: traceback formatting (#1235)
- fix: print error logs on stderr and access logs on stdout (#1184)
=== Documentation ===
- Simplify installation instructions in gunicorn.org (#1072)
- Fix URL and default worker type in example_config (#1209)
- update django doc url to 1.8 lts (#1213)
- fix: miscellaneous wording corrections (#1216)
- Add PSF License Agreement of selectors.py to NOTICE (:issue: #1226)
- document LOGGING overriding (#1051)
- put a note that error logs are only errors from Gunicorn (#1124)
- add a note about the requirements of the threads workers under python 2.x (#1200)
- add access_log_format to config example (#1251)
=== Tests ===
- Use more pytest.raises() in test_http.py