SciCatProject / SciCatProject/backend

Python SDK release fails on Scicat Backend release due to invalid project.requires-python spec

Open Beginner friendly
#1,998 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
27
Forks
37
Avg merge
17h 32m
Merged PRs (30d)
38

Description

Summary

The Python SDK build step (setup.py sdist bdist_wheel) in the Bump release version, build-push image and publish SDK CI is failing with a configuration error indicating that project.requires-python must follow the PEP 508 version spec format.

Expected Behaviour

The Python SDK generating job should complete successfully, generating both source and wheel distributions without format validation errors.

Details

Error message:

DESCRIPTION:
    `The Python version requirements of the project
    <https://packaging.python.org/specifications/core-metadata/#requires-
    python>`_.

GIVEN VALUE:
    "^3.9"

OFFENDING RULE: 'format'

DEFINITION:
    {
        "type": "string",
        "format": "pep508-versionspec"
    }

Traceback (most recent call last):
For more details about `format` see
https://validate-pyproject.readthedocs.io/en/latest/api/validate_pyproject.formats.html

  File "/home/runner/work/scicat-backend-next/scicat-backend-next/sdk/python/setup.py", line 33, in <module>
    setup(
    ~~~~~^
        name=NAME,
        ^^^^^^^^^^
    ...<13 lines>...
        package_data={"scicat_sdk_py": ["py.typed"]},
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/setuptools/__init__.py", line 115, in setup
    return distutils.core.setup(**attrs)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/setuptools/_distutils/core.py", line [16](https://github.com/SciCatProject/scicat-backend-next/actions/runs/15417161482/job/43383245931#step:6:17)0, in setup
    dist.parse_config_files()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/setuptools/dist.py", line 756, in parse_config_files
    pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/setuptools/config/pyprojecttoml.py", line 72, in apply_configuration
    config = read_configuration(filepath, True, ignore_option_errors, dist)
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/setuptools/config/pyprojecttoml.py", line 1[40](https://github.com/SciCatProject/scicat-backend-next/actions/runs/15417161482/job/43383245931#step:6:41), in read_configuration
    validate(subset, filepath)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.3/x64/lib/python3.13/site-packages/setuptools/config/pyprojecttoml.py", line 61, in validate
    raise ValueError(f"{error}\n{summary}") from None
ValueError: invalid pyproject.toml config: `project.requires-python`.
configuration error: `project.requires-python` must be pep508-versionspec

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the Python SDK packaging configuration used by sdk/python/setup.py, especially the project.requires-python value in pyproject.toml. Re-run the SDK build commands from the linked CI job and confirm that both source and wheel distributions are generated without validation errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
ci-cd, release
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.