Skip to content

Releases: benoitc/gunicorn

19.9.0

03 Jul 20:22
Compare
Choose a tag to compare
  • 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 since async is now a reserved word
    in Python 3.7.
    (#1527)

19.8.1

30 Apr 18:41
Compare
Choose a tag to compare
  • fix: secure scheme headers when bound to a unix socket (#1766, #1767)

19.8.0

28 Apr 19:22
Compare
Choose a tag to compare
  • 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 the GUNICORN_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 when SO_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 using handler._open to
    support subclasses of FileHandler (#1739, #1742)
  • deprecation: the gaiohttp worker is deprecated, see the
    worker-class documentation for more information
    (#1338, #1418, #1569)

19.7.1

21 Mar 03:12
Compare
Choose a tag to compare

== 19.7.1 ==

  • fix: continue if SO_REUSEPORT seems to be available but fails (#1480)
  • fix: support non-decimal values for the umask command line option (#1325)

19.7.0

04 Mar 10:35
Compare
Choose a tag to compare

== 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 to ssl.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

23 May 15:29
Compare
Choose a tag to compare

== 19.6.0 ==

Core

  • improvement of the binary upgrade behaviour using USR2: remove file lockin (#1270)
  • add the --capture-output setting to capture stdout/stderr tot the log file (#1271)
  • Allow disabling sendfile() via the SENDFILE` environment variable (#1252)
  • fix reload under pycharm (#1129)

Workers

  • fix: make sure to remove the signal from the worker pipe (#1269)
  • fix: gthread worker, handle removed socket in the select loop (#1258)

19.5.0

11 May 19:51
Compare
Choose a tag to compare

== 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

19.4.5

05 Jan 00:15
Compare
Choose a tag to compare

== 19.4.5 ==

  • fix: NameError fileno in gunicorn.http.wsgi (#1178)

19.4.4

04 Jan 09:47
Compare
Choose a tag to compare

== 19.4.4 ==

  • fix: check if a fileobject can be used with sendfile(2) (#1174)
  • doc: be more descriptive in errorlog option (#1173)

19.4.3

29 Dec 14:37
Compare
Choose a tag to compare

== 19.4.3 ==

  • fix: don't check if a file is writable using os.stat with SELINUX (#1171)