[Python-checkins] peps: PEP 425 (tags) - mention wheel filename convention
daniel.holth
python-checkins at python.org
Fri Oct 19 05:04:12 CEST 2012
http://hg.python.org/peps/rev/27cd594ef879
changeset: 4558:27cd594ef879
user: Daniel Holth <dholth at fastmail.fm>
date: Thu Oct 18 23:01:56 2012 -0400
summary:
PEP 425 (tags) - mention wheel filename convention
files:
pep-0425.txt | 43 +++++++++++++++++++++++++++++++--------
1 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/pep-0425.txt b/pep-0425.txt
--- a/pep-0425.txt
+++ b/pep-0425.txt
@@ -64,6 +64,14 @@
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 @@
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 @@
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 @@
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
--
Repository URL: http://hg.python.org/peps
More information about the Python-checkins
mailing list