After #1305, a rules_py-provisioned free-threaded runtime no longer registers a compatible @rules_python//python:exec_tools_toolchain_type. rules_python 1.9's py_zipapp_binary requires that type, and its bundled 3.11 registrations are restricted to py_freethreaded=no, so an aligned free-threaded configuration has no matching exec toolchain.
The existing rules-python-consumers fixture should reproduce this by building :pycowsay_zipapp with:
--@aspect_rules_py//py:python_version=3.13
--@aspect_rules_py//py/private/interpreter:freethreaded=true
--@rules_python//python/config_settings:python_version=3.13
--@rules_python//python/config_settings:py_freethreaded=yes
The public exec toolchain is currently mandatory for py_zipapp_binary even though the zipapp implementation does not read it. Removing that unused requirement in rules_python is the clean fix. For compatibility with the released rules_python 1.9 API, rules_py would need to register a properly shaped py_exec_tools_toolchain adapter for PBS in addition to its private exec toolchain; registering the PBS runtime directly under the public type would not satisfy consumers that expect ToolchainInfo.exec_tools.
OpenAI's current downstream snapshot does not enable the free-threaded path, so this does not block the current upgrade.
After #1305, a rules_py-provisioned free-threaded runtime no longer registers a compatible @rules_python//python:exec_tools_toolchain_type. rules_python 1.9's py_zipapp_binary requires that type, and its bundled 3.11 registrations are restricted to py_freethreaded=no, so an aligned free-threaded configuration has no matching exec toolchain.
The existing rules-python-consumers fixture should reproduce this by building :pycowsay_zipapp with:
--@aspect_rules_py//py:python_version=3.13
--@aspect_rules_py//py/private/interpreter:freethreaded=true
--@rules_python//python/config_settings:python_version=3.13
--@rules_python//python/config_settings:py_freethreaded=yes
The public exec toolchain is currently mandatory for py_zipapp_binary even though the zipapp implementation does not read it. Removing that unused requirement in rules_python is the clean fix. For compatibility with the released rules_python 1.9 API, rules_py would need to register a properly shaped py_exec_tools_toolchain adapter for PBS in addition to its private exec toolchain; registering the PBS runtime directly under the public type would not satisfy consumers that expect ToolchainInfo.exec_tools.
OpenAI's current downstream snapshot does not enable the free-threaded path, so this does not block the current upgrade.