Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
9d6171de
Commit
9d6171de
authored
Jun 11, 2018
by
Ned Deily
Committed by
GitHub
Jun 11, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-23404: Update/sync What's New files for 3.6/3.5/2.7 (GH-7620)
parent
9d6d06e8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
268 additions
and
0 deletions
+268
-0
Doc/whatsnew/2.7.rst
Doc/whatsnew/2.7.rst
+179
-0
Doc/whatsnew/3.5.rst
Doc/whatsnew/3.5.rst
+36
-0
Doc/whatsnew/3.6.rst
Doc/whatsnew/3.6.rst
+53
-0
No files found.
Doc/whatsnew/2.7.rst
View file @
9d6171de
...
...
@@ -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
.. ======================================================================
...
...
Doc/whatsnew/3.5.rst
View file @
9d6171de
...
...
@@ -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
Doc/whatsnew/3.6.rst
View file @
9d6171de
...
...
@@ -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`.)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment