Skip to content

packaging: InvalidVersion: Invalid version: '0.3.24.None' #1263

@moreati

Description

@moreati

When mitogen.__version__ doesn't contain a 'dev' suffix the version string we pass to the packaging plumbin is invalid. Older Pythons with older distutils/setuptools don't notice, newer versions do, e.g. https://github.com/mitogen-hq/mitogen/actions/runs/14705370769/job/41264378268?pr=1262

py311-mode_ansible-ansible2.10: install_deps> python -m pip --no-python-version-warning --disable-pip-version-check install 'ansible~=2.10.0' -r /home/runner/work/mitogen/mitogen/tests/requirements.txt -r /home/runner/work/mitogen/mitogen/tests/ansible/requirements.txt
.pkg: install_requires> python -I -m pip install 'setuptools>=40.8.0' wheel
.pkg: _optional_hooks> python /opt/hostedtoolcache/Python/3.11.12/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /opt/hostedtoolcache/Python/3.11.12/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py311-mode_ansible-ansible2.10: packaging backend failed (code=1), with InvalidVersion: Invalid version: '0.3.23.None'
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.12/x64/lib/python3.11/site-packages/pyproject_api/_backend.py", line 93, in run
    outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.12/x64/lib/python3.11/site-packages/pyproject_api/_backend.py", line 34, in __call__
    return getattr(on_object, name)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 337, in get_requires_for_build_sdist
    return self._get_build_requires(config_settings, requirements=[])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
    self.run_setup()
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 522, in run_setup
    super().run_setup(setup_script=setup_script)
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in run_setup
    exec(code, locals())
  File "<string>", line 55, in <module>
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/__init__.py", line 117, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 148, in setup
    _setup_distribution = dist = klass(attrs)
                                 ^^^^^^^^^^^^
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/dist.py", line 334, in __init__
    self.metadata.version = self._normalize_version(self.metadata.version)
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/dist.py", line 370, in _normalize_version
    normalized = str(Version(version))
                     ^^^^^^^^^^^^^^^^
  File "/home/runner/work/mitogen/mitogen/.tox/.pkg/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 202, in __init__
    raise InvalidVersion(f"Invalid version: {version!r}")
packaging.version.InvalidVersion: Invalid version: '0.3.23.None'
Backend: run command get_requires_for_build_sdist with args {'config_settings': None}
Backend: Wrote response {'code': 1, 'exc_type': 'InvalidVersion', 'exc_msg': "Invalid version: '0.3.23.None'"} to /tmp/pep517_get_requires_for_build_sdist-deqgkqnp.json
  py311-mode_ansible-ansible2.10: FAIL code 1 (74.21 seconds)
  evaluation failed :( (74.30 seconds)
Error: Process completed with exit code 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    affects-0.3Issues related to 0.3.X Mitogen releasesbugCode feature that hinders desired execution outcomepackagingIssues with PyPI, Linux distro, or other packages

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions