-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use introspection to generate wheel tags #190
Labels
enhancement
New feature or request
Comments
We should do both. Look at the wheel tags to decide if the stable ABI should be used, and use introspection to generate the tags. |
I'll have a look at implementing this. |
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 1, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 2, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 2, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 2, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 2, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 2, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 2, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 3, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 4, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, mesonbuild#189, mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 4, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 4, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 4, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 9, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 9, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 10, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 10, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 10, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 11, 2022
Use the wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 12, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 13, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 15, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 16, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
dnicolodi
added a commit
to dnicolodi/meson-python
that referenced
this issue
Nov 16, 2022
The extension modules filename suffixes do not contain enough information to correctly determine the wheel tags. Instead introspect the Python interpreter to derive the wheel tags. This is the same approach used by other PEP517 backends, most notably wheel. The wheel contents only to determine whether the wheel contains python ABI dependent modules or other platform dependent code. The packaging module is the reference wheel tags derivation implementation and it is used (or vendored) by most python packages dealing with wheels. However, the API provided by packaging is cumbersome to use for our purposes and, with the goal of merging this code into Meson in the future, it is good to avoid an additional dependency. Therefore, the tags derivation code is reimplemented. Tests are added to verify that the tags produced by meson-python agree with the ones produced by packaging to ensure that the two implementations will not diverge. Fixes mesonbuild#142, fixes mesonbuild#189, fixes mesonbuild#190.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In #189 it become clear that it is not really possible to map extension filenames to wheel tags in a robust way: the file names do not contain ABI tags. However, the python implementation which is running meson-python is the same as the one for which the extensions are being built. Therefore, we can introspect the interpreter to get the wheel tags. Using the
packaging
module seems the most straightforward way to do this.The only open question is how to decide to go for an implementation ABI tag or a stable ABI tag. I don't think that Meson python module has a way to generate extension modules for the stable ABI, so maybe this is not important right now. But the current meson-python has some support to auto-detect this, so maybe it should be supported somehow.
Should we keep validating the extension filename suffixes against the suffixes accepted by the Python interpreter? The list of accepted suffixes is provided in
importlib.machinery.EXTENSION_SUFFIXES
thus the check is easily implemented. Should deeper checks be done?The text was updated successfully, but these errors were encountered: