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
|
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.
|
(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
|
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
|
is abbreviated in the same way as the Python Tag, e.g. `cp33d` would be
|
||||||
the CPython 3.3 ABI with debugging.
|
the CPython 3.3 ABI with debugging.
|
||||||
|
|
||||||
The CPython stable ABI is `abi3` as in the shared library suffix, and
|
The CPython stable ABI is `abi3` as in the shared library suffix.
|
||||||
is available starting with Python 3.2.
|
|
||||||
|
|
||||||
Implementations with a very unstable ABI may use the first 6 bytes (as
|
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
|
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::
|
system might support::
|
||||||
|
|
||||||
1. cp33-cp33m-linux_x86_64
|
1. cp33-cp33m-linux_x86_64
|
||||||
2. cp33-none-linux_x86_64
|
2. cp33-abi3-linux_x86_64
|
||||||
3. cp3-abi3-linux_x86_64
|
3. cp33-none-linux_x86_64
|
||||||
4. cp33-none-any
|
4. cp33-none-any
|
||||||
5. cp3-none-any
|
5. cp3-none-any
|
||||||
6. py33-none-any
|
6. cp32-none-any
|
||||||
7. py3-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
|
The list is in order from most-preferred (a distribution with a
|
||||||
sdist more or less often by configuring this list of tags.
|
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
|
Rarely there will be more than one supported built distribution for a
|
||||||
particular version of a package. For example, a packager could release
|
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.
|
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
|
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
|
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
|
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?
|
Can I have a tag `py32+` to indicate a minimum Python minor release?
|
||||||
No. Inspect the Trove classifiers to determine this level of
|
No. Inspect the Trove classifiers to determine this level of
|
||||||
cross-release compatibility. Similar to the announcements "beaglevote
|
cross-release compatibility. Similar to the announcements "beaglevote
|
||||||
|
|
Loading…
Reference in New Issue