PEP 739: specify how to handle conflicting installs#4889
PEP 739: specify how to handle conflicting installs#4889FFY00 wants to merge 1 commit intopython:mainfrom
Conversation
Signed-off-by: Filipe Laíns <lains@riseup.net>
|
(I've added the checklist to the PR description.) This is an accepted PEP, so needs SC approval:
https://peps.python.org/pep-0001/#pep-maintenance Please can you ask the SC about this change? |
|
@pfmoore, per python/steering-council#341 and python/steering-council#343, could you make a decision on this? Since the 3.15 feature freeze is just around the corner, I really don't want to have to wait for the Packaging Council to be up to speed. |
|
There's one edge case that I'd like to clarify before accepting. Suppose that a distribution has two Python builds that both get installed into the same prefix, but only one is actually installed by the user. From a strict reading, that one installation would need to be named It's arguable that the "UNLESS unfeasible due to technical limitations" exclusion applies here, and the potential to install two builds is considered enough of a technical limitation. But if it's too easy to justify using a different name, that dilutes the benefit of having an easily discoverable standard name for common cases, so allowing that could be a bad idea. Could you update the wording to clarify the intent in this case, please? |
Could you explain the meaning here? Does this mean: installed manually with tools such as (In this case, for operating systems like Debian, the case in question is not possible: the package manager owns /usr, and the user can use /usr/local or /opt for manual local installs) |
|
What I mean is, suppose Debian has A strict reading of the PEP implies that the file should be called The likely answer is that "technical reasons" apply here, so the files should be something like |
|
The free-threading case is one case (and still in Debian's future), but practically right now the there are two other clashes: debug builds and multiarch. Fundamentally the issue is that Debian installs multiple different builds of the same Python version, to the same tree. They can share For multiarch:
Fundamentally, you can't have two files with the same name with different contents. If each build needs its own file (and they do, because the file documents details of the Python interpreter like architecture and ABI flags), then they have to be named differently. We are currently working around this by calling our build-details files |
PEP 123: Summary of changes)📚 Documentation preview 📚: https://pep-previews--4889.org.readthedocs.build/