bpo-23404: Update/sync What's New files for 3.6/3.5/2.7 (GH-7620) (GH-7621)
(cherry picked from commit 9d6171ded5
)
Co-authored-by: Ned Deily <nad@python.org>
This commit is contained in:
parent
a9846e0c70
commit
144493dd7f
|
@ -2367,6 +2367,18 @@ Port-Specific Changes: Mac OS X
|
|||
installation and a user-installed copy of the same version.
|
||||
(Changed by Ronald Oussoren; :issue:`4865`.)
|
||||
|
||||
.. versionchanged:: 2.7.13
|
||||
|
||||
As of 2.7.13, this change was removed.
|
||||
``/Library/Python/2.7/site-packages``, the site-packages directory
|
||||
used by the Apple-supplied system Python 2.7 is no longer appended to
|
||||
``sys.path`` for user-installed Pythons such as from the python.org
|
||||
installers. As of macOS 10.12, Apple changed how the system
|
||||
site-packages directory is configured, which could cause installation
|
||||
of pip components, like setuptools, to fail. Packages installed for
|
||||
the system Python will no longer be shared with user-installed
|
||||
Pythons. (:issue:`28440`)
|
||||
|
||||
Port-Specific Changes: FreeBSD
|
||||
-----------------------------------
|
||||
|
||||
|
@ -2558,6 +2570,21 @@ exemption allowing new ``-3`` warnings to be added in any Python 2.7
|
|||
maintenance release.
|
||||
|
||||
|
||||
Two new environment variables for debug mode
|
||||
--------------------------------------------
|
||||
|
||||
In debug mode, the ``[xxx refs]`` statistic is not written by default, the
|
||||
:envvar:`PYTHONSHOWREFCOUNT` environment variable now must also be set.
|
||||
(Contributed by Victor Stinner; :issue:`31733`.)
|
||||
|
||||
When Python is compiled with ``COUNT_ALLOC`` defined, allocation counts are no
|
||||
longer dumped by default anymore: the :envvar:`PYTHONSHOWALLOCCOUNT` environment
|
||||
variable must now also be set. Moreover, allocation counts are now dumped into
|
||||
stderr, rather than stdout. (Contributed by Victor Stinner; :issue:`31692`.)
|
||||
|
||||
.. versionadded:: 2.7.15
|
||||
|
||||
|
||||
PEP 434: IDLE Enhancement Exception for All Branches
|
||||
----------------------------------------------------
|
||||
|
||||
|
@ -2602,10 +2629,162 @@ with the first of those changes appearing in the Python 2.7.7 release.
|
|||
certificate store, the :class:`~ssl.SSLContext` class, and other
|
||||
features. (Contributed by Alex Gaynor and David Reid; :issue:`21308`.)
|
||||
|
||||
Refer to the "Version added: 2.7.9" notes in the module documentation for
|
||||
specific details.
|
||||
|
||||
* :func:`os.urandom` was changed to cache a file descriptor to ``/dev/urandom``
|
||||
instead of reopening ``/dev/urandom`` on every call. (Contributed by Alex
|
||||
Gaynor; :issue:`21305`.)
|
||||
|
||||
* :data:`hashlib.algorithms_guaranteed` and
|
||||
:data:`hashlib.algorithms_available` were backported from Python 3 to make
|
||||
it easier for Python 2 applications to select the strongest available hash
|
||||
algorithm. (Contributed by Alex Gaynor in :issue:`21307`)
|
||||
|
||||
|
||||
PEP 477: Backport ensurepip (PEP 453) to Python 2.7
|
||||
---------------------------------------------------
|
||||
|
||||
:pep:`477` approves the inclusion of the :pep:`453` ensurepip module and the
|
||||
improved documentation that was enabled by it in the Python 2.7 maintenance
|
||||
releases, appearing first in the Python 2.7.9 release.
|
||||
|
||||
|
||||
Bootstrapping pip By Default
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard
|
||||
cross-platform mechanism to bootstrap the pip installer into Python
|
||||
installations. The version of ``pip`` included with Python 2.7.9 is ``pip``
|
||||
1.5.6, and future 2.7.x maintenance releases will update the bundled version to
|
||||
the latest version of ``pip`` that is available at the time of creating the
|
||||
release candidate.
|
||||
|
||||
By default, the commands ``pip``, ``pipX`` and ``pipX.Y`` will be installed on
|
||||
all platforms (where X.Y stands for the version of the Python installation),
|
||||
along with the ``pip`` Python package and its dependencies.
|
||||
|
||||
For CPython :ref:`source builds on POSIX systems <building-python-on-unix>`,
|
||||
the ``make install`` and ``make altinstall`` commands do not bootstrap ``pip``
|
||||
by default. This behaviour can be controlled through configure options, and
|
||||
overridden through Makefile options.
|
||||
|
||||
On Windows and Mac OS X, the CPython installers now default to installing
|
||||
``pip`` along with CPython itself (users may opt out of installing it
|
||||
during the installation process). Window users will need to opt in to the
|
||||
automatic ``PATH`` modifications to have ``pip`` available from the command
|
||||
line by default, otherwise it can still be accessed through the Python
|
||||
launcher for Windows as ``py -m pip``.
|
||||
|
||||
As `discussed in the PEP`__, platform packagers may choose not to install
|
||||
these commands by default, as long as, when invoked, they provide clear and
|
||||
simple directions on how to install them on that platform (usually using
|
||||
the system package manager).
|
||||
|
||||
__ https://www.python.org/dev/peps/pep-0477/#disabling-ensurepip-by-downstream-distributors
|
||||
|
||||
|
||||
Documentation Changes
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As part of this change, the :ref:`installing-index` and
|
||||
:ref:`distributing-index` sections of the documentation have been
|
||||
completely redesigned as short getting started and FAQ documents. Most
|
||||
packaging documentation has now been moved out to the Python Packaging
|
||||
Authority maintained `Python Packaging User Guide
|
||||
<http://packaging.python.org>`__ and the documentation of the individual
|
||||
projects.
|
||||
|
||||
However, as this migration is currently still incomplete, the legacy
|
||||
versions of those guides remaining available as :ref:`install-index`
|
||||
and :ref:`distutils-index`.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:pep:`453` -- Explicit bootstrapping of pip in Python installations
|
||||
PEP written by Donald Stufft and Nick Coghlan, implemented by
|
||||
Donald Stufft, Nick Coghlan, Martin von Löwis and Ned Deily.
|
||||
|
||||
PEP 476: Enabling certificate verification by default for stdlib http clients
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
:pep:`476` updated :mod:`httplib` and modules which use it, such as
|
||||
:mod:`urllib2` and :mod:`xmlrpclib`, to now verify that the server
|
||||
presents a certificate which is signed by a Certificate Authority in the
|
||||
platform trust store and whose hostname matches the hostname being requested
|
||||
by default, significantly improving security for many applications. This
|
||||
change was made in the Python 2.7.9 release.
|
||||
|
||||
For applications which require the old previous behavior, they can pass an
|
||||
alternate context::
|
||||
|
||||
import urllib2
|
||||
import ssl
|
||||
|
||||
# This disables all verification
|
||||
context = ssl._create_unverified_context()
|
||||
|
||||
# This allows using a specific certificate for the host, which doesn't need
|
||||
# to be in the trust store
|
||||
context = ssl.create_default_context(cafile="/path/to/file.crt")
|
||||
|
||||
urllib2.urlopen("https://invalid-cert", context=context)
|
||||
|
||||
|
||||
PEP 493: HTTPS verification migration tools for Python 2.7
|
||||
----------------------------------------------------------
|
||||
|
||||
:pep:`493` provides additional migration tools to support a more incremental
|
||||
infrastructure upgrade process for environments containing applications and
|
||||
services relying on the historically permissive processing of server
|
||||
certificates when establishing client HTTPS connections. These additions were
|
||||
made in the Python 2.7.12 release.
|
||||
|
||||
These tools are intended for use in cases where affected applications and
|
||||
services can't be modified to explicitly pass a more permissive SSL context
|
||||
when establishing the connection.
|
||||
|
||||
For applications and services which can't be modified at all, the new
|
||||
``PYTHONHTTPSVERIFY`` environment variable may be set to ``0`` to revert an
|
||||
entire Python process back to the default permissive behaviour of Python 2.7.8
|
||||
and earlier.
|
||||
|
||||
For cases where the connection establishment code can't be modified, but the
|
||||
overall application can be, the new :func:`ssl._https_verify_certificates`
|
||||
function can be used to adjust the default behaviour at runtime.
|
||||
|
||||
|
||||
New ``make regen-all`` build target
|
||||
-----------------------------------
|
||||
|
||||
To simplify cross-compilation, and to ensure that CPython can reliably be
|
||||
compiled without requiring an existing version of Python to already be
|
||||
available, the autotools-based build system no longer attempts to implicitly
|
||||
recompile generated files based on file modification times.
|
||||
|
||||
Instead, a new ``make regen-all`` command has been added to force regeneration
|
||||
of these files when desired (e.g. after an initial version of Python has
|
||||
already been built based on the pregenerated versions).
|
||||
|
||||
More selective regeneration targets are also defined - see
|
||||
:source:`Makefile.pre.in` for details.
|
||||
|
||||
(Contributed by Victor Stinner in :issue:`23404`.)
|
||||
|
||||
.. versionadded:: 2.7.14
|
||||
|
||||
|
||||
Removal of ``make touch`` build target
|
||||
--------------------------------------
|
||||
|
||||
The ``make touch`` build target previously used to request implicit regeneration
|
||||
of generated files by updating their modification times has been removed.
|
||||
|
||||
It has been replaced by the new ``make regen-all`` target.
|
||||
|
||||
(Contributed by Victor Stinner in :issue:`23404`.)
|
||||
|
||||
.. versionchanged:: 2.7.14
|
||||
|
||||
.. ======================================================================
|
||||
|
||||
|
|
|
@ -2536,3 +2536,39 @@ Changes in the C API
|
|||
:c:member:`tp_as_async` slot. Refer to :ref:`coro-objects` for
|
||||
new types, structures and functions.
|
||||
|
||||
|
||||
Notable changes in Python 3.5.4
|
||||
===============================
|
||||
|
||||
New ``make regen-all`` build target
|
||||
-----------------------------------
|
||||
|
||||
To simplify cross-compilation, and to ensure that CPython can reliably be
|
||||
compiled without requiring an existing version of Python to already be
|
||||
available, the autotools-based build system no longer attempts to implicitly
|
||||
recompile generated files based on file modification times.
|
||||
|
||||
Instead, a new ``make regen-all`` command has been added to force regeneration
|
||||
of these files when desired (e.g. after an initial version of Python has
|
||||
already been built based on the pregenerated versions).
|
||||
|
||||
More selective regeneration targets are also defined - see
|
||||
:source:`Makefile.pre.in` for details.
|
||||
|
||||
(Contributed by Victor Stinner in :issue:`23404`.)
|
||||
|
||||
.. versionadded:: 3.5.4
|
||||
|
||||
|
||||
Removal of ``make touch`` build target
|
||||
--------------------------------------
|
||||
|
||||
The ``make touch`` build target previously used to request implicit regeneration
|
||||
of generated files by updating their modification times has been removed.
|
||||
|
||||
It has been replaced by the new ``make regen-all`` target.
|
||||
|
||||
(Contributed by Victor Stinner in :issue:`23404`.)
|
||||
|
||||
.. versionchanged:: 3.5.4
|
||||
|
||||
|
|
|
@ -2346,3 +2346,56 @@ There have been several major changes to the :term:`bytecode` in Python 3.6.
|
|||
* The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`STORE_ANNOTATION` opcodes
|
||||
have been added to support the new :term:`variable annotation` syntax.
|
||||
(Contributed by Ivan Levkivskyi in :issue:`27985`.)
|
||||
|
||||
|
||||
Notable changes in Python 3.6.2
|
||||
===============================
|
||||
|
||||
New ``make regen-all`` build target
|
||||
-----------------------------------
|
||||
|
||||
To simplify cross-compilation, and to ensure that CPython can reliably be
|
||||
compiled without requiring an existing version of Python to already be
|
||||
available, the autotools-based build system no longer attempts to implicitly
|
||||
recompile generated files based on file modification times.
|
||||
|
||||
Instead, a new ``make regen-all`` command has been added to force regeneration
|
||||
of these files when desired (e.g. after an initial version of Python has
|
||||
already been built based on the pregenerated versions).
|
||||
|
||||
More selective regeneration targets are also defined - see
|
||||
:source:`Makefile.pre.in` for details.
|
||||
|
||||
(Contributed by Victor Stinner in :issue:`23404`.)
|
||||
|
||||
.. versionadded:: 3.6.2
|
||||
|
||||
|
||||
Removal of ``make touch`` build target
|
||||
--------------------------------------
|
||||
|
||||
The ``make touch`` build target previously used to request implicit regeneration
|
||||
of generated files by updating their modification times has been removed.
|
||||
|
||||
It has been replaced by the new ``make regen-all`` target.
|
||||
|
||||
(Contributed by Victor Stinner in :issue:`23404`.)
|
||||
|
||||
.. versionchanged:: 3.6.2
|
||||
|
||||
|
||||
Notable changes in Python 3.6.4
|
||||
===============================
|
||||
|
||||
The ``PyExc_RecursionErrorInst`` singleton that was part of the public API
|
||||
has been removed as its members being never cleared may cause a segfault
|
||||
during finalization of the interpreter.
|
||||
(Contributed by Xavier de Gaye in :issue:`22898` and :issue:`30697`.)
|
||||
|
||||
|
||||
Notable changes in Python 3.6.5
|
||||
===============================
|
||||
|
||||
The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE``
|
||||
locale to the ``LC_NUMERIC`` locale in some cases.
|
||||
(Contributed by Victor Stinner in :issue:`31900`.)
|
||||
|
|
Loading…
Reference in New Issue