Demo of wide Stable ABI compatibility.
Reason this release was yanked:
PEP 820 changed the ABI. Update for 3.15.0b1 coming later.
Project description
This minimal extension demoes wide Stable ABI compatibility.
Four wheels to cover 3 CPython versions × 3 operating systems × 2 GIL/free-threading variants.
It targets pre-abi3t build and install tools; see Caveats below.
CPython versions: 3.13, 3.14, and 3.15.0a8. (Note that the latter's ABI may change in 3.15.0b1.)
OSs: Linux (64-bit x86), macOS (universal2), Windows (64-bit x86) (Covering other CPU architectures is possible but would mostly just complicate this demo.)
Installation
python -m pip install abi3-abi3t-universal
Usage
There's one trivial function that increments and returns a number, mostly to demo module state.
>>> import abi3_abi3t_universal
>>> abi3_abi3t_universal.increment_value()
0
>>> abi3_abi3t_universal.increment_value()
1
>>> abi3_abi3t_universal.increment_value()
2
Caveats
CPython 3.15 is in Alpha; its ABI (and API) may change, making the released wheels crash.
As abi3t is not widely supported in build tools at
the time of writing, we use Setuptools, and reach into its internals
to select the appropriate tags.
Windows requires abi3 and abi3t wheels due to DLL linkage details;
this might be fixed in CPython 3.15.0 (but not in earlier versions).
As abi3t is not widely supported in CPython and install tools,
the built wheels are tagged a bit weirdly:
-
Linux:
- has: abi3_abi3t_universal-0.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl
- should be: abi3_abi3t_universal-0.1-cp313-abi3.abi3t-manylinux1_x86_64.manylinux_2_5_x86_64.whl
-
Mac:
- has: abi3_abi3t_universal-0.1-py3-none-macosx_10_15_universal2.whl
- should be: abi3_abi3t_universal-0.1-cp313-abi3.abi3t-macosx_10_15_universal2.whl
-
Windows GIL:
- has: abi3_abi3t_universal-0.1-cp313-abi3-win_amd64.whl
- which is right :)
-
Windows free-threading:
- has: abi3_abi3t_universal-0.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl
- should be: abi3_abi3t_universal-0.1-cp313-abi3t-win_amd64.whl
Licence
All my contributions are marked CC0 1.0, see LICENCE.CC0.
The file ft_compat.h copies/adapts definitions from CPython headers,
as necessary for compatibility.
I'm pretty sure that's fair use, but I'm not a lawyer.
Follow the PSF licence to be safe.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file abi3_abi3t_universal-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl.
File metadata
- Download URL: abi3_abi3t_universal-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce0cdbb245c434974b22bc721e29b9f67f157c7d81681f6ddb3a779b6ccd5aaa
|
|
| MD5 |
4385db5a4bda32ebacecf6fee9ccb287
|
|
| BLAKE2b-256 |
a41fc2756d39fe8ab97f24c1e40f392a58fc85639d084319ac7eec08c73b0ad5
|
Provenance
The following attestation bundles were made for abi3_abi3t_universal-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl:
Publisher:
workflow.yml on encukou/abi3-abi3t-universal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abi3_abi3t_universal-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl -
Subject digest:
ce0cdbb245c434974b22bc721e29b9f67f157c7d81681f6ddb3a779b6ccd5aaa - Sigstore transparency entry: 1361459156
- Sigstore integration time:
-
Permalink:
encukou/abi3-abi3t-universal@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/encukou
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Trigger Event:
push
-
Statement type:
File details
Details for the file abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl.
File metadata
- Download URL: abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3, macOS 10.15+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93fec24267916905a4f319a8b8db2637324fa25785afd89eb0bc91e7440e8a78
|
|
| MD5 |
5d52b3c36b6ef714cfe7095b6a13fcb3
|
|
| BLAKE2b-256 |
95e02a7193c3ced84b72415abb89c1c0d14b03dd710867505abea2b28ee61a13
|
Provenance
The following attestation bundles were made for abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl:
Publisher:
workflow.yml on encukou/abi3-abi3t-universal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl -
Subject digest:
93fec24267916905a4f319a8b8db2637324fa25785afd89eb0bc91e7440e8a78 - Sigstore transparency entry: 1361459163
- Sigstore integration time:
-
Permalink:
encukou/abi3-abi3t-universal@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/encukou
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Trigger Event:
push
-
Statement type:
File details
Details for the file abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl.
File metadata
- Download URL: abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl
- Upload date:
- Size: 11.6 kB
- Tags: CPython 3.13t, CPython 3.14t, CPython 3.15t, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d428a55efcd66c66aa360c331db9c002b5865fdcd2f4cc35865d0200ff4ee37b
|
|
| MD5 |
8b76b4800c173e2e8e66a3709de3e9aa
|
|
| BLAKE2b-256 |
22006d6ae78613dcc87a7b9dda4c7cc3d7a4daefbd39fe213f19fc41c0228696
|
Provenance
The following attestation bundles were made for abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl:
Publisher:
workflow.yml on encukou/abi3-abi3t-universal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl -
Subject digest:
d428a55efcd66c66aa360c331db9c002b5865fdcd2f4cc35865d0200ff4ee37b - Sigstore transparency entry: 1361459167
- Sigstore integration time:
-
Permalink:
encukou/abi3-abi3t-universal@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/encukou
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Trigger Event:
push
-
Statement type:
File details
Details for the file abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl.
File metadata
- Download URL: abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl
- Upload date:
- Size: 11.5 kB
- Tags: CPython 3.13+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c95d0aca9a67ce703057a91ea6a50cda1edf75b6140fd26cc1f67eced88b71c8
|
|
| MD5 |
fe754c8b111c2ba7f81b009666294a94
|
|
| BLAKE2b-256 |
037fbd03eddc737f8b130713a8966e3ddf93b9fa3ca7707ab0a0a8cbe71af39b
|
Provenance
The following attestation bundles were made for abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl:
Publisher:
workflow.yml on encukou/abi3-abi3t-universal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl -
Subject digest:
c95d0aca9a67ce703057a91ea6a50cda1edf75b6140fd26cc1f67eced88b71c8 - Sigstore transparency entry: 1361459173
- Sigstore integration time:
-
Permalink:
encukou/abi3-abi3t-universal@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/encukou
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@1fc737c1c6828a9669f5d6b279d867a6134b4073 -
Trigger Event:
push
-
Statement type: