Compatibility Tags and the Stable API

I'm not sure how to interpret PEP 425 when it comes to packages containing C extension modules that use the limited Python API (PEP 384).
The Python v3.4 version of the limited API is used so should the compatibility tag be...
cp34-abi3-*
That would mean that the 'cp34' Python tag would have to be interpreted as a minimum (rather than exact) requirement.
Grateful for any clarification.
Phil

Correct. I have a pull request on wheel that does just that, and the next version of pip will be ready for it.
On Fri, Sep 9, 2016, 04:14 Phil Thompson phil@riverbankcomputing.com wrote:
I'm not sure how to interpret PEP 425 when it comes to packages containing C extension modules that use the limited Python API (PEP 384).
The Python v3.4 version of the limited API is used so should the compatibility tag be...
cp34-abi3-*
That would mean that the 'cp34' Python tag would have to be interpreted as a minimum (rather than exact) requirement.
Grateful for any clarification.
Phil _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig

Am I understanding this correctly? Even though the limited API is supposed to work on all CPython versions supporting the numbered API, I cannot do the compiling using a newer version (say 3.5) or it won't work with older ones (3.3, 3.4)?
09.09.2016, 14:00, Daniel Holth kirjoitti:
Correct. I have a pull request on wheel that does just that, and the next version of pip will be ready for it.
On Fri, Sep 9, 2016, 04:14 Phil Thompson <phil@riverbankcomputing.com mailto:phil@riverbankcomputing.com> wrote:
I'm not sure how to interpret PEP 425 when it comes to packages containing C extension modules that use the limited Python API (PEP 384). The Python v3.4 version of the limited API is used so should the compatibility tag be... cp34-abi3-* That would mean that the 'cp34' Python tag would have to be interpreted as a minimum (rather than exact) requirement. Grateful for any clarification. Phil _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org <mailto:Distutils-SIG@python.org> https://mail.python.org/mailman/listinfo/distutils-sig
Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig

On Sep 9, 2016, at 7:11 AM, Alex Grönholm alex.gronholm@nextday.fi wrote:
Am I understanding this correctly? Even though the limited API is supposed to work on all CPython versions supporting the numbered API, I cannot do the compiling using a newer version (say 3.5) or it won't work with older ones (3.3, 3.4)?
The Py_Limited_API can be either set to an on/off value (in which case it is effectively CPython>=3.2) or you can set it to the hex value of a specific version (in which case it is CPython>=thatversion). So you can compile a Py_Limited_API for older CPythons just fine, you’ll just need to appropriately set the Py_Limited_API value. The reason for this is so CPython can *add* new functions to the stable ABI (but not remove or modify in an ABI incompatible way). So if you use a new to the ABI function, you’ll need a newer minimum.
— Donald Stufft

On 9 Sep 2016, at 12:00 pm, Daniel Holth dholth@gmail.com wrote:
Correct. I have a pull request on wheel that does just that, and the next version of pip will be ready for it.
Is there a release date for that version of pip? There's no point in me making releases that can't be installed.
Phil
On Fri, Sep 9, 2016, 04:14 Phil Thompson phil@riverbankcomputing.com wrote: I'm not sure how to interpret PEP 425 when it comes to packages containing C extension modules that use the limited Python API (PEP 384).
The Python v3.4 version of the limited API is used so should the compatibility tag be...
cp34-abi3-*
That would mean that the 'cp34' Python tag would have to be interpreted as a minimum (rather than exact) requirement.
Grateful for any clarification.
Phil _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig

Apologies for pestering...
Is there any more information about this?
I have cp34-abi3 wheels ready for release (ie. Python 3.4 or later) but they can't be installed with pip3.5. I could release them as cp35-abi3 but that will become a pain with the release of Python v3.6.
Thanks, Phil
On 9 Sep 2016, at 12:28 pm, Phil Thompson phil@riverbankcomputing.com wrote:
On 9 Sep 2016, at 12:00 pm, Daniel Holth dholth@gmail.com wrote:
Correct. I have a pull request on wheel that does just that, and the next version of pip will be ready for it.
Is there a release date for that version of pip? There's no point in me making releases that can't be installed.
Phil
On Fri, Sep 9, 2016, 04:14 Phil Thompson phil@riverbankcomputing.com wrote: I'm not sure how to interpret PEP 425 when it comes to packages containing C extension modules that use the limited Python API (PEP 384).
The Python v3.4 version of the limited API is used so should the compatibility tag be...
cp34-abi3-*
That would mean that the 'cp34' Python tag would have to be interpreted as a minimum (rather than exact) requirement.
Grateful for any clarification.
Phil

You could manually change the tag to cp34.cp35.cp36-abi3 . The current version pip running on those 3 versions of Python should recognize that tag.
On Tue, Sep 27, 2016 at 1:16 PM Phil Thompson phil@riverbankcomputing.com wrote:
Apologies for pestering...
Is there any more information about this?
I have cp34-abi3 wheels ready for release (ie. Python 3.4 or later) but they can't be installed with pip3.5. I could release them as cp35-abi3 but that will become a pain with the release of Python v3.6.
Thanks, Phil
On 9 Sep 2016, at 12:28 pm, Phil Thompson phil@riverbankcomputing.com
wrote:
On 9 Sep 2016, at 12:00 pm, Daniel Holth dholth@gmail.com wrote:
Correct. I have a pull request on wheel that does just that, and the
next version of pip will be ready for it.
Is there a release date for that version of pip? There's no point in me
making releases that can't be installed.
Phil
On Fri, Sep 9, 2016, 04:14 Phil Thompson phil@riverbankcomputing.com
wrote:
I'm not sure how to interpret PEP 425 when it comes to packages
containing C extension modules that use the limited Python API (PEP 384).
The Python v3.4 version of the limited API is used so should the
compatibility tag be...
cp34-abi3-*
That would mean that the 'cp34' Python tag would have to be interpreted
as a minimum (rather than exact) requirement.
Grateful for any clarification.
Phil
Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig
participants (4)
-
Alex Grönholm
-
Daniel Holth
-
Donald Stufft
-
Phil Thompson