PEP 665: outline a potential transition plan
This commit is contained in:
parent
79cddd5639
commit
991cc7a295
91
pep-0665.rst
91
pep-0665.rst
|
@ -647,6 +647,97 @@ they will very likely need a major version release which changes the
|
||||||
lock file format.
|
lock file format.
|
||||||
|
|
||||||
|
|
||||||
|
===============
|
||||||
|
Transition Plan
|
||||||
|
===============
|
||||||
|
|
||||||
|
In general, this PEP could be considered successful if:
|
||||||
|
|
||||||
|
1. Two pre-existing tools became lockers (e.g. `pip-tools`_, PDM_,
|
||||||
|
pip_ via ``pip freeze``).
|
||||||
|
1. Pip became an installer.
|
||||||
|
1. One major, non-Python-specific platform supported the file format
|
||||||
|
(e.g. a cloud provider).
|
||||||
|
|
||||||
|
This would show interoperability, usability, and programming
|
||||||
|
community/business acceptance.
|
||||||
|
|
||||||
|
In terms of a transition plan, there are potentially multiple steps
|
||||||
|
that could lead to this desired outcome. Below is a somewhat idealized
|
||||||
|
plan that would see this PEP being broadly used.
|
||||||
|
|
||||||
|
|
||||||
|
---------
|
||||||
|
Usability
|
||||||
|
---------
|
||||||
|
|
||||||
|
First, a ``pip freeze`` equivalent tool could be developed which
|
||||||
|
creates a lock file. While installed packages do not by themselves
|
||||||
|
provide enough information to statically create a lock file, a user
|
||||||
|
could provide local directories and index URLs to construct one. This
|
||||||
|
would then lead to lock files that are stricter than a requirements
|
||||||
|
file by limiting the lock file to the current platform. This would
|
||||||
|
also allow people to see whether their environment would be
|
||||||
|
reproducible.
|
||||||
|
|
||||||
|
Second, a stand-alone installer should be developed. As the
|
||||||
|
requirements on an installer are much simpler than what pip provides,
|
||||||
|
it should be reasonable to have an installer that is independently
|
||||||
|
developed.
|
||||||
|
|
||||||
|
Third, a tool to convert a pinned requirements file as emitted by
|
||||||
|
pip-tools could be developed. Much like the ``pip freeze`` equivalent
|
||||||
|
outlined above, some input from the user may be needed. But this tool
|
||||||
|
could act as a transitioning step for anyone who has an appropriate
|
||||||
|
requirements file. This could also act as a test before potentially
|
||||||
|
having pip-tools grow some ``--lockfile`` flag to use this PEP.
|
||||||
|
|
||||||
|
All of this could be required before the PEP transitions from
|
||||||
|
conditional acceptance to full acceptance (and give the community a
|
||||||
|
chance to test if this PEP is potentially useful).
|
||||||
|
|
||||||
|
|
||||||
|
----------------
|
||||||
|
Interoperability
|
||||||
|
----------------
|
||||||
|
|
||||||
|
At this point, the goal would be to increase interoperability between
|
||||||
|
tools.
|
||||||
|
|
||||||
|
First, pip would become an installer. By having the most widely used
|
||||||
|
installer support the format, people can innovate on the locker side
|
||||||
|
while knowing people will have the tools necessary to actually consume
|
||||||
|
a lock file.
|
||||||
|
|
||||||
|
Second, pip becomes a locker. Once again, pip's reach would make the
|
||||||
|
format accessible for the vast majority of Python users very quickly.
|
||||||
|
|
||||||
|
Third, a project with a pre-existing lock file format supports at
|
||||||
|
least exporting to the lock file format (e.g. PDM or Pyflow). This
|
||||||
|
would show that the format meets the needs of other projects.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
Acceptance
|
||||||
|
----------
|
||||||
|
|
||||||
|
With the tooling available throughout the community, acceptance would
|
||||||
|
be shown via those not exclusively tied to the Python community
|
||||||
|
supporting the file format based on what they believe their users
|
||||||
|
want.
|
||||||
|
|
||||||
|
First, tools that operate on requirements files like code editors
|
||||||
|
having equivalent support for lock files.
|
||||||
|
|
||||||
|
Second, consumers of requirements files like cloud providers would
|
||||||
|
also accept lock files.
|
||||||
|
|
||||||
|
At this point the PEP would have permeated out far enough to be on
|
||||||
|
par with requirements files in terms of general accpetance and
|
||||||
|
potentially more if projects had dropped their own lock files for this
|
||||||
|
PEP.
|
||||||
|
|
||||||
|
|
||||||
=====================
|
=====================
|
||||||
Security Implications
|
Security Implications
|
||||||
=====================
|
=====================
|
||||||
|
|
Loading…
Reference in New Issue