)]}'
{".zuul.yaml":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bb1968973b8bd30fe52079f8f56507c3036a59d1","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        - pyeclib-tox-py39-centos-9-stream"},{"line_number":25,"context_line":"        - libec-pyeclib-unit"},{"line_number":26,"context_line":"        - libec-pyeclib-unit-centos-9-stream"},{"line_number":27,"context_line":"    gate:"},{"line_number":28,"context_line":"      jobs:"},{"line_number":29,"context_line":"        - test-release-openstack: *release_overrides"},{"line_number":30,"context_line":"        - openstack-tox-py35: *py35_overrides"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9a863b7b_44f2d94f","line":27,"updated":"2025-02-10 17:01:05.000000000","message":"Oh! I forgot to add py313 to the gate pipeline!","commit_id":"1e90ffb844c323b4a923a87fce9429774059fafc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"19ac8322c8f8393c395f503ac6db297f0e2e8d78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1cf9ab6b_0617bc9c","updated":"2024-08-30 15:37:25.000000000","message":"The `openstack-tox-py313` job is using free-threaded python! I suppose that shouldn\u0027t be so surprising, but pyeclib isn\u0027t ready for it.","commit_id":"9bacb6ede2e2c05e9670c916ff33e2576bdd2186"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"01fb666aed79308a8e207fdc6851dd007b9dc669","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d06831ed_265e05de","updated":"2024-09-13 22:32:02.000000000","message":"Success! Instead of the\n```\n/usr/local/include/python3.13t/Python.h:51:4: error:\n#error \"The limited API is not currently supported in the free-threaded build\"\n```\nwe were getting before, we now get a warning:\n```\nRuntimeWarning: The global interpreter lock (GIL) has been enabled to load\nmodule \u0027pyeclib_c\u0027, which has not declared that it can run safely without\nthe GIL. To override this behavior and keep the GIL disabled (at your own\nrisk), run with PYTHON_GIL\u003d0 or -Xgil\u003d0.\n```\nTwo open questions, though:\n\n1. Should we clear up that warning before this lands? I\u0027m inclined to say no; having proper free-threaded support seems likely to be a bit of work -- work we could defer a bit.\n2. In getting to free-threaded support, do we want to add sufficient locking here in pyeclib, or straighten out liberasurecode to be properly thread-safe then bump up our required minimum version? I\u0027d prefer the latter, but it may be difficult given the lag inherent to distro packages. Maybe there\u0027s something we could do by testing with CI-built wheels? Though that in turn may require that we not test with jerasure...","commit_id":"b27b04088c3fc5f96e5799c3e238bf6ae72d7162"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f8c6de14b706ddc621cdc3f0f86e380cd812d6f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"358ce63a_f2097260","updated":"2024-09-22 22:43:24.000000000","message":"Maybe we should add a\n```\n#ifdef Py_GIL_DISABLED\n    PyUnstable_Module_SetGIL(m, Py_MOD_GIL_USED);\n#endif\n```\nto `MOD_INIT`? I *think* that might quiet the `RuntimeWarning`:\n```\nThe global interpreter lock (GIL) has been enabled to load module \u0027pyeclib_c\u0027,\nwhich has not declared that it can run safely without the GIL. To override\nthis behavior and keep the GIL disabled (at your own risk), run with\nPYTHON_GIL\u003d0 or -Xgil\u003d0.\n```","commit_id":"1cb6c1132abde9d2171d0541ec3329ac5050fcc2"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"b4988f0c14c1b9ea624db2829a66e715dd2b3a75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ab698e70_f74dd215","in_reply_to":"358ce63a_f2097260","updated":"2024-09-23 07:55:34.000000000","message":"ok so `Py_MOD_GIL_USED` is used to indicate we want the GIL in pyeclib\u0027s case.\n\nI guess for now that makes sense. we can always change it to `Py_MOD_GIL_NOT_USED` when we\u0027re ready to support it!\n\nSo yeah, let\u0027s add it and remove the warning.","commit_id":"1cb6c1132abde9d2171d0541ec3329ac5050fcc2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"51084c503c9cd8a001ba0b6ef4c8787e92272373","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"444e2d67_edc52763","in_reply_to":"ab698e70_f74dd215","updated":"2024-09-23 15:41:14.000000000","message":"So I hadn\u0027t actually *tried it* when I said that -- looks like even with the explicit opt-in, we get the warning. And if you explicitly turn off the GIL with `PYTHON_GIL\u003d0`, it\u0027ll go ahead and do it -- I can cherry pick https://review.opendev.org/c/openstack/pyeclib/+/929336 and use that to get segfaults on libec 1.6.2. Oh well.\n\nI\u0027ll still add it, if only as a reminder for what needs to happen later when we want to opt out of the GIL.","commit_id":"1cb6c1132abde9d2171d0541ec3329ac5050fcc2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ef526ed0d3569663af4783b04dfa9932fbc0220d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ba94e4f9_9c8aae0e","updated":"2024-09-23 16:02:41.000000000","message":"Note that upstream, the consensus seems to be that we *should not* go publishing `py313t` wheels until we\u0027re ready to turn off the GIL: https://discuss.python.org/t/free-threading-trove-classifier/62406/59\n\nStill better to test than not test, though!","commit_id":"1e90ffb844c323b4a923a87fce9429774059fafc"}]}
