)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0c5b49d9886f860da6ac50119cb899337f2fcc10","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Maybe hopefully build abi3t wheels?"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"I kinda want to wait until we see this work with a differently-"},{"line_number":10,"context_line":"sized-PyObject Python before really declaring success."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Though maybe by then setuptools will support abi3t builds and we"},{"line_number":13,"context_line":"won\u0027t have to just cross our fingers that we can just define the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"38884398_e2038872","line":10,"range":{"start_line":9,"start_character":27,"end_line":10,"end_character":21},"updated":"2026-10-13 01:59:11.000000000","message":"Now that this is stacked on https://review.opendev.org/c/openstack/pyeclib/+/1009879 (and this patch now has us test the abi3t wheel with both py315 and py315t), I think we have our proof:\n\n```\n$ ~/py315/bin/python -c \u0027import sys; print(sys.getsizeof(None))\u0027\n16\n$ ~/py315t/bin/python -c \u0027import sys; print(sys.getsizeof(None))\u0027\n32\n```\n\nStill somewhat torn about whether to wait until we see some 3.16 RCs next year, though.","commit_id":"d1b7fcf2cc8e9802f06abe195cce70cde435f8c3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d9c0a3f57b5520032dfba8486ada8f0d20b2ad78","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Note that the abi-tag zuul artifact metadata is now a list of strings"},{"line_number":18,"context_line":"rather than a single string. This mirrors the splitting done for"},{"line_number":19,"context_line":"patform-tag."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Ife85c3337dea941726681bf460365084a074b2f2"},{"line_number":22,"context_line":"Signed-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"72aa8a01_b1e449bf","line":19,"updated":"2026-10-15 17:22:43.000000000","message":"\"platform-tag\"","commit_id":"db689e47ff66e7cfab88d88f8bf07d7223694e55"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1f7d73a03058ccfa95e01e9ac00f0d25c402d811","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bebfe68a_7e9916b4","updated":"2026-10-20 00:49:24.000000000","message":"There\u0027s been some movement lately in setuptools around this:\n\n- [Add initial support for abi3.abi3t tag from PEP 803](https://github.com/pypa/setuptools/pull/5193)\n- [Use target sysconfig for platform-qualified stable-ABI suffixes](https://github.com/pypa/setuptools/pull/5352)\n\nIt looks like I can get setuptools to build `abi3.abi3t` wheels if I add this to `pyproject.toml`:\n```\n[tool.distutils.bdist_wheel]\npy-limited-api \u003d \"cp315\"\n```\n\n...but then it breaks wheel building for older versions of python.\n\nI *can* get setuptools to build (on a variety of versions) with\n```\n[tool.distutils.bdist_wheel]\npy-limited-api \u003d \"cp310\"\n```\n...but it then produces a `cp310-abi3.abi3t` wheel... which doesn\u0027t seem right at all -- and sure enough, trying to use the resulting wheel in a py314 venv results in (runtime! not install-time!) errors:\n```\n\u003e\u003e\u003e import pyeclib.ec_iface\nTraceback (most recent call last):\n  File \"\u003cpython-input-0\u003e\", line 1, in \u003cmodule\u003e\n    import pyeclib.ec_iface\n  File \"/home/tburke/py314/lib/python3.14/site-packages/pyeclib/ec_iface.py\", line 50, in \u003cmodule\u003e\n    from pyeclib_c import get_liberasurecode_version\nImportError: cannot import name \u0027get_liberasurecode_version\u0027 from \u0027pyeclib_c\u0027 (unknown location)\n```\n\n(Presumably because py314 doesn\u0027t know about `.abi3t-x86_64-linux-gnu.so`s)\n\nA py315 venv also doesn\u0027t like the wacky `cp310-abi3.abi3t` wheel:\n```\n\u003e\u003e\u003e import pyeclib.ec_iface\nTraceback (most recent call last):\n  File \"\u003cpython-input-0\u003e\", line 1, in \u003cmodule\u003e\n    import pyeclib.ec_iface\n  File \"/home/tburke/py315/lib/python3.15/site-packages/pyeclib/ec_iface.py\", line 49, in \u003cmodule\u003e\n    import pyeclib_c\nImportError: pyeclib_c: only compatible with free-threaded CPython\n```\n\n(I guess because setuptools on didn\u0027t define `Py_TARGET_ABI3T`?)\n\nSo I guess I need to find a way to set that config option when `pack_wheel.py` is building the initial wheel (but only on py315+), but I still can\u0027t figure out *how*.\n\n*This*, OTOH, at least seems to work **today**.","commit_id":"db689e47ff66e7cfab88d88f8bf07d7223694e55"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"94bd997704a3efed8c012b86e8d8419d12cc4a23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"44db4190_d2b8e8f0","updated":"2026-10-20 04:25:24.000000000","message":"recheck\n\nI suppose I should make sure that this *still* works following setuptools\u0027 updates, though...","commit_id":"db689e47ff66e7cfab88d88f8bf07d7223694e55"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5145da36bd24a92fed7f3ee94743cb9aef13dc3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a67f3a40_38ac4c55","updated":"2026-10-20 20:07:43.000000000","message":"recheck\n\nLooks like 84.2.1 [should fix](https://setuptools.pypa.io/en/stable/history.html#v84-2-1) what 84.2.0 broke.","commit_id":"db689e47ff66e7cfab88d88f8bf07d7223694e55"}],"src/pyeclib_c/pyeclib_c.c":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d9c0a3f57b5520032dfba8486ada8f0d20b2ad78","unresolved":true,"context_lines":[{"line_number":27,"context_line":"#define PY_SSIZE_T_CLEAN"},{"line_number":28,"context_line":"/**"},{"line_number":29,"context_line":" * Since setuptools can\u0027t set this for us yet, we\u0027ll set Py_TARGET_ABI3T here"},{"line_number":30,"context_line":" * and fix up the wheel in pack_wheel.py -- this shouldn\u0027t have any impact for"},{"line_number":31,"context_line":" * non-wheel builds."},{"line_number":32,"context_line":" */"},{"line_number":33,"context_line":"#define Py_TARGET_ABI3T 0x030f0000"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"aa84738c_f57be221","line":30,"range":{"start_line":30,"start_character":49,"end_line":30,"end_character":78},"updated":"2026-10-15 17:22:43.000000000","message":"\"shouldn\u0027t noticeably impact\" -- there are impacts, we just don\u0027t really care about them.","commit_id":"db689e47ff66e7cfab88d88f8bf07d7223694e55"}]}
