mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Added issue and pr roles.
This commit also split news.rst and 2014-news.rst. news.rst will only contains latest unreleased version's changelog.
This commit is contained in:
parent
af4b1b9755
commit
d12fc05de0
@ -1,5 +1,8 @@
|
||||
import os
|
||||
import inspect
|
||||
|
||||
from docutils import nodes, utils
|
||||
|
||||
import gunicorn.config as guncfg
|
||||
|
||||
HEAD = """\
|
||||
@ -16,6 +19,9 @@ used in the configuration file. The command line arguments are listed as well
|
||||
for reference on setting at the command line.
|
||||
|
||||
"""
|
||||
ISSUE_URI = 'https://github.com/benoitc/gunicorn/issues/%s'
|
||||
PULL_REQUEST_URI = 'https://github.com/benoitc/gunicorn/pull/%s'
|
||||
|
||||
|
||||
def format_settings(app):
|
||||
settings_file = os.path.join(app.srcdir, "settings.rst")
|
||||
@ -29,6 +35,7 @@ def format_settings(app):
|
||||
settings.write(HEAD)
|
||||
settings.write(''.join(ret))
|
||||
|
||||
|
||||
def fmt_setting(s):
|
||||
if callable(s.default):
|
||||
val = inspect.getsource(s.default)
|
||||
@ -56,5 +63,22 @@ def fmt_setting(s):
|
||||
out.append("")
|
||||
return "\n".join(out)
|
||||
|
||||
|
||||
def issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
|
||||
issue = utils.unescape(text)
|
||||
text = 'issue ' + issue
|
||||
refnode = nodes.reference(text, text, refuri=ISSUE_URI % issue)
|
||||
return [refnode], []
|
||||
|
||||
|
||||
def pull_request_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
|
||||
issue = utils.unescape(text)
|
||||
text = 'pull request ' + issue
|
||||
refnode = nodes.reference(text, text, refuri=ISSUE_URI % issue)
|
||||
return [refnode], []
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.connect('builder-inited', format_settings)
|
||||
app.add_role('issue', issue_role)
|
||||
app.add_role('pr', pull_request_role)
|
||||
|
||||
@ -1,22 +1,9 @@
|
||||
Changelog - 2014
|
||||
================
|
||||
|
||||
19.2 / unreleased
|
||||
-----------------
|
||||
.. note::
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Core
|
||||
++++
|
||||
|
||||
- fix `#863 <https://github.com/benoitc/gunicorn/issues/863>`_: fix race condition error.
|
||||
|
||||
Logging
|
||||
+++++++
|
||||
|
||||
- fix `#832 <https://github.com/benoitc/gunicorn/issues/832>`_: log to console by default.
|
||||
- fix `#845 <https://github.com/benoitc/gunicorn/issues/845>`_: set the gunicorn loggers from the paste config.
|
||||
Please see :doc:`news` for the latest changes.
|
||||
|
||||
19.1.1 / 2014-08-16
|
||||
-------------------
|
||||
@ -27,22 +14,22 @@ Changes
|
||||
Core
|
||||
++++
|
||||
|
||||
- fix `#835 <https://github.com/benoitc/gunicorn/issues/835>`_: display correct pid of already running instance
|
||||
- fix : fix `PyTest` class in setup.py.
|
||||
- fix :issue:`835`: display correct pid of already running instance
|
||||
- fix :pr:`833`: fix `PyTest` class in setup.py.
|
||||
|
||||
Logging
|
||||
+++++++
|
||||
|
||||
- fix `#838 <https://github.com/benoitc/gunicorn/issues/838>`_: statsd logger, send statsd timing metrics in milliseconds
|
||||
- fix `#839 <https://github.com/benoitc/gunicorn/issues/839>`_: statsd logger, allows for empty log message while pushing metrics and restore worker number in DEBUG logs
|
||||
- fix `#850 <https://github.com/benoitc/gunicorn/issues/850>`_: add timezone to logging
|
||||
- fix `#853 <https://github.com/benoitc/gunicorn/issues/853>`_: Respect logger_class setting unless statsd is on
|
||||
- fix :issue:`838`: statsd logger, send statsd timing metrics in milliseconds
|
||||
- fix :issue:`839`: statsd logger, allows for empty log message while pushing
|
||||
metrics and restore worker number in DEBUG logs
|
||||
- fix :issue:`850`: add timezone to logging
|
||||
- fix :issue:`853`: Respect logger_class setting unless statsd is on
|
||||
|
||||
AioHttp worker
|
||||
++++++++++++++
|
||||
|
||||
- fix `#830 <https://github.com/benoitc/gunicorn/issues/830>`_ make sure
|
||||
gaiohttp worker is shipped with gunicorn.
|
||||
- fix :issue:`830` make sure gaiohttp worker is shipped with gunicorn.
|
||||
|
||||
19.1 / 2014-07-26
|
||||
~~~~~~~~~~~~~~~~~
|
||||
@ -53,52 +40,51 @@ Changes
|
||||
Core
|
||||
++++
|
||||
|
||||
- fix `#785 <https://github.com/benoitc/gunicorn/issues/785>`_: handle binary type address given to a client socket address
|
||||
- fix graceful shutdown. make sure QUIT and TERMS signals are switched
|
||||
everywhere.
|
||||
- support loading config from module (`#799 <https://github.com/benoitc/gunicorn/issues/799>`_)
|
||||
- fix check for file-like objects (`#805 <https://github.com/benoitc/gunicorn/issues/805>`_)
|
||||
- fix `#815 <https://github.com/benoitc/gunicorn/issues/815>`_ args validation in WSGIApplication.init
|
||||
- fix `#787 <https://github.com/benoitc/gunicorn/issues/787>`_ check if we load a pyc file or not.
|
||||
- fix :issue:`785`: handle binary type address given to a client socket address
|
||||
- fix graceful shutdown. make sure QUIT and TERMS signals are switched everywhere.
|
||||
- :issue:`799`: fix support loading config from module
|
||||
- :issue:`805`: fix check for file-like objects
|
||||
- fix :issue:`815`: args validation in WSGIApplication.init
|
||||
- fix :issue:`787`: check if we load a pyc file or not.
|
||||
|
||||
|
||||
Tornado worker
|
||||
++++++++++++++
|
||||
|
||||
|
||||
- fix `#771 <https://github.com/benoitc/gunicorn/issues/771>`_: support tornado 4.0
|
||||
- fix #783: x_headers error. The x-forwarded-headers option has been removed
|
||||
- fix :issue:`771`: support tornado 4.0
|
||||
- fix :issue:`783`: x_headers error. The x-forwarded-headers option has been removed
|
||||
in `c4873681299212d6082cd9902740eef18c2f14f1
|
||||
<https://github.com/benoitc/gunicorn/commit/c4873681299212d6082cd9902740eef18c2f14f1>`_. The discussion is
|
||||
available on `#633 <https://github.com/benoitc/gunicorn/pull/633>`_.
|
||||
<https://github.com/benoitc/gunicorn/commit/c4873681299212d6082cd9902740eef18c2f14f1>`_.
|
||||
The discussion is available on :pr:`633`.
|
||||
|
||||
AioHttp worker
|
||||
++++++++++++++
|
||||
|
||||
- fix: fetch all body in input. fix `#803 <https://github.com/benoitc/gunicorn/issues/803>`_
|
||||
- fix: fetch all body in input. fix :issue:`803`
|
||||
- fix: don't install the worker if python < 3.3
|
||||
- fix `#822 <https://github.com/benoitc/gunicorn/issues/822>`_: Support UNIX sockets in gaiohttp worker
|
||||
- fix :issue:`822`: Support UNIX sockets in gaiohttp worker
|
||||
|
||||
|
||||
Async worker
|
||||
++++++++++++
|
||||
|
||||
- fix `#790 <https://github.com/benoitc/gunicorn/issues/790>`_ StopIteration shouldn't be catched at this level.
|
||||
- fix :issue:`790`: StopIteration shouldn't be catched at this level.
|
||||
|
||||
Logging
|
||||
+++++++
|
||||
|
||||
- add statsd logging handler fix `#748 <https://github.com/benoitc/gunicorn/issues/748>`_
|
||||
- add statsd logging handler fix :issue:`748`
|
||||
|
||||
Paster
|
||||
++++++
|
||||
|
||||
- fix `#809 <https://github.com/benoitc/gunicorn/issues/809>`_ Set global logging configuration from a Paste config.
|
||||
- fix :issue:`809`: Set global logging configuration from a Paste config.
|
||||
|
||||
Extra
|
||||
+++++
|
||||
|
||||
- fix RuntimeError in gunicorn.reloader (`#807 <https://github.com/benoitc/gunicorn/issues/807>`_)
|
||||
- fix RuntimeError in gunicorn.reloader (:issue:`807`)
|
||||
|
||||
Documentation
|
||||
+++++++++++++
|
||||
@ -107,18 +93,18 @@ Documentation
|
||||
<http://docs.gunicorn.org/en/latest/faq.html#why-i-don-t-see-any-logs-in-the-console>`_
|
||||
since many people asked for it.
|
||||
|
||||
|
||||
19.0 / 2014-06-12
|
||||
-----------------
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Gunicorn 19.0 is a major release with new features and fixes. This
|
||||
version improve a lot the usage of Gunicorn with python 3 by adding two
|
||||
new workers to it: `gthread` a fully threaded async worker using futures
|
||||
and `gaiohttp` a worker using asyncio.
|
||||
version improve a lot the usage of Gunicorn with python 3 by adding `two
|
||||
new workers <http://docs.gunicorn.org/en/latest/design.html#asyncio-workers>`_
|
||||
to it: `gthread` a fully threaded async worker using futures and `gaiohttp` a
|
||||
worker using asyncio.
|
||||
|
||||
|
||||
Breaking Changes
|
||||
~~~~~~~~~~~~~~~~
|
||||
----------------
|
||||
|
||||
Switch QUIT and TERM signals
|
||||
++++++++++++++++++++++++++++
|
||||
@ -144,7 +130,7 @@ completely deprecated and will be removed in the next release. Use the
|
||||
|
||||
|
||||
Changes:
|
||||
~~~~~~~~
|
||||
--------
|
||||
|
||||
core
|
||||
++++
|
||||
@ -179,13 +165,16 @@ core
|
||||
- add: include tz offset in access log
|
||||
- add: include access logs in the syslog handler.
|
||||
- add --reload option for code reloading
|
||||
- add the capability to load `gunicorn.base.Application` without the loading of the arguments of the command line. It allows you to [embed gunicorn in your own application](http://docs.gunicorn.org/en/latest/custom.html).
|
||||
- add the capability to load `gunicorn.base.Application` without the loading of
|
||||
the arguments of the command line. It allows you to :ref:`embed gunicorn in
|
||||
your own application <custom>`.
|
||||
- improve: set wsgi.multithread to True for async workers
|
||||
- fix logging: make sure to redirect wsgi.errors when needed
|
||||
- add: syslog logging can now be done to a unix socket
|
||||
- fix logging: don't try to redirect stdout/stderr to the logfile.
|
||||
- fix logging: don't propagate log
|
||||
- improve logging: file option can be overriden by the gunicorn options `--error-logfile` and `--access-logfile` if they are given.
|
||||
- improve logging: file option can be overriden by the gunicorn options
|
||||
`--error-logfile` and `--access-logfile` if they are given.
|
||||
- fix: don't override SERVER_* by the Host header
|
||||
- fix: handle_error
|
||||
- add more option to configure SSL
|
||||
@ -205,7 +194,6 @@ core
|
||||
- deprecate `run_gunicorn` django option
|
||||
- fix: sys imported twice
|
||||
|
||||
|
||||
gevent worker
|
||||
+++++++++++++
|
||||
|
||||
|
||||
@ -10,254 +10,16 @@ Changes
|
||||
Core
|
||||
++++
|
||||
|
||||
- fix `#863 <https://github.com/benoitc/gunicorn/issues/863>`_: fix race condition error.
|
||||
- fix `#862 <https://github.com/benoitc/gunicorn/pull/862>`_: add ``max_requests_jitter``
|
||||
- fix :issue:`863`: fix race condition error.
|
||||
- fix :pr:`862`: add ``max_requests_jitter``
|
||||
configuration option.
|
||||
- fix `#917 <https://github.com/benoitc/gunicorn/issues/917>`_: the deprecated ``--debug``
|
||||
option has been removed.
|
||||
- fix :issue:`917`: the deprecated ``--debug`` option has been removed.
|
||||
|
||||
Logging
|
||||
+++++++
|
||||
|
||||
- fix `#832 <https://github.com/benoitc/gunicorn/issues/832>`_: log to console by default.
|
||||
- fix `#845 <https://github.com/benoitc/gunicorn/issues/845>`_: set the gunicorn loggers from the paste config
|
||||
|
||||
19.1.1 / 2014-08-16
|
||||
-------------------
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Core
|
||||
++++
|
||||
|
||||
- fix `#835 <https://github.com/benoitc/gunicorn/issues/835>`_: display correct pid of already running instance
|
||||
- fix : fix `PyTest` class in setup.py.
|
||||
|
||||
Logging
|
||||
+++++++
|
||||
|
||||
- fix `#838 <https://github.com/benoitc/gunicorn/issues/838>`_: statsd logger, send statsd timing metrics in milliseconds
|
||||
- fix `#839 <https://github.com/benoitc/gunicorn/issues/839>`_: statsd logger, allows for empty log message while pushing metrics and restore worker number in DEBUG logs
|
||||
- fix `#850 <https://github.com/benoitc/gunicorn/issues/850>`_: add
|
||||
timezone to logging
|
||||
- fix `#853 <https://github.com/benoitc/gunicorn/issues/853>`_: Respect logger_class setting unless statsd is on
|
||||
|
||||
AioHttp worker
|
||||
++++++++++++++
|
||||
|
||||
- fix `#830 <https://github.com/benoitc/gunicorn/issues/830>`_ make sure
|
||||
gaiohttp worker is shipped with gunicorn.
|
||||
|
||||
19.1 / 2014-07-26
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Core
|
||||
++++
|
||||
|
||||
- fix `#785 <https://github.com/benoitc/gunicorn/issues/785>`_: handle binary type address given to a client socket address
|
||||
- fix graceful shutdown. make sure QUIT and TERMS signals are switched
|
||||
everywhere.
|
||||
- support loading config from module (`#799 <https://github.com/benoitc/gunicorn/issues/799>`_)
|
||||
- fix check for file-like objects (`#805 <https://github.com/benoitc/gunicorn/issues/805>`_)
|
||||
- fix `#815 <https://github.com/benoitc/gunicorn/issues/815>`_ args validation in WSGIApplication.init
|
||||
- fix `#787 <https://github.com/benoitc/gunicorn/issues/787>`_ check if we load a pyc file or not.
|
||||
|
||||
|
||||
Tornado worker
|
||||
++++++++++++++
|
||||
|
||||
|
||||
- fix `#771 <https://github.com/benoitc/gunicorn/issues/771>`_: support tornado 4.0
|
||||
- fix #783: x_headers error. The x-forwarded-headers option has been removed
|
||||
in `c4873681299212d6082cd9902740eef18c2f14f1
|
||||
<https://github.com/benoitc/gunicorn/commit/c4873681299212d6082cd9902740eef18c2f14f1>`_. The discussion is
|
||||
available on `#633 <https://github.com/benoitc/gunicorn/pull/633>`_.
|
||||
|
||||
AioHttp worker
|
||||
++++++++++++++
|
||||
|
||||
- fix: fetch all body in input. fix `#803 <https://github.com/benoitc/gunicorn/issues/803>`_
|
||||
- fix: don't install the worker if python < 3.3
|
||||
- fix `#822 <https://github.com/benoitc/gunicorn/issues/822>`_: Support UNIX sockets in gaiohttp worker
|
||||
|
||||
|
||||
Async worker
|
||||
++++++++++++
|
||||
|
||||
- fix `#790 <https://github.com/benoitc/gunicorn/issues/790>`_ StopIteration shouldn't be catched at this level.
|
||||
|
||||
Logging
|
||||
+++++++
|
||||
|
||||
- add statsd logging handler fix `#748 <https://github.com/benoitc/gunicorn/issues/748>`_
|
||||
|
||||
Paster
|
||||
++++++
|
||||
|
||||
- fix `#809 <https://github.com/benoitc/gunicorn/issues/809>`_ Set global logging configuration from a Paste config.
|
||||
|
||||
Extra
|
||||
+++++
|
||||
|
||||
- fix RuntimeError in gunicorn.reloader (`#807 <https://github.com/benoitc/gunicorn/issues/807>`_)
|
||||
|
||||
Documentation
|
||||
+++++++++++++
|
||||
|
||||
- update faq: put a note on how `watch logs in the console
|
||||
<http://docs.gunicorn.org/en/latest/faq.html#why-i-don-t-see-any-logs-in-the-console>`_
|
||||
since many people asked for it.
|
||||
|
||||
19.0 / 2014-06-12
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Gunicorn 19.0 is a major release with new features and fixes. This
|
||||
version improve a lot the usage of Gunicorn with python 3 by adding `two
|
||||
new workers <http://docs.gunicorn.org/en/latest/design.html#asyncio-workers>`_ to it: `gthread` a fully threaded async worker using futures
|
||||
and `gaiohttp` a worker using asyncio.
|
||||
|
||||
|
||||
Breaking Changes
|
||||
----------------
|
||||
|
||||
Switch QUIT and TERM signals
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
With this change, when gunicorn receives a QUIT all the workers are
|
||||
killed immediately and exit and TERM is used for the graceful shutdown.
|
||||
|
||||
Note: the old behaviour was based on the NGINX but the new one is more
|
||||
correct according the following doc:
|
||||
|
||||
https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html
|
||||
|
||||
also it is complying with the way the signals are sent by heroku:
|
||||
|
||||
https://devcenter.heroku.com/articles/python-faq#what-constraints-exist-when-developing-applications-on-heroku
|
||||
|
||||
Deprecations
|
||||
+++++++++++++
|
||||
|
||||
`run_gunicorn`, `gunicorn_django` and `gunicorn_paster` are now
|
||||
completely deprecated and will be removed in the next release. Use the
|
||||
`gunicorn` command instead.
|
||||
|
||||
|
||||
Changes:
|
||||
--------
|
||||
|
||||
core
|
||||
++++
|
||||
|
||||
- add aiohttp worker named `gaiohttp` using asyncio. Full async worker
|
||||
on python 3.
|
||||
- fix HTTP-violating excess whitespace in write_error output
|
||||
- fix: try to log what happened in the worker after a timeout, add a
|
||||
`worker_abort` hook on SIGABRT signal.
|
||||
- fix: save listener socket name in workers so we can handle buffered
|
||||
keep-alive requests after the listener has closed.
|
||||
- add on_exit hook called just before exiting gunicorn.
|
||||
- add support for python 3.4
|
||||
- fix: do not swallow unexpected errors when reaping
|
||||
- fix: remove incompatible SSL option with python 2.6
|
||||
- add new async gthread worker and `--threads` options allows to set multiple
|
||||
threads to listen on connection
|
||||
- deprecate `gunicorn_django` and `gunicorn_paster`
|
||||
- switch QUIT and TERM signal
|
||||
- reap workers in SIGCHLD handler
|
||||
- add universal wheel support
|
||||
- use `email.utils.formatdate` in gunicorn.util.http_date
|
||||
- deprecate the `--debug` option
|
||||
- fix: log exceptions that occur after response start …
|
||||
- allows loading of applications from `.pyc` files (#693)
|
||||
- fix: issue #691, raw_env config file parsing
|
||||
- use a dynamic timeout to wait for the optimal time. (Reduce power
|
||||
usage)
|
||||
- fix python3 support when notifying the arbiter
|
||||
- add: honor $WEB_CONCURRENCY environment variable. Useful for heroku
|
||||
setups.
|
||||
- add: include tz offset in access log
|
||||
- add: include access logs in the syslog handler.
|
||||
- add --reload option for code reloading
|
||||
- add the capability to load `gunicorn.base.Application` without the loading of
|
||||
the arguments of the command line. It allows you to :ref:`embed gunicorn in
|
||||
your own application <custom>`.
|
||||
- improve: set wsgi.multithread to True for async workers
|
||||
- fix logging: make sure to redirect wsgi.errors when needed
|
||||
- add: syslog logging can now be done to a unix socket
|
||||
- fix logging: don't try to redirect stdout/stderr to the logfile.
|
||||
- fix logging: don't propagate log
|
||||
- improve logging: file option can be overriden by the gunicorn options
|
||||
`--error-logfile` and `--access-logfile` if they are given.
|
||||
- fix: don't override SERVER_* by the Host header
|
||||
- fix: handle_error
|
||||
- add more option to configure SSL
|
||||
- fix: sendfile with SSL
|
||||
- add: worker_int callback (to react on SIGTERM)
|
||||
- fix: don't depend on entry point for internal classes, now absolute
|
||||
modules path can be given.
|
||||
- fix: Error messages are now encoded in latin1
|
||||
- fix: request line length check
|
||||
- improvement: proxy_allow_ips: Allow proxy protocol if "*" specified
|
||||
- fix: run worker's `setup` method before setting num_workers
|
||||
- fix: FileWrapper inherit from `object` now
|
||||
- fix: Error messages are now encoded in latin1
|
||||
- fix: don't spam the console on SIGWINCH.
|
||||
- fix: logging -don't stringify T and D logging atoms (#621)
|
||||
- add support for the latest django version
|
||||
- deprecate `run_gunicorn` django option
|
||||
- fix: sys imported twice
|
||||
|
||||
|
||||
gevent worker
|
||||
+++++++++++++
|
||||
|
||||
- fix: make sure to stop all listeners
|
||||
- fix: monkey patching is now done in the worker
|
||||
- fix: "global name 'hub' is not defined"
|
||||
- fix: reinit `hub` on old versions of gevent
|
||||
- support gevent 1.0
|
||||
- fix: add subprocess in monkey patching
|
||||
- fix: add support for multiple listener
|
||||
|
||||
eventlet worker
|
||||
+++++++++++++++
|
||||
|
||||
- fix: merge duplicate EventletWorker.init_process method (fixes #657)
|
||||
- fix: missing errno import for eventlet sendfile patch
|
||||
- fix: add support for multiple listener
|
||||
|
||||
tornado worker
|
||||
++++++++++++++
|
||||
|
||||
- add graceful stop support
|
||||
|
||||
18.0 / 2013-08-26
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
- new: add ``-e/--env`` command line argument to pass an environment variables to
|
||||
gunicorn
|
||||
- new: add ``--chdir`` command line argument to specified directory
|
||||
before apps loading. - new: add wsgi.file_wrapper support in async workers
|
||||
- new: add ``--paste`` command line argument to set the paster config file
|
||||
- deprecated: the command ``gunicorn_django`` is now deprecated. You should now
|
||||
run your application with the WSGI interface installed with your project (see
|
||||
https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/gunicorn/) for
|
||||
more infos.
|
||||
- deprecated: the command ``gunicorn_paste`` is deprecated. You now should use
|
||||
the new ``--paste`` argument to set the configuration file of your paster
|
||||
application.
|
||||
- fix: Removes unmatched leading quote from the beginning of the default access
|
||||
log format string
|
||||
- fix: null timeout
|
||||
- fix: gevent worker
|
||||
- fix: don't reload the paster app when using pserve
|
||||
- fix: after closing for error do not keep alive the connection
|
||||
- fix: responses 1xx, 204 and 304 should not force the connection to be closed
|
||||
- fix :issue:`832`: log to console by default.
|
||||
- fix :issue:`845`: set the gunicorn loggers from the paste config
|
||||
|
||||
|
||||
History
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user