PEP 425 (tags) - mention wheel filename convention
This commit is contained in:
parent
81da2e17a9
commit
c70a54e10d
43
pep-0425.txt
43
pep-0425.txt
|
@ -64,6 +64,14 @@ platform tag
|
|||
For example, the tag py27-none-any indicates compatible with Python 2.7
|
||||
(any Python 2.7 implementation) with no abi requirement, on any platform.
|
||||
|
||||
Use
|
||||
===
|
||||
|
||||
The `wheel` built package format includes these tags in its filenames,
|
||||
of the form ``{distribution}-{version}(-{build tag})?-{python tag}-{abi
|
||||
tag}-{platform tag}.whl``. Other package formats may have their own
|
||||
conventions.
|
||||
|
||||
Details
|
||||
=======
|
||||
|
||||
|
@ -103,8 +111,7 @@ extension modules. For implementation-specific ABIs, the implementation
|
|||
is abbreviated in the same way as the Python Tag, e.g. `cp33d` would be
|
||||
the CPython 3.3 ABI with debugging.
|
||||
|
||||
The CPython stable ABI is `abi3` as in the shared library suffix, and
|
||||
is available starting with Python 3.2.
|
||||
The CPython stable ABI is `abi3` as in the shared library suffix.
|
||||
|
||||
Implementations with a very unstable ABI may use the first 6 bytes (as
|
||||
8 base64-encoded characters) of the SHA-256 hash of ther source code
|
||||
|
@ -135,19 +142,30 @@ For example, an installer running under CPython 3.3 on a linux_x86_64
|
|||
system might support::
|
||||
|
||||
1. cp33-cp33m-linux_x86_64
|
||||
2. cp33-none-linux_x86_64
|
||||
3. cp3-abi3-linux_x86_64
|
||||
2. cp33-abi3-linux_x86_64
|
||||
3. cp33-none-linux_x86_64
|
||||
4. cp33-none-any
|
||||
5. cp3-none-any
|
||||
6. py33-none-any
|
||||
7. py3-none-any
|
||||
6. cp32-none-any
|
||||
7. cp31-none-any
|
||||
8. cp30-none-any
|
||||
9. py33-none-any
|
||||
10. py3-none-any
|
||||
11. py32-none-any
|
||||
12. py31-none-any
|
||||
13. py30-none-any
|
||||
|
||||
A user could instruct their installer to fall back to building from an
|
||||
sdist more or less often by configuring this list of tags.
|
||||
The list is in order from most-preferred (a distribution with a
|
||||
compiled extension module, built for the current version of Python)
|
||||
to least-preferred (a pure-Python distribution built with an older
|
||||
version of Python). A user could instruct their installer to fall back
|
||||
to building from an sdist more or less often by configuring this list of
|
||||
tags; for example, a user could include only the `*-none-any` tags to only
|
||||
download built packages that advertise themselves as being pure Python.
|
||||
|
||||
Rarely there will be more than one supported built distribution for a
|
||||
particular version of a package. For example, a packager could release
|
||||
a package tagged `cp3-abi3-linux_x86_64` that contains an optional C
|
||||
a package tagged `cp33-abi3-linux_x86_64` that contains an optional C
|
||||
extension and the same distribution tagged `py3-none-any` that does not.
|
||||
The index of the tag in the supported tags list breaks the tie, and the
|
||||
package with the C extension is installed in preference to the package
|
||||
|
@ -176,6 +194,13 @@ by no Python implementation e.g. "cp33-cp31u-win64", so use it sparingly.
|
|||
FAQ
|
||||
===
|
||||
|
||||
What tags are used by default?
|
||||
Tools should use the most-preferred architecture dependent tag
|
||||
e.g. `cp33-cp33m-win32` or the most-preferred pure python tag
|
||||
e.g. `py33-none-any` by default. If the packager overrides the
|
||||
default it indicates that they intended to provide cross-Python
|
||||
compatibility.
|
||||
|
||||
Can I have a tag `py32+` to indicate a minimum Python minor release?
|
||||
No. Inspect the Trove classifiers to determine this level of
|
||||
cross-release compatibility. Similar to the announcements "beaglevote
|
||||
|
|
Loading…
Reference in New Issue