From ee86141877fae972f5cf5073423187901684ff40 Mon Sep 17 00:00:00 2001 From: Antonio Borrero Granell Date: Wed, 11 Mar 2026 10:35:14 +0100 Subject: [PATCH 1/5] Enable abi3 stable ABI for Python 3.11+ compatibility Use PyO3's abi3-py311 feature to produce a single wheel per platform that works on Python 3.11, 3.12, 3.13, and future versions. Also updates the deprecated macos-12 CI runner to macos-13. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/CI.yml | 2 +- .gitignore | 5 ++++- Cargo.toml | 2 +- pyproject.toml | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ad3ec43..b824d1b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -117,7 +117,7 @@ jobs: strategy: matrix: platform: - - runner: macos-12 + - runner: macos-13 target: x86_64 - runner: macos-14 target: aarch64 diff --git a/.gitignore b/.gitignore index af3ca5e..d4f4052 100644 --- a/.gitignore +++ b/.gitignore @@ -69,4 +69,7 @@ docs/_build/ .vscode/ # Pyenv -.python-version \ No newline at end of file +.python-version + +# Claude +.claude/settings.local.json \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 0eeb0a8..5ca6d3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,4 @@ crate-type = ["cdylib"] [dependencies] atoi = "2.0.0" base64 = "0.22.1" -pyo3 = { version = "0.23.1", features = ["extension-module"] } +pyo3 = { version = "0.23.1", features = ["extension-module", "abi3-py311"] } diff --git a/pyproject.toml b/pyproject.toml index a71df38..5faa306 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "meta-memcache-socket" -requires-python = ">=3.10" +requires-python = ">=3.11" classifiers = [ "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", @@ -13,4 +13,4 @@ classifiers = [ dynamic = ["version"] [tool.maturin] -features = ["pyo3/extension-module"] +features = ["pyo3/extension-module", "pyo3/abi3-py311"] From 3fa1e2899d6cb0dadc75845aab483f4aba78fbeb Mon Sep 17 00:00:00 2001 From: Antonio Borrero Granell Date: Wed, 11 Mar 2026 10:36:53 +0100 Subject: [PATCH 2/5] Bump version to 0.1.6 Co-Authored-By: Claude Opus 4.6 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 5ca6d3c..d8ea86b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "meta-memcache-socket" -version = "0.1.5" +version = "0.1.6" edition = "2021" [lib] From 528f1b0ec530d2d159996f2aa6d25d72ade4a39e Mon Sep 17 00:00:00 2001 From: Antonio Borrero Granell Date: Wed, 11 Mar 2026 10:42:47 +0100 Subject: [PATCH 3/5] Revert abi3: build per-version wheels instead abi3 requires bumping minimum to 3.11 (PyBuffer not in stable ABI before that) and conflicts with PyPy in manylinux containers. Revert to per-version wheel builds with --find-interpreter, which already picks up all available CPython versions including 3.13. Co-Authored-By: Claude Opus 4.6 --- Cargo.toml | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d8ea86b..2a2c0df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,4 @@ crate-type = ["cdylib"] [dependencies] atoi = "2.0.0" base64 = "0.22.1" -pyo3 = { version = "0.23.1", features = ["extension-module", "abi3-py311"] } +pyo3 = { version = "0.23.1", features = ["extension-module"] } diff --git a/pyproject.toml b/pyproject.toml index 5faa306..a71df38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "meta-memcache-socket" -requires-python = ">=3.11" +requires-python = ">=3.10" classifiers = [ "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", @@ -13,4 +13,4 @@ classifiers = [ dynamic = ["version"] [tool.maturin] -features = ["pyo3/extension-module", "pyo3/abi3-py311"] +features = ["pyo3/extension-module"] From 67b84bcd513fa3f20f7e57b0eef21a94df0f64a0 Mon Sep 17 00:00:00 2001 From: Antonio Borrero Granell Date: Wed, 11 Mar 2026 11:12:20 +0100 Subject: [PATCH 4/5] Update PyO3 from 0.23.1 to 0.28.2 Adds support for Python 3.14 and includes all improvements and bug fixes from the 0.24-0.28 release series. Co-Authored-By: Claude Opus 4.6 --- Cargo.lock | 64 ++++++++++++++---------------------------------------- Cargo.toml | 2 +- 2 files changed, 17 insertions(+), 49 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1791bb5..99e5941 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "atoi" @@ -23,42 +23,21 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "indoc" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" - [[package]] name = "libc" version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "meta-memcache-socket" -version = "0.1.5" +version = "0.1.6" dependencies = [ "atoi", "base64", @@ -76,9 +55,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "portable-atomic" @@ -97,37 +76,32 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.23.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebb0c0cc0de9678e53be9ccf8a2ab53045e6e3a8be03393ceccc5e7396ccb40" +checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1" dependencies = [ - "cfg-if", - "indoc", "libc", - "memoffset", "once_cell", "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", - "unindent", ] [[package]] name = "pyo3-build-config" -version = "0.23.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e3ce69c4ec34476534b490e412b871ba03a82e35604c3dfb95fcb6bfb60c09" +checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7" dependencies = [ - "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.23.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09f311c76b36dfd6dd6f7fa6f9f18e7e46a1c937110d283e80b12ba2468a75" +checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc" dependencies = [ "libc", "pyo3-build-config", @@ -135,9 +109,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.23.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4f74086536d1e1deaff99ec0387481fb3325c82e4e48be0e75ab3d3fcb487a" +checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -147,9 +121,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.23.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e77dfeb76b32bbf069144a5ea0a36176ab59c8db9ce28732d0f06f096bbfbc8" +checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a" dependencies = [ "heck", "proc-macro2", @@ -180,18 +154,12 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.16" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "unicode-ident" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "unindent" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" diff --git a/Cargo.toml b/Cargo.toml index 2a2c0df..a3d08eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,4 @@ crate-type = ["cdylib"] [dependencies] atoi = "2.0.0" base64 = "0.22.1" -pyo3 = { version = "0.23.1", features = ["extension-module"] } +pyo3 = { version = "0.28.2", features = ["extension-module"] } From 7a964d56e74ad10ea6443fa9d716b49625de13d6 Mon Sep 17 00:00:00 2001 From: Antonio Borrero Granell Date: Wed, 11 Mar 2026 11:26:54 +0100 Subject: [PATCH 5/5] Fix macOS CI: use macos-14 for x86_64 target macos-13 runner is no longer available on GitHub Actions. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b824d1b..6107f9b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -117,7 +117,7 @@ jobs: strategy: matrix: platform: - - runner: macos-13 + - runner: macos-14 target: x86_64 - runner: macos-14 target: aarch64