Skip to content

"broken" setup.py in devel: setuptools>=48.0.0,<49.1 no longer supports SDistCommand from distutils #70456

@webknjaz

Description

@webknjaz
SUMMARY

$sbj.
I happen to have a nightly-updated Dumb PyPI site so I noticed this already 2 hours after the new
setuptools got released.

ISSUE TYPE
  • Bug Report
COMPONENT NAME

setup.py

ANSIBLE VERSION
devel
CONFIGURATION
N/A
OS / ENVIRONMENT

N/A

STEPS TO REPRODUCE
$ git clone https://github.com/ansible/ansible.git
$ cd ansible
$ pip install -U 'setuptools>=48,<49.1'
$ python setup.py sdist
Local repro log
$ python3.8 -m venv 38venv
$ 38venv/bin/pip show setuptools
Name: setuptools
Version: 41.2.0
...
$ 38venv/bin/python -m setup sdist
running sdist
running check
running egg_info
...
Creating tar archive
removing 'ansible-base-2.11.0.dev0' (and everything under it)
~/src/github/ansible/ansible/setup.py:180: RuntimeWarning: When setup.p
y sdist is run from outside of the Makefile, the generated tarball may be inco
mplete.  Use `make snapshot` to create a tarball from an arbitrary checkout or
 use `cd packaging/release && make release version=[..]` for official builds.
  warnings.warn('When setup.py sdist is run from outside of the Makefile,'
$ 38venv/bin/pip install -U setuptools
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/a1/61/64936a2a178908f17ac27e733b4cdeffab618072d9f29743fd346b6fdbb0/setuptools-49.0.0-py3-none-any.whl 
(789kB)
     |████████████████████████████████| 798kB 1.9MB/s 
Installing collected packages: setuptools
  Found existing installation: setuptools 41.2.0
    Uninstalling setuptools-41.2.0:
      Successfully uninstalled setuptools-41.2.0
Successfully installed setuptools-49.0.0
$ 38venv/bin/python -m setup sdist    
~/src/github/ansible/ansible/38venv/lib/python3.8/site-packages/setupto
ols/distutils_patch.py:17: UserWarning: Setuptools is replacing distutils
  warnings.warn("Setuptools is replacing distutils")
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "~/src/github/ansible/ansible/setup.py", line 338, in <module>
    main()
  File "~/src/github/ansible/ansible/setup.py", line 333, in main
    setup(**setup_params)
  File "~/src/github/ansible/ansible/38venv/lib/python3.8/site-packages
/setuptools/__init__.py", line 164, in setup
    return distutils.core.setup(**attrs)
  File "~/src/github/ansible/ansible/38venv/lib/python3.8/site-packages
/setuptools/_distutils/core.py", line 134, in setup
    ok = dist.parse_command_line()
  File "~/src/github/ansible/ansible/38venv/lib/python3.8/site-packages
/setuptools/_distutils/dist.py", line 484, in parse_command_line
    args = self._parse_command_opts(parser, args)
  File "~/src/github/ansible/ansible/38venv/lib/python3.8/site-packages
/setuptools/dist.py", line 929, in _parse_command_opts
    nargs = _Distribution._parse_command_opts(self, parser, args)
  File "~/src/github/ansible/ansible/38venv/lib/python3.8/site-packages
/setuptools/_distutils/dist.py", line 547, in _parse_command_opts
    raise DistutilsClassError(
distutils.errors.DistutilsClassError: command class <class '__main__.SDistComm
and'> must subclass Command
EXPECTED RESULTS

sdist produced (previous build: https://github.com/webknjaz/ansinight/runs/834341869#step:5:6362)

ACTUAL RESULTS

setuptools explodes with a traceback (broken build: https://github.com/webknjaz/ansinight/runs/835027617#step:5:31)

Metadata

Metadata

Assignees

No one assigned

    Labels

    affects_2.11bugThis issue/PR relates to a bug.has_prThis issue has an associated PR.python3support:coreThis issue/PR relates to code supported by the Ansible Engineering Team.tracebackThis issue/PR includes a traceback.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions