astrofrog / astrofrog/fast-histogram

Python 3.14.4 builds failing

Open
#104 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
281
Forks
28
PR merge metrics
No merged PRs in 30d

Description

We have `fast_histogram` as a dependency of one of our packages (https://github.com/FABLE-3DXRD/ImageD11) which is used as part of https://github.com/jadball/anri

Recently it seems like our CI builds on Python 3.14.4 are failing (only on Ubuntu, not Windows or OSX seemingly?) due to usage of `Py_LIMITED_API`, see logs below:

```
Collecting fast_histogram (from ImageD11)
Downloading fast_histogram-0.14.tar.gz (47 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error

× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [67 lines of output]
toml section missing PosixPath('pyproject.toml') does not contain any of the tool sections: ['setuptools_scm', 'vcs-versioning']
toml section missing PosixPath('pyproject.toml') does not contain any of the tool sections: ['setuptools_scm', 'vcs-versioning']
running dist_info
creating /tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info
writing /tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/dependency_links.txt
writing requirements to /tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/requires.txt
writing top-level names to /tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/top_level.txt
writing manifest file '/tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/SOURCES.txt'
/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/vcs_versioning/overrides.py:609: UserWarning: No GlobalOverrides context is active. Auto-creating one with SETUPTOOLS_SCM prefix for backwards compatibility. Consider using 'with GlobalOverrides.from_env("YOUR_TOOL"):' explicitly.
return get_active_overrides().subprocess_timeout
listing git files failed - pretending there aren't any
reading manifest file '/tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'CHANGES.rst'
adding license file 'LICENSE'
writing manifest file '/tmp/pip-modern-metadata-f8ctqo38/fast_histogram.egg-info/SOURCES.txt'
creating '/tmp/pip-modern-metadata-f8ctqo38/fast_histogram-0.14.dist-info'
Traceback (most recent call last):
File "/usr/share/miniconda/envs/anaconda-client-env/lib/python3.14t/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in
main()
~~~~^^
File "/usr/share/miniconda/envs/anaconda-client-env/lib/python3.14t/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
json_out["return_val"] = hook(**hook_input["kwargs"])
~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda/envs/anaconda-client-env/lib/python3.14t/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 175, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/build_meta.py", line 380, in prepare_metadata_for_build_wheel
self.run_setup()
~~~~~~~~~~~~~~^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/build_meta.py", line 317, in run_setup
exec(code, locals())
~~~~^^^^^^^^^^^^^^^^
File "", line 10, in
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/__init__.py", line 117, in setup
return distutils.core.setup(**attrs) # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/_distutils/core.py", line 186, in setup
return run_commands(dist)
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
dist.run_commands()
~~~~~~~~~~~~~~~~~^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
self.run_command(cmd)
~~~~~~~~~~~~~~~~^^^^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/command/dist_info.py", line 99, in run
bdist_wheel = self.get_finalized_command('bdist_wheel')
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/_distutils/cmd.py", line 318, in get_finalized_command
cmd_obj.ensure_finalized()
~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/_distutils/cmd.py", line 119, in ensure_finalized
self.finalize_options()
~~~~~~~~~~~~~~~~~~~~~^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/command/bdist_wheel.py", line 250, in finalize_options
self._validate_py_limited_api()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/tmp/pip-build-env-p7uizhvm/overlay/lib/python3.14t/site-packages/setuptools/command/bdist_wheel.py", line 285, in _validate_py_limited_api
raise ValueError(
...<4 lines>...
)
ValueError: `py_limited_api='cp39'` not supported. `Py_LIMITED_API` is currently incompatible with `Py_GIL_DISABLED`. See https://github.com/python/cpython/issues/111506.
[end of output]
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the reported installation failure on Ubuntu with Python 3.14.4, then inspect pyproject.toml and the build configuration around py_limited_api='cp39' and Py_LIMITED_API. Done means the package builds and installs successfully on Python 3.14.4 while preserving the existing builds on Windows, macOS, and earlier Python versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, python
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.