Commit 1be1d002 authored by Jason Madden's avatar Jason Madden

Preparing release 20.6.0

parent 0a538795
......@@ -6,6 +6,51 @@
.. towncrier release notes start
20.6.0 (2020-06-06)
===================
Features
--------
- Add ``gevent.selectors`` containing ``GeventSelector``. This selector
implementation uses gevent details to attempt to reduce overhead when
polling many file descriptors, only some of which become ready at any
given time.
This is monkey-patched as ``selectors.DefaultSelector`` by default.
This is available on Python 2 if the ``selectors2`` backport is
installed. (This backport is installed automatically using the
``recommended`` extra.) When monkey-patching, ``selectors`` is made
available as an alias to this module.
See :issue:`1532`.
- Depend on greenlet >= 0.4.16. This is required for CPython 3.9 and 3.10a0.
See :issue:`1627`.
- Add support for Python 3.9.
No binary wheels are available yet, however.
See :issue:`1628`.
Bugfixes
--------
- ``gevent.socket.create_connection`` and
``gevent.socket.socket.connect`` no longer ignore IPv6 scope IDs.
Any IP address (IPv4 or IPv6) is no longer subject to an extra call to
``getaddrinfo``. Depending on the resolver in use, this is likely to
change the number and order of greenlet switches. (On Windows, in
particular test cases when there are no other greenlets running, it has
been observed to lead to ``LoopExit`` in scenarios that didn't produce
that before.)
See :issue:`1634`.
----
20.5.2 (2020-05-28)
===================
......
Add ``gevent.selectors`` containing ``GeventSelector``. This selector
implementation uses gevent details to attempt to reduce overhead when
polling many file descriptors, only some of which become ready at any
given time.
This is monkey-patched as ``selectors.DefaultSelector`` by default.
This is available on Python 2 if the ``selectors2`` backport is
installed. (This backport is installed automatically using the
``recommended`` extra.) When monkey-patching, ``selectors`` is made
available as an alias to this module.
Depend on greenlet >= 0.4.16. This is required for CPython 3.9 and 3.10a0.
Add support for Python 3.9.
No binary wheels are available yet, however.
``gevent.socket.create_connection`` and
``gevent.socket.socket.connect`` no longer ignore IPv6 scope IDs.
Any IP address (IPv4 or IPv6) is no longer subject to an extra call to
``getaddrinfo``. Depending on the resolver in use, this is likely to
change the number and order of greenlet switches. (On Windows, in
particular test cases when there are no other greenlets running, it has
been observed to lead to ``LoopExit`` in scenarios that didn't produce
that before.)
......@@ -27,7 +27,7 @@ version_info = _version_info(20, 0, 0, 'dev', 0) # XXX: Remove me
#: Use ``pkg_resources.parse_version(__version__)`` or
#: ``packaging.version.Version(__version__)`` to get a machine-usable
#: value.
__version__ = '20.5.3.dev0'
__version__ = '20.6.0'
__all__ = [
......
......@@ -254,7 +254,7 @@ class socket(_socketcommon.SocketMixin):
"""
Connect to *address*.
.. versionchanged:: NEXT
.. versionchanged:: 20.6.0
If the host part of the address includes an IPv6 scope ID,
it will be used instead of ignored, if the platform supplies
:func:`socket.inet_pton`.
......
......@@ -392,7 +392,7 @@ class socket(_socketcommon.SocketMixin):
"""
Connect to *address*.
.. versionchanged:: NEXT
.. versionchanged:: 20.6.0
If the host part of the address includes an IPv6 scope ID,
it will be used instead of ignored, if the platform supplies
:func:`socket.inet_pton`.
......
......@@ -1056,7 +1056,7 @@ def patch_selectors(aggressive=True):
In :func:`patch_all`, the *select* argument controls both this function
and :func:`patch_select`.
.. versionadded:: NEXT
.. versionadded:: 20.6.0
"""
try:
_check_availability('selectors')
......
......@@ -1389,7 +1389,7 @@ class WSGIServer(StreamServer):
.. versionchanged:: 1.1a3
Add support for passing :class:`logging.Logger` objects to the ``log`` and
``error_log`` arguments.
.. versionchanged:: NEXT
.. versionchanged:: 20.6.0
Passing a ``handle`` kwarg to the constructor is now officially deprecated.
"""
......
......@@ -8,7 +8,7 @@ This module provides the same API as the selectors defined in :mod:`selectors`.
On Python 2, this module is only available if the `selectors2
<https://pypi.org/project/selectors2/>`_ backport is installed.
.. versionadded:: NEXT
.. versionadded:: 20.6.0
"""
from __future__ import absolute_import
from __future__ import division
......
......@@ -76,7 +76,7 @@ def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, source_address=N
address before making the connection. A host of '' or port 0 tells
the OS to use the default.
.. versionchanged:: NEXT
.. versionchanged:: 20.6.0
If the host part of the address includes an IPv6 scope ID,
it will be used instead of ignored, if the platform supplies
:func:`socket.inet_pton`.
......
......@@ -587,7 +587,7 @@ class Popen(object):
Under Python 2, ``restore_signals`` defaults to ``False``. Previously it
defaulted to ``True``, the same as it did in Python 3.
.. versionchanged:: NEXT
.. versionchanged:: 20.6.0
Add the *group*, *extra_groups*, *user*, and *umask* arguments. These
were added to Python 3.9, but are available in any gevent version, provided
the underlying platform support is present.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment