PEP 453 updates

- remove proposal to change the script installation directory on
  Windows due to the backwards incompatility issues pointed out
  by Paul Moore
- include an explicit requirement to resolve the requests
  certificate management issues prior to beta 2
- cleaner formatting of the integration timeline
This commit is contained in:
Nick Coghlan 2013-10-20 15:00:20 +10:00
parent a4ec9acf45
commit e83a58638e
1 changed files with 57 additions and 30 deletions

View File

@ -344,6 +344,11 @@ Only users that choose to use ``pip`` to communicate with PyPI will
need to pay attention to the additional security considerations that come
with doing so.
However, the core CPython team will also assist with reviewing and
resolving the `certificate update management issue
<https://github.com/kennethreitz/requests/issues/1659>`__ currently
affecting the ``requests`` project (and hence ``pip``) [#cert-verification]_.
Reliability considerations
--------------------------
@ -408,44 +413,49 @@ Integration timeline
If this PEP is accepted, the proposed time frame for integration of ``pip``
into the CPython release is as follows:
* as soon as possible
* as soon as possible after the release of 3.4.0 alpha 4
Documentation updated and ``ensurepip`` implemented based on a pre-release
version of ``pip`` 1.5.
* Documentation updated and ``ensurepip`` implemented based on a
pre-release version of ``pip`` 1.5.
All other proposed functional changes for Python 3.4 implemented,
* All other proposed functional changes for Python 3.4 implemented,
including the installer updates to invoke ``ensurepip``.
* by November 20th (3 days prior to the scheduled date of 3.4.0 beta 1)
``ensurepip`` updated to use a beta release of ``pip`` 1.5.
* ``ensurepip`` updated to use a ``pip`` 1.5 release candidate.
PEP 101 updated to cover ensuring the bundled version of ``pip`` is up
* PEP 101 updated to cover ensuring the bundled version of ``pip`` is up
to date.
* by November 24th (scheduled date of 3.4.0 beta 1)
As with any other new feature, all proposed functional changes for
* As with any other new feature, all proposed functional changes for
Python 3.4 must be implemented prior to the beta feature freeze.
* by December 29th (1 week prior to the scheduled date of 3.4.0 beta 2)
``ensurepip`` updated to the final release of pip 1.5
* ``requests`` certificate management issue resolved
* ``ensurepip`` updated to the final release of ``pip`` 1.5, or a
subsequent maintenance release (including a suitably updated vendored
copy of ``requests``)
(See PEP 429 for the current official scheduled dates of each release. Dates
listed above are accurate as of October 15th.)
listed above are accurate as of October 20th, 2013.)
If there is no final release of ``pip`` 1.5 available by one week before the
scheduled Python 3.4 beta 2 release, then implementation of this PEP will
be deferred to Python 3.5. Note that this scenario is unlikely - the
tentative date for the ``pip`` 1.5 release is currently December 1st.
If there is no final or maintenance release of ``pip`` 1.5 with a suitable
updated version of ``requests`` available by one week before the scheduled
Python 3.4 beta 2 release, then implementation of this PEP will
be deferred to Python 3.5. Note that this scenario is considered unlikely -
the tentative date for the ``pip`` 1.5 release is currently December 1st.
In future CPython releases, this kind of coordinated scheduling shouldn't be
needed: the CPython release manager will be able to just update to the latest
released version of ``pip``. However, in this case, some fixes are needed in
``pip`` in order to allow the bundling to work correctly, so the ``pip`` 1.5
release cycle needs to be properly aligned with the CPython 3.4 beta
releases.
``pip`` in order to allow the bundling to work correctly, and the
certificate update mechanism for ``requests`` needs to be improved, so the
``pip`` 1.5 release cycle needs to be properly aligned with the CPython 3.4
beta releases.
Proposed CLI
@ -688,20 +698,16 @@ Script Execution on Windows
While the Windows installer was updated in Python 3.3 to optionally
make ``python`` available on the PATH, no such change was made to
include the Scripts directory. Independently of this PEP, a proposal has
also been made to rename the ``Tools\Scripts`` subdirectory to ``bin`` in
order to improve consistency with the typical script installation directory
names on \*nix systems.
include the script installation directory returned by
``sysconfig.get_path("scripts")``.
Accordingly, in addition to adding the option to extract and install ``pip``
during installation, this PEP proposes that the Windows installer (and
``sysconfig``) in Python 3.4 and later be updated to:
during installation, this PEP proposes that the Windows installer in
Python 3.4 and later be updated to also add the path returned by
``sysconfig.get_path("scripts")`` to the Windows PATH when the PATH
modification option is enabled during installation
- install scripts to PythonXY\bin rather than PythonXY\Tools\Scripts
- add PythonXY\bin to the Windows PATH (in addition to PythonXY) when the
PATH modification option is enabled during installation
Note that these changes will only be available in Python 3.4 and later.
Note that this change will only be available in Python 3.4 and later.
This means that, for Python 3.3, the most reliable way to invoke pip globally
on Windows (without tinkering manually with PATH) will still remain
@ -867,6 +873,21 @@ or can be licensed at all.
Appendix: Rejected Proposals
============================
Changing the name of the scripts directory on Windows
-----------------------------------------------------
Earlier versions of this PEP proposed changing the name of the script
installation directory on Windows from "Scripts" to "bin" in order to
improve the cross-platform consistency of the virtual environments created
by ``pyvenv``.
However, Paul Moore determined that this change was likely backwards
incompatible with cross-version Windows installers created with previous
versions of Python, so the change has been removed from this PEP
[#windows-incompatibility]_.
Including ensurepip in Python 2.7, and 3.3
------------------------------------------
@ -1006,6 +1027,12 @@ References
.. [5] Discussion thread 5 (python-dev)
(https://mail.python.org/pipermail/python-dev/2013-September/128894.html)
.. [#cert-verification] pip/requests certificate management concerns
(https://mail.python.org/pipermail/python-dev/2013-October/129755.html)
.. [#windows-incompatibility] Windows installer compatibility concerns
(https://mail.python.org/pipermail/distutils-sig/2013-October/022855.html)
.. [#ubuntu] `Ubuntu <http://www.ubuntu.com/>`
.. [#debian] `Debian <http://www.debian.org>`
.. [#fedora] `Fedora <https://fedoraproject.org/>`