.. bpo: 43434
.. date: 2021-05-02-17-50-23
.. nonce: cy7xz6
.. release date: 2021-05-03
.. section: Security

Creating a :class:`sqlite3.Connection` object now also produces a
``sqlite3.connect`` :ref:`auditing event <auditing>`. Previously this event
was only produced by :func:`sqlite3.connect` calls. Patch by Erlend E.
Aasland.

..

.. bpo: 43472
.. date: 2021-04-21-22-53-31
.. nonce: gjLBTb
.. section: Security

Ensures interpreter-level audit hooks receive the
``cpython.PyInterpreterState_New`` event when called through the
``_xxsubinterpreters`` module.

..

.. bpo: 43075
.. date: 2021-01-31-05-28-14
.. nonce: DoAXqO
.. section: Security

Fix Regular Expression Denial of Service (ReDoS) vulnerability in
:class:`urllib.request.AbstractBasicAuthHandler`.  The ReDoS-vulnerable
regex has quadratic worst-case complexity and it allows cause a denial of
service when identifying crafted invalid RFCs. This ReDoS issue is on the
client side and needs remote attackers to control the HTTP server.

..

.. bpo: 43105
.. date: 2021-03-31-20-35-11
.. nonce: PBVmHm
.. section: Core and Builtins

Importlib now resolves relative paths when creating module spec objects from
file locations.

..

.. bpo: 42924
.. date: 2021-01-13-14-06-01
.. nonce: _WS1Ok
.. section: Core and Builtins

Fix ``bytearray`` repetition incorrectly copying data from the start of the
buffer, even if the data is offset within the buffer (e.g. after reassigning
a slice at the start of the ``bytearray`` to a shorter byte string).

..

.. bpo: 43993
.. date: 2021-04-30-19-23-45
.. nonce: T7_yoq
.. section: Library

Update bundled pip to 21.1.1.

..

.. bpo: 43937
.. date: 2021-04-25-13-34-13
.. nonce: isx95l
.. section: Library

Fixed the :mod:`turtle` module working with non-default root window.

..

.. bpo: 43930
.. date: 2021-04-24-14-23-07
.. nonce: R7ah0m
.. section: Library

Update bundled pip to 21.1 and setuptools to 56.0.0

..

.. bpo: 43920
.. date: 2021-04-23-11-54-38
.. nonce: cJMQ2D
.. section: Library

OpenSSL 3.0.0: :meth:`~ssl.SSLContext.load_verify_locations` now returns a
consistent error message when cadata contains no valid certificate.

..

.. bpo: 43607
.. date: 2021-04-22-22-39-58
.. nonce: 7IYDkG
.. section: Library

:mod:`urllib` can now convert Windows paths with ``\\?\`` prefixes into URL
paths.

..

.. bpo: 43284
.. date: 2021-04-21-14-50-57
.. nonce: 2QZn2T
.. section: Library

platform.win32_ver derives the windows version from
sys.getwindowsversion().platform_version which in turn derives the version
from kernel32.dll (which can be of a different version than Windows itself).
Therefore change the platform.win32_ver to determine the version using the
platform module's _syscmd_ver private function to return an accurate
version.

..

.. bpo: 42248
.. date: 2021-04-11-21-10-57
.. nonce: pedB1E
.. section: Library

[Enum] ensure exceptions raised in ``_missing__`` are released

..

.. bpo: 43799
.. date: 2021-04-10-11-35-50
.. nonce: 1iV4pX
.. section: Library

OpenSSL 3.0.0: define ``OPENSSL_API_COMPAT`` 1.1.1 to suppress deprecation
warnings. Python requires OpenSSL 1.1.1 APIs.

..

.. bpo: 43794
.. date: 2021-04-09-16-14-22
.. nonce: -1XPDH
.. section: Library

Add :data:`ssl.OP_IGNORE_UNEXPECTED_EOF` constants (OpenSSL 3.0.0)

..

.. bpo: 43789
.. date: 2021-04-09-14-08-03
.. nonce: eaHlAm
.. section: Library

OpenSSL 3.0.0: Don't call the password callback function a second time when
first call has signaled an error condition.

..

.. bpo: 43788
.. date: 2021-04-09-12-08-01
.. nonce: YsvInM
.. section: Library

The header files for :mod:`ssl` error codes are now OpenSSL
version-specific. Exceptions will now show correct reason and library codes.
The ``make_ssl_data.py`` script has been rewritten to use OpenSSL's text
file with error codes.

..

.. bpo: 43655
.. date: 2021-04-04-20-51-19
.. nonce: LwGy8R
.. section: Library

:mod:`tkinter` dialog windows are now recognized as dialogs by window
managers on macOS and X Window.

..

.. bpo: 43534
.. date: 2021-03-18-15-46-08
.. nonce: vPE9Us
.. section: Library

:func:`turtle.textinput` and :func:`turtle.numinput` create now a transient
window working on behalf of the canvas window.

..

.. bpo: 43522
.. date: 2021-03-16-22-37-32
.. nonce: dhNwOu
.. section: Library

Fix problem with :attr:`~ssl.SSLContext.hostname_checks_common_name`.
OpenSSL does not copy hostflags from *struct SSL_CTX* to *struct SSL*.

..

.. bpo: 42967
.. date: 2021-03-11-00-31-41
.. nonce: 2PeQRw
.. section: Library

Allow :class:`bytes` ``separator`` argument in ``urllib.parse.parse_qs`` and
``urllib.parse.parse_qsl`` when parsing :class:`str` query strings.
Previously, this raised a ``TypeError``.

..

.. bpo: 43176
.. date: 2021-02-09-07-24-29
.. nonce: bocNQn
.. section: Library

Fixed processing of a dataclass that inherits from a frozen dataclass with
no fields.  It is now correctly detected as an error.

..

.. bpo: 34463
.. date: 2020-12-22-22-51-48
.. nonce: TUD8V5
.. section: Library

Fixed discrepancy between :mod:`traceback` and the interpreter in formatting
of SyntaxError with lineno not set (:mod:`traceback` was changed to match
interpreter).

..

.. bpo: 41735
.. date: 2020-09-07-21-51-17
.. nonce: NKqGKy
.. section: Library

Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin.

..

.. bpo: 26053
.. date: 2020-09-01-10-12-13
.. nonce: hXikw_
.. section: Library

Fixed bug where the :mod:`pdb` interactive run command echoed the args from
the shell command line, even if those have been overridden at the pdb
prompt.

..

.. bpo: 36470
.. date: 2020-06-13-23-33-32
.. nonce: oi6Kdb
.. section: Library

Fix dataclasses with ``InitVar``\s and :func:`~dataclasses.replace()`. Patch
by Claudiu Popa.

..

.. bpo: 28577
.. date: 2020-03-02-23-52-38
.. nonce: EK91ae
.. section: Library

The hosts method on 32-bit prefix length IPv4Networks and 128-bit prefix
IPv6Networks now returns a list containing the single Address instead of an
empty list.

..

.. bpo: 32745
.. date: 2018-08-09-23-47-10
.. nonce: iQi9hI
.. section: Library

Fix a regression in the handling of ctypes' :data:`ctypes.c_wchar_p` type:
embedded null characters would cause a :exc:`ValueError` to be raised. Patch
by Zackery Spytz.

..

.. bpo: 43959
.. date: 2021-04-27-22-22-22
.. nonce: n2261q
.. section: Documentation

The documentation on the PyContextVar C-API was clarified.

..

.. bpo: 43938
.. date: 2021-04-25-22-44-27
.. nonce: nC660q
.. section: Documentation

Update dataclasses documentation to express that FrozenInstanceError is
derived from AttributeError.

..

.. bpo: 43739
.. date: 2021-04-06-07-05-49
.. nonce: L4HjiX
.. section: Documentation

Fixing the example code in Doc/extending/extending.rst to declare and
initialize the pmodule variable to be of the right type.

..

.. bpo: 43842
.. date: 2021-04-16-14-07-40
.. nonce: w60GAH
.. section: Tests

Fix a race condition in the SMTP test of test_logging. Don't close a file
descriptor (socket) from a different thread while asyncore.loop() is polling
the file descriptor. Patch by Victor Stinner.

..

.. bpo: 43811
.. date: 2021-04-12-11-14-28
.. nonce: vGNbnD
.. section: Tests

Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up
testing.

..

.. bpo: 43791
.. date: 2021-04-09-15-10-38
.. nonce: 4KxiXK
.. section: Tests

OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. Tests
are failing with TLSV1_ALERT_INTERNAL_ERROR.

..

.. bpo: 35306
.. date: 2021-04-22-20-39-49
.. nonce: F0Cg6X
.. section: Windows

Avoid raising errors from :meth:`pathlib.Path.exists()` when passed an
invalid filename.

..

.. bpo: 38822
.. date: 2021-04-22-19-49-20
.. nonce: jgdPmq
.. section: Windows

Fixed :func:`os.stat` failing on inaccessible directories with a trailing
slash, rather than falling back to the parent directory's metadata. This
implicitly affected :func:`os.path.exists` and :func:`os.path.isdir`.

..

.. bpo: 26227
.. date: 2021-04-21-23-37-34
.. nonce: QMY_eA
.. section: Windows

Fixed decoding of host names in :func:`socket.gethostbyaddr` and
:func:`socket.gethostbyname_ex`.

..

.. bpo: 43745
.. date: 2021-04-06-12-27-33
.. nonce: rdKNda
.. section: Windows

Actually updates Windows release to OpenSSL 1.1.1k. Earlier releases were
mislabelled and actually included 1.1.1i again.

..

.. bpo: 43492
.. date: 2021-03-15-11-34-33
.. nonce: AsYnVX
.. section: Windows

Upgrade Windows installer to use SQLite 3.35.5.

..

.. bpo: 44009
.. date: 2021-05-02-03-45-30
.. nonce: uvhmlh
.. section: macOS

Provide "python3.x-intel64" executable to allow reliably forcing macOS
universal2 framework builds to run under Rosetta 2 Intel-64 emulation on
Apple Silicon Macs.  This can be useful for testing or when universal2
wheels are not yet available.

..

.. bpo: 41100
.. date: 2021-04-10-17-01-18
.. nonce: N9FhqU
.. section: macOS

As of 3.8.10, Python now supports building and running on macOS 11 (Big Sur)
and on Apple Silicon Macs (based on the ``ARM64`` architecture). A new
universal build variant, ``universal2``, is also available to natively
support both ``ARM64`` and ``Intel 64`` in one set of executables. This
backport from Python 3.9 does not include support for "weaklinking"; to
support a range of macOS versions, continue to target for and build on the
oldest version in the range; for 3.8.x, the ``universal2`` variant is only
useful on macOS 11 or later.

..

.. bpo: 43492
.. date: 2021-03-15-11-32-23
.. nonce: 1ZRcV9
.. section: macOS

Update macOS installer to use SQLite 3.35.4.

..

.. bpo: 43655
.. date: 2021-04-04-20-52-07
.. nonce: HSyaKH
.. section: IDLE

IDLE dialog windows are now recognized as dialogs by window managers on
macOS and X Window.

..

.. bpo: 43962
.. date: 2021-04-28-13-13-07
.. nonce: 9Jzs5X
.. section: C API

_PyInterpreterState_IDIncref() now calls _PyInterpreterState_IDInitref() and
always increments id_refcount. Previously, calling
_xxsubinterpreters.get_current() could create an id_refcount inconsistency
when a _xxsubinterpreters.InterpreterID object was deallocated. Patch by
Victor Stinner.
