Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

abi3_abi3t_universal-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl (14.0 kB view details)

Uploaded Python 3manylinux: glibc 2.5+ x86-64

abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl (10.3 kB view details)

Uploaded Python 3macOS 10.15+ universal2 (ARM64, x86-64)

abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl (11.6 kB view details)

Uploaded CPython 3.13tCPython 3.14tCPython 3.15tWindows x86-64

abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl (11.5 kB view details)

Uploaded CPython 3.13+Windows x86-64

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

File hashes

Hashes for abi3_abi3t_universal-0.1.1-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ce0cdbb245c434974b22bc721e29b9f67f157c7d81681f6ddb3a779b6ccd5aaa
MD5 4385db5a4bda32ebacecf6fee9ccb287
BLAKE2b-256 a41fc2756d39fe8ab97f24c1e40f392a58fc85639d084319ac7eec08c73b0ad5

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for abi3_abi3t_universal-0.1.1-py3-none-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 93fec24267916905a4f319a8b8db2637324fa25785afd89eb0bc91e7440e8a78
MD5 5d52b3c36b6ef714cfe7095b6a13fcb3
BLAKE2b-256 95e02a7193c3ced84b72415abb89c1c0d14b03dd710867505abea2b28ee61a13

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl.

File metadata

File hashes

Hashes for abi3_abi3t_universal-0.1.1-cp313.cp314.cp315-cp313t.cp314t.cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 d428a55efcd66c66aa360c331db9c002b5865fdcd2f4cc35865d0200ff4ee37b
MD5 8b76b4800c173e2e8e66a3709de3e9aa
BLAKE2b-256 22006d6ae78613dcc87a7b9dda4c7cc3d7a4daefbd39fe213f19fc41c0228696

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for abi3_abi3t_universal-0.1.1-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c95d0aca9a67ce703057a91ea6a50cda1edf75b6140fd26cc1f67eced88b71c8
MD5 fe754c8b111c2ba7f81b009666294a94
BLAKE2b-256 037fbd03eddc737f8b130713a8966e3ddf93b9fa3ca7707ab0a0a8cbe71af39b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page