Skip to content

Initial Update#29

Open
pyup-bot wants to merge 16 commits intomasterfrom
pyup-initial-update
Open

Initial Update#29
pyup-bot wants to merge 16 commits intomasterfrom
pyup-initial-update

Conversation

@pyup-bot
Copy link

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

gunicorn 19.7.1 » 19.7.1 PyPI | Changelog | Homepage
raven 6.0.0 » 6.0.0 PyPI | Changelog | Repo
Django 1.9.6 » 1.11 PyPI | Changelog | Homepage
pillow 3.2.0 » 4.1.0 PyPI | Changelog | Homepage
easy-thumbnails 2.3 » 2.4.1 PyPI | Changelog | Repo | Docs
django-model-utils 2.5 » 2.6.1 PyPI | Changelog | Repo
django-filter 1.0.1 » 1.0.2 PyPI | Changelog | Repo
pynliner 0.7.1 » 0.8.0 PyPI | Homepage | Docs
djangorestframework 3.3.3 » 3.6.2 PyPI | Changelog | Homepage
djangorestframework-jwt 1.8.0 » 1.10.0 PyPI | Repo
python-dateutil 2.5.3 » 2.6.0 PyPI | Changelog | Docs
django-debug-toolbar 1.7 » 1.7 PyPI | Changelog | Repo
django-extensions 1.7.8 » 1.7.8 PyPI | Changelog | Repo | Docs
django-template-repl 0.3.0 » 0.3.0 PyPI | Repo
Werkzeug 0.12.1 » 0.12.1 PyPI | Changelog | Homepage
coverage 4.3.4 » 4.3.4 PyPI | Changelog | Docs

Changelogs

gunicorn -> 19.7.1

19.7.1

===================

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

19.7.0

===================

  • The previously deprecated gunicorn_django command has been removed.
    Use the :ref:gunicorn-cmd command-line interface instead.
  • The previously deprecated django_settings setting has been removed.
    Use the :ref:raw-env setting instead.
  • The default value of :ref:ssl-version has been changed from
    ssl.PROTOCOL_TLSv1 to ssl.PROTOCOL_SSLv23.
  • fix: initialize the group access list when initgroups is set (:issue:1297)
  • add environment variables to gunicorn access log format (:issue:1291)
  • add --paste-global-conf option (:issue:1304)
  • fix: print access logs to STDOUT (:issue:1184)
  • remove upper limit on max header size config (:issue:1313)
  • fix: print original exception on AppImportError (:issue:1334)
  • use SO_REUSEPORT if available (:issue:1344)
  • fix leak <https://github.com/benoitc/gunicorn/commit/b4c41481e2d5ef127199a4601417a6819053c3fd>_ of duplicate file descriptor for bound sockets.
  • add --reload-engine option, support inotify and other backends (:issue:1368, :issue:1459)
  • fix: reject request with invalid HTTP versions
  • add child_exit callback (:issue:1394)
  • add support for eventlets _AlreadyHandled object (:issue:1406)
  • format boot tracebacks properly with reloader (:issue:1408)
  • refactor socket activation and fd inheritance for better support of SystemD (:issue:1310)
  • fix: o fds are given by default in gunicorn (:issue:1423)
  • add ability to pass settings to GUNICORN_CMD_ARGS environment variable which helps in container world (:issue:1385)
  • fix: catch access denied to pid file (:issue:1091)
  • many additions and improvements to the documentation

Breaking Change
+++++++++++++++

  • Python 2.6.0 is the last supported version

19.6.0

===================

Core & Logging
++++++++++++++

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

Workers
+++++++

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

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 (:issue:1220)
  • improvement: use EnvironmentError instead of socket.error (:issue:939)
  • add: new FORWARDDED_ALLOW_IPS environment variable (:issue:1205)
  • fix: infinite recursion when destroying sockets (:issue:1219)
  • fix: close sockets on shutdown (:issue:922)
  • fix: clean up sys.exc_info calls to drop circular refs (:issue:1228)
  • fix: do post_worker_init after load_wsgi (:issue:1248)

Workers
+++++++

  • fix access logging in gaiohttp worker (:issue:1193)
  • eventlet: handle QUIT in a new coroutine (:issue:1217)
  • gevent: remove obsolete exception clauses in run (:issue:1218)
  • tornado: fix extra "Server" response header (:issue:1246)
  • fix: unblock the wait loop under python 3.5 in sync worker (:issue:1256)

Logging
+++++++

  • fix: log message for listener reloading (:issue:1181)
  • Let logging module handle traceback printing (:issue:1201)
  • improvement: Allow configuring logger_class with statsd_host (:issue:1188)
  • fix: traceback formatting (:issue:1235)
  • fix: print error logs on stderr and access logs on stdout (:issue:1184)

Documentation
+++++++++++++

  • Simplify installation instructions in gunicorn.org (:issue:1072)
  • Fix URL and default worker type in example_config (:issue:1209)
  • update django doc url to 1.8 lts (:issue:1213)
  • fix: miscellaneous wording corrections (:issue:1216)
  • Add PSF License Agreement of selectors.py to NOTICE (:issue: 1226)
  • document LOGGING overriding (:issue:1051)
  • put a note that error logs are only errors from Gunicorn (:issue:1124)
  • add a note about the requirements of the threads workers under python 2.x (:issue:1200)
  • add access_log_format to config example (:issue:1251)

Tests
+++++

  • Use more pytest.raises() in test_http.py

19.4.5

===================

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

19.4.4

===================

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

================
Changelog - 2017

.. note::

Please see :doc:news for the latest changes

19.4.3

===================

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

19.4.2

===================

Core
++++

  • improvement: handle HaltServer in manage_workers (:issue:1095)
  • fix: Do not rely on sendfile sending requested count (:issue:1155)
  • fix: claridy --no-sendfile default (:issue:1156)
  • fix: LoggingCatch sendfile failure from no file descriptor (:issue:1160)

Logging
+++++++

  • fix: Always send access log to syslog if syslog is on
  • fix: check auth before trying to own a file (:issue:1157)

Documentation
+++++++++++++

  • fix: Fix Slowloris broken link. (:issue:1142)
  • Tweak markup in faq.rst

Testing
+++++++

  • fix: gaiohttp test (:issue:1164)

19.4.1

===================

  • fix tornado worker (:issue:1154)

19.4.0 / 2015/11/20

Core
++++

  • fix: make sure that a user is able to access to the logs after dropping a
    privilege (:issue:1116)
  • improvement: inherit the Exception class where it needs to be (:issue:997)
  • fix: make sure headers are always encoded as latin1 RFC 2616 (:issue:1102)
  • improvement: reduce arbiter noise (:issue:1078)
  • fix: don't close the unix socket when the worker exit (:issue:1088)
  • improvement: Make last logged worker count an explicit instance var (:issue:1078)
  • improvement: prefix config file with its type (:issue:836)
  • improvement: pidfile handing (:issue:1042)
  • fix: catch OSError as well as ValueError on race condition (:issue:1052)
  • improve support of ipv6 by backporting urlparse.urlsplit from Python 2.7 to
    Python 2.6.
  • fix: raise InvalidRequestLine when the line contains malicious data
    (:issue:1023)
  • fix: fix argument to disable sendfile
  • fix: add gthread to the list of supported workers (:issue:1011)
  • improvement: retry socket binding up to five times upon EADDRNOTAVAIL
    (:issue:1004)
  • breaking change: only honor headers that can be encoded in ascii to comply to
    the RFC 7230 (See :issue:1151).

Logging
+++++++

  • add new parameters to access log (:issue:1132)
  • fix: make sure that files handles are correctly reopened on HUP
    (:issue:627)
  • include request URL in error message (:issue:1071)
  • get username in access logs (:issue:1069)
  • fix statsd logging support on Python 3 (:issue:1010)

Testing
+++++++

  • use last version of mock.
  • many fixes in Travis CI support
  • miscellaneous improvements in tests

Thread worker
+++++++++++++

  • fix: Fix self.nr usage in ThreadedWorker so that auto restart works as
    expected (:issue:1031)

Gevent worker
+++++++++++++

  • fix quit signal handling (:issue:1128)
  • add support for Python 3 (:issue:1066)
  • fix: make graceful shutdown thread-safe (:issue:1032)

Tornado worker
++++++++++++++

  • fix ssl options (:issue:1146, :issue:1135)
  • don't check timeout when stopping gracefully (:issue:1106)

AIOHttp worker
++++++++++++++

  • add SSL support (:issue:1105)

Documentation
+++++++++++++

  • fix link to proc name setting (:issue:1144)
  • fix worker class documentation (:issue:1141, :issue:1104)
  • clarify graceful timeout documentation (:issue:1137)
  • don't duplicate NGINX config files examples (:issue:1050, :issue:1048)
  • add web.py framework example (:issue:1117)
  • update Debian/Ubuntu installations instructions (:issue:1112)
  • clarify pythonpath setting description (:issue:1080)
  • tweak some example for python3
  • clarify sendfile documentation
  • miscellaneous typos in source code comments (thanks!)
  • clarify why REMOTE_ADD may not be the user's IP address (:issue:1037)

Misc
++++

  • fix: reloader should survive SyntaxError (:issue:994)
  • fix: expose the reloader class to the worker.

19.3.0

===================

Changes

Core
++++

  • fix: :issue:978 make sure a listener is inheritable
  • add check_config class method to workers
  • fix: :issue:983 fix select timeout in sync worker with multiple
    connections
  • allows workers to access to the reloader. close :issue:984
  • raise TypeError instead of AssertionError

Logging
+++++++

  • make Logger.loglevel a class attribute

Documentation
+++++++++++++

  • fix: :issue:988 fix syntax errors in examples/gunicorn_rc

19.2.1

==================

Changes

Logging
+++++++

  • expose loglevel in the Logger class

AsyncIO worker (gaiohttp)
+++++++++++++++++++++++++

  • fix :issue:977 fix initial crash

Documentation
+++++++++++++

  • document security mailing-list in the contributing page.

19.2

=================

Changes

Core
++++

  • optimize the sync workers when listening on a single interface
  • add --sendfile settings to enable/disable sendfile. fix :issue:856 .
  • add the selectors module to the code base. :issue:886
  • add --max-requests-jitter setting to set the maximum jitter to add to the
    max-requests setting.
  • fix :issue:899 propagate proxy_protocol_info to keep-alive requests
  • fix :issue:863 worker timeout: dynamic timeout has been removed
  • fix: Avoid world writable file

Logging
+++++++

  • fix :issue:941 set logconfig default to paster more trivially
  • add statsd-prefix config setting: set the prefix to use when emitting statsd
    metrics
  • :issue:832 log to console by default

Thread Worker
+++++++++++++

  • fix :issue:908 make sure the worker can continue to accept requests

Eventlet Worker
+++++++++++++++

  • fix :issue:867 Fix eventlet shutdown to actively shut down the workers.

Documentation
+++++++++++++

Many improvements and fixes have been done, see the detailed changelog for
more information.

================
Changelog - 2016

.. note::

Please see :doc:news for the latest changes

19.1.1

===================

Changes

Core
++++

  • fix :issue:835: display correct pid of already running instance
  • fix :pr:833: fix PyTest class in setup.py.

Logging
+++++++

  • 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 :issue:830 make sure gaiohttp worker is shipped with gunicorn.

19.1

=================

Changes

Core
++++

  • 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 :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 :pr:633.

AioHttp worker
++++++++++++++

  • fix: fetch all body in input. fix :issue:803
  • fix: don't install the worker if python < 3.3
  • fix :issue:822: Support UNIX sockets in gaiohttp worker

Async worker
++++++++++++

  • fix :issue:790: StopIteration shouldn't be catched at this level.

Logging
+++++++

  • add statsd logging handler fix :issue:748

Paster
++++++

  • fix :issue:809: Set global logging configuration from a Paste config.

Extra
+++++

  • fix RuntimeError in gunicorn.reloader (:issue:807)

Documentation
+++++++++++++

  • update faq: put a note on how watch logs in the console &lt;http://docs.gunicorn.org/en/latest/faq.htmlwhy-i-don-t-see-any-logs-in-the-console&gt;_
    since many people asked for it.

19.0

version improve a lot the usage of Gunicorn with python 3 by adding two new workers &lt;http://docs.gunicorn.org/en/latest/design.htmlasyncio-workers&gt;_
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-faqwhat-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 &lt;custom&gt;.
  • 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

================
Changelog - 2015

.. note::

Please see :doc:news for the latest changes.

18.0


  • 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

17.5


  • new: add signals documentation
  • new: add post_worker_init hook for workers
  • new: try to use gunicorn.conf.py in current folder as the default
    config file.
  • fix graceful timeout with the Eventlet worker
  • fix: don't raise an error when closing the socket if already closed
  • fix: fix --settings parameter for django application and try to find
    the django settings when using the gunicorn command.
  • fix: give the initial global_conf to paster application
  • fix: fix 'Expect: 100-continue' support on Python 3

New versionning:
++++++++++++++++

With this release, the versionning of Gunicorn is changing. Gunicorn is
stable since a long time and there is no point to release a "1.0" now.
It should have been done since a long time. 0.17 really meant it was the
17th stable version. From the beginning we have only 2 kind of
releases:

major release: releases with major changes or huge features added
services releases: fixes and minor features added So from now we will
apply the following versionning &lt;major&gt;.&lt;service&gt;. For example 17.5 is a
service release.

0.17.4


  • fix unix socket address parsing

0.17.3


  • add systemd sockets support
  • add python -m gunicorn.app.wsgiapp support
  • improve logger class inheritance
  • exit when the config file isn't found
  • add the -R option to enable stdio inheritance in daemon mode
  • don't close file descriptors > 3 in daemon mode
  • improve STDOUT/STDERR logging
  • fix pythonpath option
  • fix pidfile creation on Python 3
  • fix gevent worker exit
  • fix ipv6 detection when the platform isn't supporting it

0.17.2


  • optimize readline
  • make imports errors more visible when loading an app or a logging
    class
  • fix tornado worker: don't pass ssl options if there are none
  • fix PEP3333: accept only bytetrings in the response body
  • fix support on CYGWIN platforms

0.17.1


  • add syslog facility name setting
  • fix --version command line argument
  • fix wsgi url_scheme for https

================
Changelog - 2014

.. note::

Please see :doc:news for the latest changes.

0.17.0


  • allows gunicorn to bind to multiple address
  • add SSL support
  • add syslog support
  • add nworkers_changed hook
  • add response arg for post_request hook
  • parse command line with argparse (replace deprecated optparse)
  • fix PWD detection in arbiter
  • miscellaneous PEP8 fixes

0.16.1


  • Fix packaging

0.16.0


  • Added support for Python 3.2 & 3.3
  • Expose --pythonpath command to all gunicorn commands
  • Honor $PORT environment variable, useful for deployment on heroku
  • Removed support for Python 2.5
  • Make sure we reopen the logs on the console
  • Fix django settings module detection from path
  • Reverted timeout for client socket. Fix issue on blocking issues.
  • Fixed gevent worker

0.15.0


  • new documentation site on http://docs.gunicorn.org
  • new website on http://gunicorn.org
  • add haproxy PROXY protocol &lt;http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt&gt;_ support
  • add ForwardedAllowIPS option: allows to filter Front-end's IPs
    allowed to handle X-Forwarded-* headers.
  • add callable hooks for paster config
  • add x-forwarded-proto as secure scheme default (Heroku is using this)
  • allows gunicorn to load a pre-compiled application
  • support file reopening & reexec for all loggers
  • initialize the logging config file with defaults.
  • set timeout for client socket (slow client DoS).
  • NoMoreData, ChunkMissingTerminator, InvalidChunkSize are now
    IOError exceptions
  • fix graceful shutdown in gevent
  • fix limit request line check

0.14.6


  • fix gevent & subproces
  • fix request line length check
  • fix keepalive = 0
  • fix tornado worker

0.14.5


  • fix logging during daemonisation

0.14.4


  • new --graceful-timeout option
  • fix multiple issues with request limit
  • more fixes in django settings resolutions
  • fix gevent.core import
  • fix keepalive=0 in eventlet worker
  • fix handle_error display with the unix worker
  • fix tornado.wsgi.WSGIApplication calling error
  • breaking change: take the control on graceful reload back.
    graceful can't be overrided anymore using the on_reload function.

0.14.3


  • improvement: performance of http.body.Body.readline()
  • improvement: log HTTP errors in access log like Apache
  • improvement: display traceback when the worker fails to boot
  • improvement: makes gunicorn work with gevent 1.0
  • examples: websocket example now supports hybi13
  • fix: reopen log files after initialization
  • fix: websockets support
  • fix: django1.4 support
  • fix: only load the paster application 1 time

0.14.2


  • add validate_class validator: allows to use a class or a method to
    initialize the app during in-code configuration
  • add support for max_requests in tornado worker
  • add support for disabling x_forwarded_for_header in tornado worker
  • gevent_wsgi is now an alias of gevent_pywsgi
  • Fix gevent_pywsgi worker

0.14.1


  • fixing source archive, reducing its size

0.14.0


  • check if Request line is too large: You can now pass the parameter
    --limit-request-line or set the limit_request_line in your
    configuration file to set the max size of the request line in bytes.
  • limit the number of headers fields and their size. Add
    --limit-request-field and limit-request-field-size settings
  • add p variable to the log access format to log pidfile
  • add {HeaderName}o variable to the logo access format to log the
    response header HeaderName
  • request header is now logged with the variable {HeaderName}i in the
    access log file
  • improve error logging
  • support logging.configFile
  • support django 1.4 in both gunicorn_django & run_gunicorn command
  • improve reload in django run_gunicorn command (should just work now)
  • allows people to set the X-Forwarded-For header key and disable it by
    setting an empty string.
  • fix support of Tornado
  • many other fixes.

Changelog - 2013

0.13.4


  • fix util.closerange function used to prevent leaking fds on python 2.5
    (typo)

0.13.3


  • refactor gevent worker
  • prevent leaking fds on reexec
  • fix inverted request_time computation

0.13.2


  • Add support for Tornado 2.0 in tornado worker
  • Improve access logs: allows customisation of the log format & add
    request time
  • Logger module is now pluggable
  • Improve graceful shutdown in Python versions >= 2.6
  • Fix post_request root arity for compatibility
  • Fix sendfile support
  • Fix Django reloading

0.13.1


  • Fix unix socket. log argument was missing.

0.13.0


  • Improve logging: allows file-reopening and add access log file
    compatible with the apache combined log format &lt;http://httpd.apache.org/docs/2.0/logs.htmlcombined&gt;_
  • Add the possibility to set custom SSL headers. X-Forwarded-Protocol
    and X-Forwarded-SSL are still the default
  • New on_reload hook to customize how gunicorn spawn new workers on
    SIGHUP
  • Handle projects with relative path in django_gunicorn command
  • Preserve path parameters in PATH_INFO
  • post_request hook now accepts the environ as argument.
  • When stopping the arbiter, close the listener asap.
  • Fix Django command run_gunicorn in settings reloading
  • Fix Tornado_ worker exiting
  • Fix the use of sendfile in wsgi.file_wrapper

0.12.2


  • Add wsgi.file_wrapper optimised for FreeBSD, Linux & MacOSX (use
    sendfile if available)
  • Fix django run_gunicorn command. Make sure we reload the application
    code.
  • Fix django localisation
  • Compatible with gevent 0.14dev

0.12.1


  • Add "on_starting" hook. This hook can be used to set anything before
    the arbiter really start
  • Support bdist_rpm in setup
  • Improve content-length handling (pep 3333)
  • Improve Django support
  • Fix daemonizing (142)
  • Fix ipv6 handling

.. _Tornado: http://www.tornadoweb.org/

Changelog - 2012

0.12.0


  • Add support for logging configuration using a ini file.
    It uses the standard Python logging's module Configuration
    file format and allows anyone to use his custom file handler
  • Add IPV6 support
  • Add multidomain application example
  • Improve gunicorn_django command when importing settings module
    using DJANGO_SETTINGS_MODULE environment variable
  • Send appropriate error status on http parsing
  • Fix pidfile, set permissions so other user can read
    it and use it.
  • Fix temporary file leaking
  • Fix setpgrp issue, can now be launched via ubuntu upstart
  • Set the number of workers to zero on WINCH

0.11.2


  • Add SERVER_SOFTWARE to the os.environ
  • Add support for django settings environment variable
  • Add support for logging configuration in Paster ini-files
  • Improve arbiter notification in asynchronous workers
  • Display the right error when a worker can't be used
  • Fix Django support
  • Fix HUP with Paster applications
  • Fix readline in wsgi.input

0.11.1


  • Implement max-requests feature to prevent memory leaks.
  • Added 'worker_exit' server hook.
  • Reseed the random number generator after fork().
  • Improve Eventlet worker.
  • Fix Django command run_gunicorn.
  • Fix the default proc name internal setting.
  • Workaround to prevent Gevent worker to segfault on MacOSX.

0.11.0


  • Improve dramatically performances of Gevent and Eventlet workers
  • Optimize HTTP parsing
  • Drop Server and Date headers in start_response when provided.
  • Fix latency issue in async workers

0.10.1


  • Improve gevent's workers. Add "egg:gunicorngevent_wsgi" worker using
    gevent.wsgi &lt;http://www.gevent.org/gevent.wsgi.html&gt;_ and
    "egg:gunicorngevent_pywsgi" worker using gevent.pywsgi &lt;http://www.gevent.org/gevent.pywsgi.html&gt;_ .
    "egg:gunicorngevent" using our own HTTP parser is still here and
    is recommended for normal uses. Use the "gevent.wsgi" parser if you
    need really fast connections and don't need streaming, keepalive or ssl.
  • Add pre/post request hooks
  • Exit more quietly
  • Fix gevent dns issue

0.10.0


  • New HTTP parser.
  • New HUP behaviour. Re-reads the configuration and then reloads all
    worker processes without changing the master process id. Helpful for
    code reloading and monitoring applications like supervisord and runit.
  • Added a preload configuration parameter. By default, application code
    is now loaded after a worker forks. This couple with the new HUP
    handling can be used for dev servers to do hot code reloading. Using
    the preload flag can help a bit in small memory VM's.
  • Allow people to pass command line arguments to WSGI applications. See:
    examples/alt_spec.py &lt;http://github.com/benoitc/gunicorn/raw/master/examples/alt_spec.py&gt;_
  • Added an example gevent reloader configuration:
    examples/example_gevent_reloader.py &lt;http://github.com/benoitc/gunicorn/blob/master/examples/example_gevent_reloader.py&gt;_.
  • New gevent worker "egg:gunicorngevent2", working with gevent.wsgi.
  • Internal refactoring and various bug fixes.
  • New documentation website.

0.9.1


  • Support https via X-Forwarded-Protocol or X-Forwarded-Ssl headers
  • Fix configuration
  • Remove -d options which was used instead of -D for daemon.
  • Fix umask in unix socket

0.9.0


  • Added when_ready hook. Called just after the server is started
  • Added preload setting. Load application code before the worker processes
    are forked.
  • Refactored Config
  • Fix pidfile
  • Fix QUIT/HUP in async workers
  • Fix reexec
  • Documentation improvements

0.8.1


  • Fix builtins import in config
  • Fix installation with pip
  • Fix Tornado WSGI support
  • Delay application loading until after processing all configuration

0.8.0


  • Refactored Worker management for better async support. Now use the -k option
    to set the type of request processing to use
  • Added support for Tornado_

0.7.2


  • Added --spew option to help debugging (installs a system trace hook)
  • Some fixes in async arbiters
  • Fix a bug in start_response on error

0.7.1


  • Fix bug when responses have no body.

0.7.0


  • Added support for Eventlet_ and Gevent_ based workers.
  • Added Websockets_ support
  • Fix Chunked Encoding
  • Fix SIGWINCH on OpenBSD_
  • Fix PEP 333_ compliance for the write callable.

0.6.5


  • Fix pidfile handling
  • Fix Exception Error

0.6.4


  • Use cStringIO for performance when possible.
  • Fix worker freeze when a remote connection closes unexpectedly.

0.6.3


  • Make HTTP parsing faster.
  • Various bug fixes

0.6.2


  • Added support for chunked response.
  • Added proc_name option to the config file.
  • Improved the HTTP parser. It now uses buffers instead of strings to store
    temporary data.
  • Improved performance when sending responses.
  • Workers are now murdered by age (the oldest is killed first).

0.6.1


  • Added gunicorn config file support for Django admin command
  • Fix gunicorn config file. -c was broken.
  • Removed TTIN/TTOU from workers which blocked other signals.

0.6.0


  • Added setproctitle support
  • Change privilege switch behavior. We now work like NGINX, master keeps the
    permissions, new uid/gid permissions are only set for workers.

0.5.1


  • Fix umask
  • Added Debian packaging

0.5.0


  • Added configuration file &lt;configuration.html&gt;_ handler.
  • Added support for pre/post fork hooks
  • Added support for before_exec hook
  • Added support for unix sockets
  • Added launch of workers processes under different user/group
  • Added umask option
  • Added SCRIPT_NAME support
  • Better support of some exotic settings for Django projects
  • Better support of Paste-compatible applications
  • Some refactoring to make the code easier to hack
  • Allow multiple keys in request and response headers

.. _Tornado: http://www.tornadoweb.org/
.. _PEP 333: http://www.python.org/dev/peps/pep-0333/
.. _Eventlet: http://eventlet.net
.. _Gevent: http://gevent.org
.. _OpenBSD: http://openbsd.org
.. _Websockets: http://dev.w3.org/html5/websockets/

Changelog - 2011

raven -> 6.0.0

6.0.0


  • Strip whitespace from DSNs automatically.
  • Add last_event_id accessor to Client.
  • Do not require sys.argv to be available any more.
  • Tags defined on a logging handler will now be merged with individual log record's tags.
  • Added explicit support for multidicts in the django client.
  • Refactored transports to support multiple URLs. This might affect
    you if you have custom subclasses of those. The main change is that
    the URL parameter moved from the constructor into the send method.
  • Corrected an issue with recursive route resolvers which commonly
    affected things like django-tastyepie.
  • Corrected an issue where Django's HTTP request was not always available
    within events.

5.32.0


  • Made raven python breadcrumb patches work when librato monkey
    patches logging.

5.31.0


  • Improved fix for the Django middleware regression.

5.30.0


  • Keep the original type for the django middleware settings if we
    change them.

5.29.0


  • Added register_logging_handler.
  • Removed bad mixin from django's WSGI middleware
  • Removed "support for extracing data from rest_framework" because
    this broke code.

5.28.0


  • Corrected an issue that caused close() on WSGI iterables to not be
    correctly called.
  • Fixes the new Django 1.10 MIDDLEWARE_CLASSES warning.

5.27.1


  • Bugfix for transaction based culprits.

5.27.0


  • Added support for extracting data from rest_framework in Django integration
  • Updated CA bundle.
  • Added transaction-based culprits for Celery, Django, and Flask.
  • Fixed an issue where ignore_exceptions wasn't respected.

5.26.0


  • Fixed potential concurrency issue with event IDs in the Flask integration.
  • Added a workaround for leakage when broken WSGI middlware or servers are
    used that do not call close() on the iterat.r

5.25.0


  • Added various improvements for the WSGI and Django support.
  • Prevent chained exception recursion
  • In environments which look like AWS Lambda or Google App Engine utilize the
    synchronous transport.
  • Added Celery config option to ignore expected exceptions
  • Improved DSN handling in Flask client.

5.24.0


  • Added support for Django 1.10.
  • Added support for chained exceptions in Python 3.
  • Fixed various behavior with handling template errors in Django 1.8+.

5.23.0


  • Sentry failures now no longer log the failure data in the error
    message.

5.22.0


  • Fixed template reporting not working for certain versions of Django.

5.21.0


  • Add formatted attribute to message events
  • Fill in empty filename if django fails to give one for
    template information on newer Django versions with disabled
    debug mode.

5.20.0


  • fixed an error that could cause certain SQL queries to fail to
    record as breadcrumbs if no parameters were supplied.

5.19.0


  • remove duration from SQL query breadcrumbs. This was not rendered
    in the UI and will come back in future versions of Sentry with a
    different interface.
  • resolved a bug that caused crumbs to be recorded incorrectly.

5.18.0


  • Breadcrumbs are now attempted to be deduplicated to catch some common
    cases where log messages just spam up the breadcrumbs.
  • Improvements to the public breadcrumbs API and stabilized some.
  • Automatically activate the context on calls to merge

5.17.0


  • if breadcrumbs fail to process due to an error they are now skipped.

5.16.0


  • exc_info is no longer included in logger based breadcrumbs.
  • log the entire logger name as category.
  • added a enable_breadcrumbs flag to the client to allow the enabling or
    disabling of breadcrumbs quickly.
  • corrected an issue where python interpreters with bytecode writing enabled
    would report incorrect logging locations when breadcrumb patching for
    logging was enabled.

5.15.0


  • Improve thread binding for the context. This makes the main thread never
    deactivate the client automatically on clear which means that more code
    should automatically support breadcrumbs without changes.

5.14.0


  • Added support for reading git sha's from packed references.
  • Detect disabled thread support for uwsgi.
  • Added preliminary support for breadcrumbs.

Note: this version adds breadcrumbs to events. This means that if you run a
Sentry version older than 8.5 you will see some warnings in the UI. Consider
using an older version of the client if you do not want to see it.

5.13.0


  • Resolved an issue where Raven would fail with an exception if the
    package name did not match the setuptools name in some isolated
    cases.

5.12.0


  • Empty and otherwise falsy (None, False, 0) DSN values are now assumed
    to be equivalent to no DSN being provided.

5.11.2


  • Added a workaround for back traceback objects passed to raven. In these
    cases we now wobble further along to at least log something.

5.11.1


  • The raven client supports the stacktrace to be absent. This improves support
    with celery and multiprocessing.

5.11.0


  • Client.configure_logging has been removed, and handlers will not automatically
    be added to 'sentry' and 'raven' namespaces.
  • Improved double error check
  • Restored support for exc_info is True.

5.10.2


  • Remember exceptions in flight until the context is cleared so that two
    reports with the same exception data do not result in two errors
    being logged.
  • Allow logging exclusions.

5.10.1


  • Fixed a problem where bytes as keys in dictionaries caused problems
    on data sanitization if those bytes were outside of the ASCII range.
  • Django client no longer requires the user object to be a subclass
    of the base model.
  • Corrected an issue with the Django log handler which would cause a recursive import.

5.10.0


  • Restore template debug support for Django 1.9 and newer.
  • Correctly handle SSL verification disabling for newer Python versions.

5.9.2


  • Correct behavior introduced for Django 1.9.

5.9.1


  • Support for isolated apps in Django 1.9.

5.9.0


  • The threaded worker will now correctly handle forking.
  • The 'environment' parameter is now supported (requires a Sentry 8.0 server ).
  • 'tags' can now be specified as part of a LoggingHandler's constructor.

5.8.0


  • Added support for detecting release on Heroku.
  • pkg_resources is now prioritized for default version detection.
  • Updated in_app support to include exception frames.
  • Fixed support for SENTRY_USER_ATTRS in Flask.
  • Handle DSNs which are sent as unicode values in Python 2.

5.7.2


  • Handle passing fingerprint through logging handler.

5.7.1


  • Correctly handle SHAs in .git/HEAD.
  • Fixed several cases of invalid Python3 syntax.

5.7.0


  • Reverted changes to Celery which incorrectly caused some configurations
    to log unwanted messages.
  • Improved behavior in fetch_git_sha.
  • Removed is_authenticated property from most integrations.
  • Better error handling for errors within Flask context.
  • Support for new versions of Flask-Login.
  • Update Tornado support for modern versions.
  • Update stacktrace truncation code to match current versions of Sentry server.

5.6.0


  • Content is no longer base64-encoded.
  • fingerprint is now correctly supported.
  • Django: 1.9 compatibility.
  • Celery: Filter celery.redirect logger.

5.5.0


  • Added sys.excepthook handler (installed by default).
  • Fixed an issue where wrap_wsgi wasn't being respected.
  • Various deprecated code removed.

5.4.4


  • Enforce string-type imports.

5.4.3


  • Python 3 compatibility fixes.

5.4.2


  • Remove scheme checking on transports.
  • Added SENTRY_TRANSPORT to Flask and Django configurations.

5.4.1


  • Fixed packaging of 5.4.0 which erronously kept the aiohttp.py file in the wheel only.

5.4.0


  • Binding transports via a scheme prefix on DSNs is now deprecated.
  • raven.conf.load has been removed.
  • Upstream-related configuration (such as url, project_id, and keys) is now contained in RemoteConfig
    attached to Client.remote
  • The aiohttp transport has been moved to raven-aiohttp package.

5.3.1


  • Restored support for patching Django's BaseCommand.execute.

5.3.0


  • The UDP transport has been removed.
  • The integrated Sentry+Django client has been removed. This is now part of Sentry core.
  • Server configuration must now be specified with a DSN.
  • Upstream errors now have increased verbosity in logs.
  • Unsent events now log to 'sentry.errors.uncaught'.
  • Django management commands should now effectively autopatch (when run from the CLI).
  • Flask wrapper now includes user_context, tags_context, and extra_context helpers.
  • Python version is now reported with modules.

5.2.0


  • Protocol version is now 6 (requires Sentry 7.0 or newer).
  • Added release option to Client.
  • Added fetch_git_sha helper.
  • Added fetch_package_version helper.
  • Added cookie string sanitizing.
  • Added threaded request transport: "threaded+requests+http(s)".

5.1.0


  • Added aiohttp transport.
  • Corrected behavior with auto_log_stacks and exceptions.
  • Add support for certifi.
  • Expanded Flask support.
  • Expanded Django support.
  • Corrected an issue where processors were not correctly applying.

5.0.0


  • Sentry client protocol is now version 5.
  • Various improvements to threaded transport.

4.2.0


  • SSL verification is now on by default.
  • Rate limits and other valid API errors are now handled more gracefully.
  • Added last_event_id and X-Sentry-ID header to Flask.

4.1.0


  • Added verify_ssl option to HTTP transport (defaults to False).
  • Added capture_locals option (defaults to True).
  • message can now be passed to capture* functions.
  • Django <1.4 is no longer supported.
  • Function object serialization has been improved.
  • SanitizePasswordsProcessor removes API keys.

4.0.0


  • Sentry client protocol is now version 4.

3.6.0


This changelog does not attempt to account for all changes between 3.6.0 and 3.0.0, but
rather focuses on recent important changes

  • Transport modules paths have been refactored.
  • The threaded transport is now the default.
  • Client.context has changed. Please see documentation for new API.
  • Client.user_context was added.
  • Client.http_context was added.
  • Client.extra_context was added.
  • Client.tags_context was added.
  • Flask support has been greatly improved.
  • raven.contrib.celery.Client has been removed as it was invalid.

3.0

version 3 of the protocol.

Support includes:

  • Sending 'python' as the platform.
  • The 'tags' option (on all constructors that support options).
  • Updated authentication header.

Additionally, the following has changed:

  • Configuring the client with an empty DSN value will disable sending of messages.
  • All clients should now check Client.is_enabled() to verify if they should send data.
  • Client.create_from_text and Client.create_from_exception have been removed.
  • Client.message and Client.exception have been removed.
  • The key setting has been removed.
  • The DEBUG setting in Django no longer disables Raven.
  • The register_signals option in RAVEN_CONFIG (Django) is no longer used.
  • A new helper, Client.context() is now available for scoping options.
  • Client.captureExceptions is now deprecated in favor of Client.context.
  • Credit card values will now be sanitized with the default processors.
  • A new eventlet+http transport exists.
  • A new threaded+http transport exists.
  • PyPy is now supported.
  • Django 1.5 should now be supported (experimental).
  • Gevent 1.0 should now be supported (experimental).
  • Python 2.5 is no longer supported.
  • [Django] The skip_sentry attribute is no longer supported. A new option config option has replaced this: SENTRY_IGNORE_EXCEPTIONS.

3.0.0


2.0.0


  • New serializers exist (and can be registered) against Raven. See raven.utils.serializer for more information.
  • You can now pass tags to the capture method. This will require a Sentry server compatible with the new
    tags protocol.
  • A new gevent+http transport exists.
  • A new tornado+http transport exists.
  • A new twisted+http transport exists.
  • Zope integration has been added. See docs for more information.
  • PasteDeploy integration has been added. See docs for more information.
  • A Django endpoint now exists for proxying requests to Sentry. See raven.contrib.django.views for more information.

1.9.0


  • Signatures are no longer sent with messages. This requires the server version to be at least 4.4.6.
  • Several fixes and additions were added to the Django report view.
  • long types are now handled in transform().
  • Improved integration with Celery (and django-celery) for capturing errors.

1.8.0


  • There is now a builtin view as part of the Django integration for sending events server-side
    (from the client) to Sentry. The view is currently undocumented, but is available as {% url raven-report %}
    and will use your server side credentials. To use this view you'd simply swap out the servers configuration in
    raven-js and point it to the given URL.
  • A new middleware for ZeroRPC now exists.
  • A new protocol for registering transports now exists.
  • Corrected some behavior in the UDP transport.
  • Celery signals are now connected by default within the Django integration.

1.7.0


  • The password sanitizer will now attempt to sanitize key=value pairs within strings (such as the querystring).
  • Two new santiziers were added: RemoveStackLocalsProcessor and RemovePostDataProcessor

1.6.0


  • Stacks must now be passed as a list of tuples (frame, lineno) rather than a list of frames. This
    includes calls to logging (extra={'stack': []}), as well as explicit client calls (capture(stack=[])).

This corrects some issues (mostly in tracebacks) with the wrong lineno being reported for a frame.

1.4.0


  • Raven now tracks the state of the Sentry server. If it receives an error, it will slow down
    requests to the server (by passing them into a named logger, sentry.errors), and increasingly
    delay the next try with repeated failures, up to about a minute.

1.3.6


  • gunicorn is now disabled in default logging configuration

1.3.5


  • Moved exception and message methods to capture{Exception,Message}.
  • Added captureQuery method.

1.3.4


  • Corrected duplicate DSN behavior in Django client.

1.3.3


  • Django can now be configured by setting SENTRY_DSN.
  • Improve logging for send_remote failures (and correct issue created when
    send_encoded was introduced).
  • Renamed SantizePassworsProcessor to SanitizePassworsProcessor.

1.3.2


  • Support sending the culprit with logging messages as part of extra.

1.3.1


  • Added client.exception and client.message shortcuts.

1.3.0


  • Refactored client send API to be more easily extensible.
  • MOAR TESTS!

1.2.2


  • Gracefully handle exceptions in Django client when using integrated
    setup.
  • Added Client.error_logger as a new logger instance that points to
    sentry.errors.

1.2.1


  • Corrected behavior with raven logging errors to send_remote
    which could potentially cause a very large backlog to Sentry
    when it should just log to sentry.errors.
  • Ensure the site argument is sent to the server.

1.2.0


  • Made DSN a first-class citizen throughout Raven.
  • Added a Pylons-specific WSGI middleware.
  • Improved the generic WSGI middleware to capture HTTP information.
  • Improved logging and logbook handlers.

1.1.6


  • Corrected logging stack behavior so that it doesnt capture raven+logging
    extensions are part of the frames.

1.1.5


  • Remove logging attr magic.

1.1.4


  • Correct encoding behavior on bool and float types.

1.1.3


  • Fix 'request' attribute on Django logging.

1.1.2


  • Corrected logging behavior with extra data to match pre 1.x behavior.

1.1.1


  • Handle frames that are missing f_globals and f_locals.
  • Stricter conversion of int and boolean values.
  • Handle invalid sources for templates in Django.

1.1.0


  • varmap was refactored to send keys back to callbacks.
  • SanitizePasswordProcessor now handles http data.

1.0.5


  • Renaming raven2 to raven as it causes too many issues.

1.0.4


  • Corrected a bug in setup_logging.
  • Raven now sends "sentry_version" header which is the expected
    server version.

1.0.3


  • Handle more edge cases on stack iteration.

1.0.2


  • Gracefully handle invalid f_locals.

1.0.1


  • All datetimes are assumed to be utcnow() as of Sentry 2.0.0-RC5

1.0.0


  • Now only works with Sentry>=2.0.0 server.
  • Raven is now listed as raven2 on PyPi.

0.8.0


  • raven.contrib.celery is now useable.
  • raven.contrib.django.celery is now useable.
  • Fixed a bug with request.raw_post_data buffering in Django.

0.7.1


  • Servers would stop iterating after the first successful post which was not the
    intended behavior.

0.7.0


  • You can now explicitly pass a list of frame objects to the process method.

0.6.1


0.6.0


  • Added a Django-specific WSGI middleware.

0.5.1


0.5.0


  • Require servers on base Client.
  • Added support for the site option in Client.
  • Moved raven.contrib.django.logging to raven.contrib.django.handlers.

0.4.0


  • Fixed an infinite loop in iter_tb.

0.3.0


  • Removed the thrashed key in request.sentry for the Django integration.
  • Changed the logging handler to correctly inherit old-style classes (Mover repo desde matuu a este repo #1).
  • Added a client argument to raven.contrib.django.models.get_client().

0.2.0


  • auto_log_stacks now works with create_from_text
  • added Client.get_ident

0.1.0


  • Initial version of Raven (extracted from django-sentry 1.12.1).

Django 1.9.6 -> 1.11

1.10.7

===========================

April 4, 2017

Django 1.10.7 fixes two security issues and a bug in 1.10.6.

CVE-2017-7233: Open redirect and possible XSS attack via user-supplied numeric redirect URLs

Django relies on user input in some cases (e.g.
:func:django.contrib.auth.views.login and :doc:i18n &lt;/topics/i18n/index&gt;)
to redirect the user to an "on success" URL. The security check for these
redirects (namely django.utils.http.is_safe_url()) considered some numeric
URLs (e.g. http:999999999) "safe" when they shouldn't be.

Also, if a developer relies on is_safe_url() to provide safe redirect
targets and puts such a URL into a link, they could suffer from an XSS attack.

CVE-2017-7234: Open redirect vulnerability in django.views.static.serve()

A maliciously crafted URL to a Django site using the
:func:~django.views.static.serve view could redirect to any other domain. The
view no longer does any redirects as they don't provide any known, useful
functionality.

Note, however, that this view has always carried a warning that it is not
hardened for production use and should be used only as a development aid.

Bugfixes

  • Made admin's RelatedFieldWidgetWrapper use the wrapped widget's
    value_omitted_from_data() method (:ticket:27905).
  • Fixed model form default fallback for SelectMultiple
    (:ticket:27993).

===========================

1.10.6

===========================

March 1, 2017

Django 1.10.6 fixes several bugs in 1.10.5.

Bugfixes

  • Fixed ClearableFileInput’s "Clear" checkbox on model form fields where
    the model field has a default (:ticket:27805).
  • Fixed RequestDataTooBig and TooManyFieldsSent exceptions crashing
    rather than generating a bad request response (:ticket:27820).
  • Fixed a crash on Oracle and PostgreSQL when subtracting DurationField
    or IntegerField from DateField (:ticket:27828).
  • Fixed query expression date subtraction accuracy on PostgreSQL for
    differences larger than a month (:ticket:27856).
  • Fixed a GDALException raised by GDALClose on GDAL ≥ 2.0
    (:ticket:27479).

===========================

1.10.5

===========================

January 4, 2017

Django 1.10.5 fixes several bugs in 1.10.4.

Bugfixes

  • Fixed a crash in the debug view if request.user can't be retrieved, such
    as if the database is unavailable (:ticket:27567).
  • Fixed occasional missing plural forms in JavaScriptCatalog
    (:ticket:27418).
  • Fixed a regression in the timesince and timeuntil filters that caused
    incorrect results for dates in a leap year (:ticket:27637).
  • Fixed a regression where collectstatic overwrote newer files in remote
    storages (:ticket:27658).

===========================

1.10.4

===========================

December 1, 2016

Django 1.10.4 fixes several bugs in 1.10.3.

Bugfixes

  • Quoted the Oracle test user's password in queries to fix the "ORA-00922:
    missing or invalid option" error when the password starts with a number or
    special character (:ticket:27420).
  • Fixed incorrect app_label / model_name arguments for
    allow_migrate() in makemigrations migration consistency checks
    (:ticket:27461).
  • Made Model.delete(keep_parents=True) preserve parent reverse
    relationships in multi-table inheritance (:ticket:27407).
  • Fixed a QuerySet.update() crash on SQLite when updating a
    DateTimeField with an F() expression and a timedelta
    (:ticket:27544).
  • Prevented LocaleMiddleware from redirecting on URLs that should return
    404 when using prefix_default_language=False (:ticket:27402).
  • Prevented an unnecessary index from being created on an InnoDB ForeignKey
    when the field was added after the model was created (:ticket:27558).

===========================

1.10.3

===========================

November 1, 2016

Django 1.10.3 fixes two security issues and several bugs in 1.10.2.

User with hardcoded password created when running tests on Oracle

When running tests with an Oracle database, Django creates a temporary database
user. In older versions, if a password isn't manually specified in the database
settings TEST dictionary, a hardcoded password is used. This could allow
an attacker with network access to the database server to conn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant