-
Notifications
You must be signed in to change notification settings - Fork 6
Commit 5560370
committed
Set upper limit for project Python version
The version of Python used by the project infrastructure is controlled via the `pyproject.toml` metadata file.
Previously the file specified that any version >=3.9.0 and <4.0.0 could be used, since it had been validated with 3.9
and theoretically no breaking changes should be introduced without a major version bump.
However, there was a breaking change in Python version 3.10, which caused an incompatibility with the version of the
project's `pyyaml` Python package dependency. This caused the `poetry install` command to fail when a version of Python
greater than 3.9.x was used:
```
PEP517 build of a dependency failed
Backend subprocess exited when trying to invoke get_requires_for_build_wheel
| Command '['/tmp/tmpu92tgtph/.venv/bin/python', '/opt/hostedtoolcache/Python/3.13.4/x64/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py', 'get_requires_for_build_wheel', '/tmp/tmpt2syl665']' returned non-zero exit status 1.
|
| /tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
| !!
|
| ********************************************************************************
| Please consider removing the following classifiers in favor of a SPDX license expression:
|
| License :: OSI Approved :: MIT License
|
| See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
| ********************************************************************************
|
| !!
| self._finalize_license_expression()
| running egg_info
| writing lib3/PyYAML.egg-info/PKG-INFO
| writing dependency_links to lib3/PyYAML.egg-info/dependency_links.txt
| writing top-level names to lib3/PyYAML.egg-info/top_level.txt
| Traceback (most recent call last):
| File "/opt/hostedtoolcache/Python/3.13.4/x64/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
| main()
| ~~~~^^
| File "/opt/hostedtoolcache/Python/3.13.4/x64/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
| json_out["return_val"] = hook(**hook_input["kwargs"])
| ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/hostedtoolcache/Python/3.13.4/x64/lib/python3.13/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
| return hook(config_settings)
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/build_meta.py", line 331, in get_requires_for_build_wheel
| return self._get_build_requires(config_settings, requirements=[])
| ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/build_meta.py", line 301, in _get_build_requires
| self.run_setup()
| ~~~~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/build_meta.py", line 317, in run_setup
| exec(code, locals())
| ~~~~^^^^^^^^^^^^^^^^
| File "<string>", line 271, in <module>
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/__init__.py", line 115, in setup
| return distutils.core.setup(**attrs)
| ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 186, in setup
| return run_commands(dist)
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
| dist.run_commands()
| ~~~~~~~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
| self.run_command(cmd)
| ~~~~~~~~~~~~~~~~^^^^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/dist.py", line 1102, in run_command
| super().run_command(command)
| ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
| cmd_obj.run()
| ~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/command/egg_info.py", line 312, in run
| self.find_sources()
| ~~~~~~~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/command/egg_info.py", line 320, in find_sources
| mm.run()
| ~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/command/egg_info.py", line 543, in run
| self.add_defaults()
| ~~~~~~~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/command/egg_info.py", line 581, in add_defaults
| sdist.add_defaults(self)
| ~~~~~~~~~~~~~~~~~~^^^^^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/command/sdist.py", line 109, in add_defaults
| super().add_defaults()
| ~~~~~~~~~~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/command/sdist.py", line 245, in add_defaults
| self._add_defaults_ext()
| ~~~~~~~~~~~~~~~~~~~~~~^^
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/command/sdist.py", line 330, in _add_defaults_ext
| self.filelist.extend(build_ext.get_source_files())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
| File "<string>", line 201, in get_source_files
| File "/tmp/tmpu92tgtph/.venv/lib/python3.13/site-packages/setuptools/_distutils/cmd.py", line 131, in __getattr__
| raise AttributeError(attr)
| AttributeError: cython_sources
Note: This error originates from the build backend, and is likely not a problem with poetry but one of the following issues with pyyaml (5.4.1)
- not supporting PEP 517 builds
- not specifying PEP 517 build requirements correctly
- the build requirements are incompatible with your operating system or Python version
- the build requirements are missing system dependencies (eg: compilers, libraries, headers).
You can verify this by running pip wheel --no-cache-dir --use-pep517 "pyyaml (==5.4.1)".
exit status 1
```
Although the incompatibility has already been fixed in `pyyaml`, this is a transitive dependency and so it might be
difficult to update the version used by the project.
So the chosen solution is to adjust the Python version constraints to require a version less than 3.10.0 be used. This
will still allow use of any Python version in the 3.9.x series to make the infrastructure more friendly to local use by
contributors, while ensuring that a compatible version is used.1 parent a3ede40 commit 5560370Copy full SHA for 5560370
File tree
Expand file treeCollapse file tree
2 files changed
+3
-6
lines changedFilter options
Expand file treeCollapse file tree
2 files changed
+3
-6
lines changed+2-5Lines changed: 2 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+1-1Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
|
0 commit comments