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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions