tox icon indicating copy to clipboard operation
tox copied to clipboard

Allow backends to be called in fresh subprocesses

Open stephenfin opened this issue 2 years ago • 19 comments

Issue

I'm using pbr for a number of projects. I've observed that when using this with tox 4.x, the package fails to build with the following error message being emitted:

py311: packaging backend failed (code=error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                                                                                                                                                                            
To avoid accidental inclusion of unwanted files or directories,                                                                                                                                                                                                                                                                                                                                                                             
setuptools will not proceed with this build.                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                            
If you are trying to create a single distribution with multiple packages                                                                                                                                                                                                                                                                                                                                                                    
on purpose, you should not rely on automatic discovery.                                                                                                                                                                                                                                                                                                                                                                                     
Instead, consider the following options:                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                            
1. set up custom discovery (`find` directive with `include` or `exclude`)                                                                                                                                                                                                                                                                                                                                                                   
2. use a `src-layout`                                                                                                                                                                                                                                                                                                                                                                                                                       
3. explicitly set `py_modules` or `packages` with a list of names                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                                                                            
To find more information, look for "package discovery" on setuptools docs.), with SystemExit: error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                                                                                                                                                            
To avoid accidental inclusion of unwanted files or directories,                                                                                                                                                                                                                                                                                                                                                                             
setuptools will not proceed with this build.

... lots more below here ...

However, I'm already defining packages in my setup.cfg:

[metadata]
name = foo
description = A demo project
license = MIT License
license_file = LICENSE
author = Stephen Finucane
author_email = [email protected]
python_requires = >=3.7

[files]
packages =
    foo

(Note that [files] is the correct section for pbr)

From reading the traceback, it feels like tox is not detecting that I am using pbr and is attempting to use plain-old setuptools. However, tools like build (i.e. python -m build) manage to detect pbr just fine so I don't know what's going on here.

This process also doesn't quietly die. Instead, it hangs around forever. I've seen CI failures on some packages where the build finally timed out after 3 hours. Attempting to kill the process locally with Ctrl + C fails and I need to issue a kill to the parent process.

❯ ps aux | grep python
...
stephen+  181923  137  0.1 772888 34684 pts/6    Sl+  13:16   0:28 /tmp/test/.venv/bin/python /tmp/test/.venv/bin/tox -e py311
stephen+  181939  3.0  0.0      0     0 pts/6    Z+   13:16   0:00 [python] <defunct>
...
❯ kill 181923

Environment

Provide at least:

  • OS: Fedora 37
  • pip list of the host Python where tox is installed:
console
❯ pip list
Package       Version
------------- -------
cachetools    5.2.0
chardet       5.1.0
colorama      0.4.6
distlib       0.3.6
filelock      3.8.2
packaging     22.0
pip           22.2.2
platformdirs  2.6.0
pluggy        1.0.0
pyproject_api 1.2.1
setuptools    62.6.0
tox           4.0.9
virtualenv    20.17.1
wheel         0.37.1

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip

Output of running tox

Provide the output of tox -rvv:

.pkg: 123 W remove tox env folder /tmp/test/.tox/.pkg [tox/tox_env/api.py:311]
py37: 127 I find interpreter for spec PythonSpec(major=3) [virtualenv/discovery/builtin.py:56]
py37: 127 D got python info of /usr/bin/python3.11 from /home/stephenfin/.local/share/virtualenv/py_info/1/ca3ed784184f1b3bb7c3539bfb45e71710cd27667424f92c2d5bb4df9c107c23.json [virtualenv/app_data/via_disk_folder.py:129]
py37: 127 I proposed PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
py37: 127 D accepted PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
py37: 128 D filesystem is case-sensitive [virtualenv/info.py:24]
py37: 145 I create virtual environment via CPython3Posix(dest=/tmp/test/.tox/py37, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
py37: 146 D create folder /tmp/test/.tox/py37/bin [virtualenv/util/path/_sync.py:9]
py37: 146 D create folder /tmp/test/.tox/py37/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py37: 146 D create folder /tmp/test/.tox/py37/lib64/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py37: 146 D write /tmp/test/.tox/py37/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py37: 146 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py37: 146 D symlink /usr/bin/python3.11 to /tmp/test/.tox/py37/bin/python [virtualenv/util/path/_sync.py:28]
py37: 146 D create virtualenv import hook file /tmp/test/.tox/py37/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
py37: 146 D create /tmp/test/.tox/py37/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
py37: 147 D ============================== target debug ============================== [virtualenv/run/session.py:50]
py37: 147 D debug via /tmp/test/.tox/py37/bin/python /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197]
py37: 147 D {
  "sys": {
    "executable": "/tmp/test/.tox/py37/bin/python",
    "_base_executable": "/usr/bin/python3.11",
    "prefix": "/tmp/test/.tox/py37",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/test/.tox/py37",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib64/python311.zip",
      "/usr/lib64/python3.11",
      "/usr/lib64/python3.11/lib-dynload",
      "/tmp/test/.tox/py37/lib64/python3.11/site-packages",
      "/tmp/test/.tox/py37/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]",
  "makefile_filename": "/usr/lib64/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/lib64/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/lib64/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/lib64/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
py37: 166 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/stephenfin/.local/share/virtualenv) [virtualenv/run/session.py:55]
py37: 167 D install pip from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py37: 167 D install setuptools from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py37: 168 D install wheel from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py37: 168 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /tmp/test/.tox/py37/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
py37: 168 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /tmp/test/.tox/py37/lib/python3.11/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36]
py37: 169 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /tmp/test/.tox/py37/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
py37: 169 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /tmp/test/.tox/py37/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
py37: 169 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /tmp/test/.tox/py37/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
py37: 170 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /tmp/test/.tox/py37/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
py37: 171 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /tmp/test/.tox/py37/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
py37: 176 D generated console scripts wheel wheel-3.11 wheel3.11 wheel3 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py37: 196 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /tmp/test/.tox/py37/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36]
py37: 197 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /tmp/test/.tox/py37/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
py37: 202 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /tmp/test/.tox/py37/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36]
py37: 203 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /tmp/test/.tox/py37/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
py37: 203 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py37: 218 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /tmp/test/.tox/py37/lib/python3.11/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36]
py37: 219 D generated console scripts pip pip3 pip-3.11 pip3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py37: 219 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
py37: 220 D write /tmp/test/.tox/py37/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py37: 221 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py37: 221 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py37: 223 W install_deps> python -I -m pip install -r /tmp/test/test-requirements.txt [tox/tox_env/api.py:417]
Collecting pytest
  Using cached pytest-7.2.0-py3-none-any.whl (316 kB)
Collecting attrs>=19.2.0
  Using cached attrs-22.1.0-py2.py3-none-any.whl (58 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Using cached packaging-22.0-py3-none-any.whl (42 kB)
Collecting pluggy<2.0,>=0.12
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Installing collected packages: iniconfig, pluggy, packaging, attrs, pytest
Successfully installed attrs-22.1.0 iniconfig-1.1.1 packaging-22.0 pluggy-1.0.0 pytest-7.2.0
py37: 1577 I exit 0 (1.35 seconds) /tmp/test> python -I -m pip install -r /tmp/test/test-requirements.txt pid=180662 [tox/execute/api.py:275]
.pkg: 1580 I find interpreter for spec PythonSpec(path=/tmp/test/.venv/bin/python) [virtualenv/discovery/builtin.py:56]
.pkg: 1580 I proposed PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
.pkg: 1580 D accepted PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
.pkg: 1581 I create virtual environment via CPython3Posix(dest=/tmp/test/.tox/.pkg, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
.pkg: 1582 D create folder /tmp/test/.tox/.pkg/bin [virtualenv/util/path/_sync.py:9]
.pkg: 1582 D create folder /tmp/test/.tox/.pkg/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
.pkg: 1582 D create folder /tmp/test/.tox/.pkg/lib64/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
.pkg: 1582 D write /tmp/test/.tox/.pkg/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
.pkg: 1582 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1582 D symlink /usr/bin/python3.11 to /tmp/test/.tox/.pkg/bin/python [virtualenv/util/path/_sync.py:28]
.pkg: 1583 D create virtualenv import hook file /tmp/test/.tox/.pkg/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
.pkg: 1583 D create /tmp/test/.tox/.pkg/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
.pkg: 1583 D ============================== target debug ============================== [virtualenv/run/session.py:50]
.pkg: 1583 D debug via /tmp/test/.tox/.pkg/bin/python /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197]
.pkg: 1583 D {
  "sys": {
    "executable": "/tmp/test/.tox/.pkg/bin/python",
    "_base_executable": "/usr/bin/python3.11",
    "prefix": "/tmp/test/.tox/.pkg",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/test/.tox/.pkg",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib64/python311.zip",
      "/usr/lib64/python3.11",
      "/usr/lib64/python3.11/lib-dynload",
      "/tmp/test/.tox/.pkg/lib64/python3.11/site-packages",
      "/tmp/test/.tox/.pkg/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]",
  "makefile_filename": "/usr/lib64/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/lib64/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/lib64/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/lib64/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
.pkg: 1611 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/stephenfin/.local/share/virtualenv) [virtualenv/run/session.py:55]
.pkg: 1613 D install setuptools from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
.pkg: 1613 D install pip from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
.pkg: 1613 D install wheel from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
.pkg: 1614 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36]
.pkg: 1614 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
.pkg: 1615 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
.pkg: 1615 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
.pkg: 1615 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
.pkg: 1616 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
.pkg: 1617 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
.pkg: 1623 D generated console scripts wheel3 wheel wheel-3.11 wheel3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
.pkg: 1644 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36]
.pkg: 1645 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
.pkg: 1651 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36]
.pkg: 1651 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
.pkg: 1652 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
.pkg: 1666 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /tmp/test/.tox/.pkg/lib/python3.11/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36]
.pkg: 1667 D generated console scripts pip3.11 pip pip3 pip-3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
.pkg: 1667 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
.pkg: 1668 D write /tmp/test/.tox/.pkg/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
.pkg: 1668 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
.pkg: 1668 W install_requires> python -I -m pip install 'setuptools>=40.8.0' wheel [tox/tox_env/api.py:417]
Requirement already satisfied: setuptools>=40.8.0 in ./.tox/.pkg/lib/python3.11/site-packages (65.6.3)
Requirement already satisfied: wheel in ./.tox/.pkg/lib/python3.11/site-packages (0.38.4)
.pkg: 2474 I exit 0 (0.81 seconds) /tmp/test> python -I -m pip install 'setuptools>=40.8.0' wheel pid=180688 [tox/execute/api.py:275]
.pkg: 2474 W _optional_hooks> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
Backend: run command _optional_hooks with args {}
Backend: Wrote response {'return': {'get_requires_for_build_sdist': True, 'prepare_metadata_for_build_wheel': True, 'get_requires_for_build_wheel': True, 'build_editable': True, 'get_requires_for_build_editable': True, 'prepare_metadata_for_build_editable': True}} to /tmp/pep517__optional_hooks-8dlt64az.json
.pkg: 2780 I exit None (0.31 seconds) /tmp/test> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=180699 [tox/execute/api.py:275]
.pkg: 2780 W get_requires_for_build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
  warnings.warn(msg, warning_class)
Backend: run command get_requires_for_build_sdist with args {'config_settings': None}
Backend: Wrote response {'return': ['pbr']} to /tmp/pep517_get_requires_for_build_sdist-5j40bh4z.json
.pkg: 2786 I exit None (0.01 seconds) /tmp/test> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=180699 [tox/execute/api.py:275]
.pkg: 2786 W install_requires_for_build_sdist> python -I -m pip install pbr [tox/tox_env/api.py:417]
Collecting pbr
  Using cached pbr-5.11.0-py2.py3-none-any.whl (112 kB)
Installing collected packages: pbr
Successfully installed pbr-5.11.0
.pkg: 3304 I exit 0 (0.52 seconds) /tmp/test> python -I -m pip install pbr pid=180709 [tox/execute/api.py:275]
.pkg: 3304 W prepare_metadata_for_build_wheel> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
Backend: run command prepare_metadata_for_build_wheel with args {'metadata_directory': '/tmp/test/.tox/.pkg/.meta', 'config_settings': {'--build-option': []}}
[pbr] Generating ChangeLog
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
  warnings.warn(msg, warning_class)
running dist_info
creating /tmp/test/.tox/.pkg/.meta/foo.egg-info
writing pbr to /tmp/test/.tox/.pkg/.meta/foo.egg-info/pbr.json
writing /tmp/test/.tox/.pkg/.meta/foo.egg-info/PKG-INFO
writing dependency_links to /tmp/test/.tox/.pkg/.meta/foo.egg-info/dependency_links.txt
writing requirements to /tmp/test/.tox/.pkg/.meta/foo.egg-info/requires.txt
writing top-level names to /tmp/test/.tox/.pkg/.meta/foo.egg-info/top_level.txt
[pbr] Processing SOURCES.txt
writing manifest file '/tmp/test/.tox/.pkg/.meta/foo.egg-info/SOURCES.txt'
[pbr] In git context, generating filelist from git
warning: no files found matching 'AUTHORS'
warning: no files found matching 'ChangeLog'
warning: no previously-included files found matching '.gitreview'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
writing manifest file '/tmp/test/.tox/.pkg/.meta/foo.egg-info/SOURCES.txt'
creating '/tmp/test/.tox/.pkg/.meta/foo-0.0.1.dev3.dist-info'
Backend: Wrote response {'return': 'foo-0.0.1.dev3.dist-info'} to /tmp/pep517_prepare_metadata_for_build_wheel-52_mezca.json
.pkg: 3497 I exit None (0.19 seconds) /tmp/test> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=180699 [tox/execute/api.py:275]
.pkg: 3498 W build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
  warnings.warn(msg, warning_class)
Traceback (most recent call last):
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/dist.py", line 1204, in run_command
    self.set_defaults()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 340, in __call__
    self._analyse_package_layout(ignore_ext_modules)
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 373, in _analyse_package_layout
    or self._analyse_flat_layout()
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 430, in _analyse_flat_layout
    return self._analyse_flat_packages() or self._analyse_flat_modules()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 436, in _analyse_flat_packages
    self._ensure_no_accidental_inclusion(top_level, "packages")
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 466, in _ensure_no_accidental_inclusion
    raise PackageDiscoveryError(cleandoc(msg))
setuptools.errors.PackageDiscoveryError: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py", line 90, in run
    outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"])
Backend: run command build_sdist with args {'sdist_directory': '/tmp/test/.tox/.pkg/dist', 'config_settings': None}
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py", line 32, in __call__
    return getattr(on_object, name)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 417, in build_sdist
    return self._build_with_temp_dir(['sdist', '--formats', 'gztar'],
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 398, in _build_with_temp_dir
    self.run_setup()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 485, in run_setup
    self).run_setup(setup_script=setup_script)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 335, in run_setup
    exec(code, locals())
  File "<string>", line 5, in <module>
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 215, in run_commands
    raise SystemExit("error: " + str(msg))
SystemExit: error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

Backend: Wrote response {'code': 'error: Multiple top-level packages discovered in a flat-layout: [\'man\', \'foo\'].\n\nTo avoid accidental inclusion of unwanted files or directories,\nsetuptools will not proceed with this build.\n\nIf you are trying to create a single distribution with multiple packages\non purpose, you should not rely on automatic discovery.\nInstead, consider the following options:\n\n1. set up custom discovery (`find` directive with `include` or `exclude`)\n2. use a `src-layout`\n3. explicitly set `py_modules` or `packages` with a list of names\n\nTo find more information, look for "package discovery" on setuptools docs.', 'exc_type': 'SystemExit', 'exc_msg': 'error: Multiple top-level packages discovered in a flat-layout: [\'man\', \'foo\'].\n\nTo avoid accidental inclusion of unwanted files or directories,\nsetuptools will not proceed with this build.\n\nIf you are trying to create a single distribution with multiple packages\non purpose, you should not rely on automatic discovery.\nInstead, consider the following options:\n\n1. set up custom discovery (`find` directive with `include` or `exclude`)\n2. use a `src-layout`\n3. explicitly set `py_modules` or `packages` with a list of names\n\nTo find more information, look for "package discovery" on setuptools docs.'} to /tmp/pep517_build_sdist-88gm_hhj.json
To find more information, look for "package discovery" on setuptools docs.
error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
.pkg: 3510 I exit None (0.01 seconds) /tmp/test> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=180699 [tox/execute/api.py:275]
py37: 3511 E packaging backend failed (code=error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.), with SystemExit: error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
  warnings.warn(msg, warning_class)
Traceback (most recent call last):
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/dist.py", line 1204, in run_command
    self.set_defaults()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 340, in __call__
    self._analyse_package_layout(ignore_ext_modules)
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 373, in _analyse_package_layout
    or self._analyse_flat_layout()
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 430, in _analyse_flat_layout
    return self._analyse_flat_packages() or self._analyse_flat_modules()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 436, in _analyse_flat_packages
    self._ensure_no_accidental_inclusion(top_level, "packages")
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 466, in _ensure_no_accidental_inclusion
    raise PackageDiscoveryError(cleandoc(msg))
setuptools.errors.PackageDiscoveryError: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py", line 90, in run
    outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py", line 32, in __call__
    return getattr(on_object, name)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 417, in build_sdist
    return self._build_with_temp_dir(['sdist', '--formats', 'gztar'],
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 398, in _build_with_temp_dir
    self.run_setup()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 485, in run_setup
    self).run_setup(setup_script=setup_script)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 335, in run_setup
    exec(code, locals())
  File "<string>", line 5, in <module>
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 215, in run_commands
    raise SystemExit("error: " + str(msg))
SystemExit: error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
Backend: run command build_sdist with args {'sdist_directory': '/tmp/test/.tox/.pkg/dist', 'config_settings': None}
Backend: Wrote response {'code': 'error: Multiple top-level packages discovered in a flat-layout: [\'man\', \'foo\'].\n\nTo avoid accidental inclusion of unwanted files or directories,\nsetuptools will not proceed with this build.\n\nIf you are trying to create a single distribution with multiple packages\non purpose, you should not rely on automatic discovery.\nInstead, consider the following options:\n\n1. set up custom discovery (`find` directive with `include` or `exclude`)\n2. use a `src-layout`\n3. explicitly set `py_modules` or `packages` with a list of names\n\nTo find more information, look for "package discovery" on setuptools docs.', 'exc_type': 'SystemExit', 'exc_msg': 'error: Multiple top-level packages discovered in a flat-layout: [\'man\', \'foo\'].\n\nTo avoid accidental inclusion of unwanted files or directories,\nsetuptools will not proceed with this build.\n\nIf you are trying to create a single distribution with multiple packages\non purpose, you should not rely on automatic discovery.\nInstead, consider the following options:\n\n1. set up custom discovery (`find` directive with `include` or `exclude`)\n2. use a `src-layout`\n3. explicitly set `py_modules` or `packages` with a list of names\n\nTo find more information, look for "package discovery" on setuptools docs.'} to /tmp/pep517_build_sdist-88gm_hhj.json [tox/session/cmd/run/single.py:51]
py37: FAIL ✖ in 3.39 seconds
py38: 3513 I find interpreter for spec PythonSpec(major=3) [virtualenv/discovery/builtin.py:56]
py38: 3513 I proposed PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
py38: 3513 D accepted PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
py38: 3514 I create virtual environment via CPython3Posix(dest=/tmp/test/.tox/py38, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
py38: 3514 D create folder /tmp/test/.tox/py38/bin [virtualenv/util/path/_sync.py:9]
py38: 3514 D create folder /tmp/test/.tox/py38/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py38: 3514 D create folder /tmp/test/.tox/py38/lib64/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py38: 3514 D write /tmp/test/.tox/py38/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py38: 3514 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py38: 3514 D symlink /usr/bin/python3.11 to /tmp/test/.tox/py38/bin/python [virtualenv/util/path/_sync.py:28]
py38: 3514 D create virtualenv import hook file /tmp/test/.tox/py38/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
py38: 3515 D create /tmp/test/.tox/py38/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
py38: 3515 D ============================== target debug ============================== [virtualenv/run/session.py:50]
py38: 3515 D debug via /tmp/test/.tox/py38/bin/python /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197]
py38: 3515 D {
  "sys": {
    "executable": "/tmp/test/.tox/py38/bin/python",
    "_base_executable": "/usr/bin/python3.11",
    "prefix": "/tmp/test/.tox/py38",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/test/.tox/py38",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib64/python311.zip",
      "/usr/lib64/python3.11",
      "/usr/lib64/python3.11/lib-dynload",
      "/tmp/test/.tox/py38/lib64/python3.11/site-packages",
      "/tmp/test/.tox/py38/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]",
  "makefile_filename": "/usr/lib64/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/lib64/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/lib64/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/lib64/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
py38: 3538 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/stephenfin/.local/share/virtualenv) [virtualenv/run/session.py:55]
py38: 3540 D install pip from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py38: 3540 D install setuptools from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py38: 3540 D install wheel from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py38: 3542 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /tmp/test/.tox/py38/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
py38: 3542 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /tmp/test/.tox/py38/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
py38: 3542 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /tmp/test/.tox/py38/lib/python3.11/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36]
py38: 3542 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /tmp/test/.tox/py38/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
py38: 3542 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /tmp/test/.tox/py38/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
py38: 3543 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /tmp/test/.tox/py38/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
py38: 3545 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /tmp/test/.tox/py38/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
py38: 3552 D generated console scripts wheel-3.11 wheel3.11 wheel3 wheel [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py38: 3603 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /tmp/test/.tox/py38/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36]
py38: 3605 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /tmp/test/.tox/py38/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
py38: 3621 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /tmp/test/.tox/py38/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36]
py38: 3621 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /tmp/test/.tox/py38/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
py38: 3622 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py38: 3692 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /tmp/test/.tox/py38/lib/python3.11/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36]
py38: 3695 D generated console scripts pip3 pip-3.11 pip3.11 pip [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py38: 3695 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
py38: 3696 D write /tmp/test/.tox/py38/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py38: 3696 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py38: 3696 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py38: 3698 W install_deps> python -I -m pip install -r /tmp/test/test-requirements.txt [tox/tox_env/api.py:417]
Collecting pytest
  Using cached pytest-7.2.0-py3-none-any.whl (316 kB)
Collecting attrs>=19.2.0
  Using cached attrs-22.1.0-py2.py3-none-any.whl (58 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Using cached packaging-22.0-py3-none-any.whl (42 kB)
Collecting pluggy<2.0,>=0.12
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Installing collected packages: iniconfig, pluggy, packaging, attrs, pytest
Successfully installed attrs-22.1.0 iniconfig-1.1.1 packaging-22.0 pluggy-1.0.0 pytest-7.2.0
py38: 5232 I exit 0 (1.53 seconds) /tmp/test> python -I -m pip install -r /tmp/test/test-requirements.txt pid=180771 [tox/execute/api.py:275]
.pkg: 5233 W build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
py38: 5233 E internal error [tox/session/cmd/run/single.py:57]
Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 45, in _evaluate
    tox_env.setup()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 243, in setup
    self._setup_with_env()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 149, in _setup_with_env
    self._setup_pkg()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 172, in _setup_pkg
    self._packages = self._build_packages()
                     ^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 110, in _build_packages
    packages = package_env.perform_packaging(self.conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 198, in perform_packaging
    sdist = self._frontend.build_sdist(sdist_directory=self.pkg_dir).sdist
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/cachetools/__init__.py", line 641, in wrapper
    v = func(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 386, in build_sdist
    basename, out, err = self._send(
                         ^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 333, in _send
    return super()._send(cmd, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 489, in _send
    with self._send_msg(cmd, result_file, msg) as status:
  File "/usr/lib64/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 352, in _send_msg
    execute_status.write_stdin(f"{msg}{os.linesep}")
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/execute/local_sub_process/__init__.py", line 115, in write_stdin
    stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
py38: FAIL ✖ in 1.73 seconds
py39: 5239 I find interpreter for spec PythonSpec(major=3) [virtualenv/discovery/builtin.py:56]
py39: 5240 I proposed PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
py39: 5240 D accepted PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
py39: 5242 I create virtual environment via CPython3Posix(dest=/tmp/test/.tox/py39, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
py39: 5242 D create folder /tmp/test/.tox/py39/bin [virtualenv/util/path/_sync.py:9]
py39: 5243 D create folder /tmp/test/.tox/py39/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py39: 5243 D create folder /tmp/test/.tox/py39/lib64/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py39: 5243 D write /tmp/test/.tox/py39/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py39: 5243 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py39: 5243 D symlink /usr/bin/python3.11 to /tmp/test/.tox/py39/bin/python [virtualenv/util/path/_sync.py:28]
py39: 5244 D create virtualenv import hook file /tmp/test/.tox/py39/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
py39: 5244 D create /tmp/test/.tox/py39/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
py39: 5244 D ============================== target debug ============================== [virtualenv/run/session.py:50]
py39: 5244 D debug via /tmp/test/.tox/py39/bin/python /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197]
py39: 5244 D {
  "sys": {
    "executable": "/tmp/test/.tox/py39/bin/python",
    "_base_executable": "/usr/bin/python3.11",
    "prefix": "/tmp/test/.tox/py39",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/test/.tox/py39",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib64/python311.zip",
      "/usr/lib64/python3.11",
      "/usr/lib64/python3.11/lib-dynload",
      "/tmp/test/.tox/py39/lib64/python3.11/site-packages",
      "/tmp/test/.tox/py39/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]",
  "makefile_filename": "/usr/lib64/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/lib64/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/lib64/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/lib64/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
py39: 5270 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/stephenfin/.local/share/virtualenv) [virtualenv/run/session.py:55]
py39: 5271 D install pip from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py39: 5272 D install setuptools from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py39: 5272 D install wheel from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py39: 5274 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /tmp/test/.tox/py39/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
py39: 5274 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /tmp/test/.tox/py39/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
py39: 5274 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /tmp/test/.tox/py39/lib/python3.11/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36]
py39: 5275 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /tmp/test/.tox/py39/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
py39: 5275 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /tmp/test/.tox/py39/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
py39: 5276 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /tmp/test/.tox/py39/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
py39: 5279 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /tmp/test/.tox/py39/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
py39: 5290 D generated console scripts wheel3 wheel wheel-3.11 wheel3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py39: 5368 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /tmp/test/.tox/py39/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36]
py39: 5372 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /tmp/test/.tox/py39/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
py39: 5392 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /tmp/test/.tox/py39/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36]
py39: 5393 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /tmp/test/.tox/py39/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
py39: 5394 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py39: 5476 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /tmp/test/.tox/py39/lib/python3.11/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36]
py39: 5480 D generated console scripts pip3.11 pip pip3 pip-3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py39: 5480 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
py39: 5482 D write /tmp/test/.tox/py39/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py39: 5482 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py39: 5482 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py39: 5484 W install_deps> python -I -m pip install -r /tmp/test/test-requirements.txt [tox/tox_env/api.py:417]
Collecting pytest
  Using cached pytest-7.2.0-py3-none-any.whl (316 kB)
Collecting attrs>=19.2.0
  Using cached attrs-22.1.0-py2.py3-none-any.whl (58 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Using cached packaging-22.0-py3-none-any.whl (42 kB)
Collecting pluggy<2.0,>=0.12
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Installing collected packages: iniconfig, pluggy, packaging, attrs, pytest
Successfully installed attrs-22.1.0 iniconfig-1.1.1 packaging-22.0 pluggy-1.0.0 pytest-7.2.0
py39: 7015 I exit 0 (1.53 seconds) /tmp/test> python -I -m pip install -r /tmp/test/test-requirements.txt pid=180825 [tox/execute/api.py:275]
.pkg: 7016 W build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
py39: 7017 E internal error [tox/session/cmd/run/single.py:57]
Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 45, in _evaluate
    tox_env.setup()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 243, in setup
    self._setup_with_env()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 149, in _setup_with_env
    self._setup_pkg()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 172, in _setup_pkg
    self._packages = self._build_packages()
                     ^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 110, in _build_packages
    packages = package_env.perform_packaging(self.conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 198, in perform_packaging
    sdist = self._frontend.build_sdist(sdist_directory=self.pkg_dir).sdist
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/cachetools/__init__.py", line 641, in wrapper
    v = func(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 386, in build_sdist
    basename, out, err = self._send(
                         ^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 333, in _send
    return super()._send(cmd, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 489, in _send
    with self._send_msg(cmd, result_file, msg) as status:
  File "/usr/lib64/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 352, in _send_msg
    execute_status.write_stdin(f"{msg}{os.linesep}")
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/execute/local_sub_process/__init__.py", line 115, in write_stdin
    stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
py39: FAIL ✖ in 1.78 seconds
py310: 7020 I find interpreter for spec PythonSpec(major=3) [virtualenv/discovery/builtin.py:56]
py310: 7020 I proposed PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
py310: 7020 D accepted PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
py310: 7021 I create virtual environment via CPython3Posix(dest=/tmp/test/.tox/py310, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
py310: 7022 D create folder /tmp/test/.tox/py310/bin [virtualenv/util/path/_sync.py:9]
py310: 7022 D create folder /tmp/test/.tox/py310/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py310: 7022 D create folder /tmp/test/.tox/py310/lib64/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py310: 7022 D write /tmp/test/.tox/py310/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py310: 7022 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py310: 7022 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py310: 7023 D symlink /usr/bin/python3.11 to /tmp/test/.tox/py310/bin/python [virtualenv/util/path/_sync.py:28]
py310: 7023 D create virtualenv import hook file /tmp/test/.tox/py310/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
py310: 7023 D create /tmp/test/.tox/py310/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
py310: 7023 D ============================== target debug ============================== [virtualenv/run/session.py:50]
py310: 7023 D debug via /tmp/test/.tox/py310/bin/python /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197]
py310: 7023 D {
  "sys": {
    "executable": "/tmp/test/.tox/py310/bin/python",
    "_base_executable": "/usr/bin/python3.11",
    "prefix": "/tmp/test/.tox/py310",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/test/.tox/py310",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib64/python311.zip",
      "/usr/lib64/python3.11",
      "/usr/lib64/python3.11/lib-dynload",
      "/tmp/test/.tox/py310/lib64/python3.11/site-packages",
      "/tmp/test/.tox/py310/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]",
  "makefile_filename": "/usr/lib64/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/lib64/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/lib64/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/lib64/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
py310: 7046 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/stephenfin/.local/share/virtualenv) [virtualenv/run/session.py:55]
py310: 7047 D install pip from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py310: 7048 D install wheel from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py310: 7048 D install setuptools from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py310: 7049 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /tmp/test/.tox/py310/lib/python3.11/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36]
py310: 7049 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /tmp/test/.tox/py310/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
py310: 7050 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /tmp/test/.tox/py310/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
py310: 7051 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /tmp/test/.tox/py310/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
py310: 7051 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /tmp/test/.tox/py310/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
py310: 7051 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /tmp/test/.tox/py310/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
py310: 7055 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /tmp/test/.tox/py310/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
py310: 7065 D generated console scripts wheel3.11 wheel3 wheel wheel-3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py310: 7130 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /tmp/test/.tox/py310/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36]
py310: 7133 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /tmp/test/.tox/py310/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
py310: 7154 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /tmp/test/.tox/py310/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36]
py310: 7154 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /tmp/test/.tox/py310/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
py310: 7155 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py310: 7242 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /tmp/test/.tox/py310/lib/python3.11/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36]
py310: 7245 D generated console scripts pip-3.11 pip3.11 pip pip3 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py310: 7246 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
py310: 7247 D write /tmp/test/.tox/py310/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py310: 7247 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py310: 7247 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py310: 7250 W install_deps> python -I -m pip install -r /tmp/test/test-requirements.txt [tox/tox_env/api.py:417]
Collecting pytest
  Using cached pytest-7.2.0-py3-none-any.whl (316 kB)
Collecting attrs>=19.2.0
  Using cached attrs-22.1.0-py2.py3-none-any.whl (58 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Using cached packaging-22.0-py3-none-any.whl (42 kB)
Collecting pluggy<2.0,>=0.12
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Installing collected packages: iniconfig, pluggy, packaging, attrs, pytest
Successfully installed attrs-22.1.0 iniconfig-1.1.1 packaging-22.0 pluggy-1.0.0 pytest-7.2.0
py310: 8795 I exit 0 (1.55 seconds) /tmp/test> python -I -m pip install -r /tmp/test/test-requirements.txt pid=180856 [tox/execute/api.py:275]
.pkg: 8796 W build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
py310: 8797 E internal error [tox/session/cmd/run/single.py:57]
Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 45, in _evaluate
    tox_env.setup()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 243, in setup
    self._setup_with_env()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 149, in _setup_with_env
    self._setup_pkg()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 172, in _setup_pkg
    self._packages = self._build_packages()
                     ^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 110, in _build_packages
    packages = package_env.perform_packaging(self.conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 198, in perform_packaging
    sdist = self._frontend.build_sdist(sdist_directory=self.pkg_dir).sdist
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/cachetools/__init__.py", line 641, in wrapper
    v = func(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 386, in build_sdist
    basename, out, err = self._send(
                         ^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 333, in _send
    return super()._send(cmd, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 489, in _send
    with self._send_msg(cmd, result_file, msg) as status:
  File "/usr/lib64/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 352, in _send_msg
    execute_status.write_stdin(f"{msg}{os.linesep}")
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/execute/local_sub_process/__init__.py", line 115, in write_stdin
    stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
py310: FAIL ✖ in 1.78 seconds
py311: 8800 I find interpreter for spec PythonSpec(major=3) [virtualenv/discovery/builtin.py:56]
py311: 8800 I proposed PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63]
py311: 8800 D accepted PythonInfo(spec=CPython3.11.0.final.0-64, system=/usr/bin/python3.11, exe=/tmp/test/.venv/bin/python, platform=linux, version='3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65]
py311: 8801 I create virtual environment via CPython3Posix(dest=/tmp/test/.tox/py311, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48]
py311: 8802 D create folder /tmp/test/.tox/py311/bin [virtualenv/util/path/_sync.py:9]
py311: 8802 D create folder /tmp/test/.tox/py311/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py311: 8802 D create folder /tmp/test/.tox/py311/lib64/python3.11/site-packages [virtualenv/util/path/_sync.py:9]
py311: 8802 D write /tmp/test/.tox/py311/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py311: 8802 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py311: 8802 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py311: 8802 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py311: 8802 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py311: 8802 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py311: 8802 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py311: 8802 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py311: 8803 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py311: 8803 D symlink /usr/bin/python3.11 to /tmp/test/.tox/py311/bin/python [virtualenv/util/path/_sync.py:28]
py311: 8803 D create virtualenv import hook file /tmp/test/.tox/py311/lib/python3.11/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89]
py311: 8803 D create /tmp/test/.tox/py311/lib/python3.11/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92]
py311: 8804 D ============================== target debug ============================== [virtualenv/run/session.py:50]
py311: 8804 D debug via /tmp/test/.tox/py311/bin/python /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197]
py311: 8804 D {
  "sys": {
    "executable": "/tmp/test/.tox/py311/bin/python",
    "_base_executable": "/usr/bin/python3.11",
    "prefix": "/tmp/test/.tox/py311",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/test/.tox/py311",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib64/python311.zip",
      "/usr/lib64/python3.11",
      "/usr/lib64/python3.11/lib-dynload",
      "/tmp/test/.tox/py311/lib64/python3.11/site-packages",
      "/tmp/test/.tox/py311/lib/python3.11/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.11.0 (main, Oct 24 2022, 00:00:00) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)]",
  "makefile_filename": "/usr/lib64/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' (frozen)>",
  "site": "<module 'site' (frozen)>",
  "datetime": "<module 'datetime' from '/usr/lib64/python3.11/datetime.py'>",
  "math": "<module 'math' from '/usr/lib64/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
  "json": "<module 'json' from '/usr/lib64/python3.11/json/__init__.py'>"
} [virtualenv/run/session.py:51]
py311: 8827 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/stephenfin/.local/share/virtualenv) [virtualenv/run/session.py:55]
py311: 8828 D install pip from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py311: 8829 D install setuptools from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py311: 8829 D install wheel from wheel /tmp/test/.venv/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47]
py311: 8830 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /tmp/test/.tox/py311/lib/python3.11/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36]
py311: 8831 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /tmp/test/.tox/py311/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:36]
py311: 8831 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /tmp/test/.tox/py311/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36]
py311: 8831 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /tmp/test/.tox/py311/lib/python3.11/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36]
py311: 8833 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /tmp/test/.tox/py311/lib/python3.11/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36]
py311: 8834 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /tmp/test/.tox/py311/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:36]
py311: 8837 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /tmp/test/.tox/py311/lib/python3.11/site-packages/wheel [virtualenv/util/path/_sync.py:36]
py311: 8849 D generated console scripts wheel-3.11 wheel3.11 wheel3 wheel [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py311: 8913 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /tmp/test/.tox/py311/lib/python3.11/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36]
py311: 8915 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /tmp/test/.tox/py311/lib/python3.11/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36]
py311: 8934 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /tmp/test/.tox/py311/lib/python3.11/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36]
py311: 8935 D copy /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /tmp/test/.tox/py311/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36]
py311: 8936 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py311: 9021 D copy directory /home/stephenfin/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /tmp/test/.tox/py311/lib/python3.11/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36]
py311: 9024 D generated console scripts pip3 pip-3.11 pip3.11 pip [virtualenv/seed/embed/via_app_data/pip_install/base.py:41]
py311: 9024 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61]
py311: 9026 D write /tmp/test/.tox/py311/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30]
py311: 9026 D 	home = /usr/bin [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	implementation = CPython [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	version_info = 3.11.0.final.0 [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	base-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:34]
py311: 9026 D 	base-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:34]
py311: 9028 W install_deps> python -I -m pip install -r /tmp/test/test-requirements.txt [tox/tox_env/api.py:417]
Collecting pytest
  Using cached pytest-7.2.0-py3-none-any.whl (316 kB)
Collecting attrs>=19.2.0
  Using cached attrs-22.1.0-py2.py3-none-any.whl (58 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting packaging
  Using cached packaging-22.0-py3-none-any.whl (42 kB)
Collecting pluggy<2.0,>=0.12
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Installing collected packages: iniconfig, pluggy, packaging, attrs, pytest
Successfully installed attrs-22.1.0 iniconfig-1.1.1 packaging-22.0 pluggy-1.0.0 pytest-7.2.0
py311: 10643 I exit 0 (1.61 seconds) /tmp/test> python -I -m pip install -r /tmp/test/test-requirements.txt pid=180884 [tox/execute/api.py:275]
.pkg: 10644 W build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
py311: 10645 E internal error [tox/session/cmd/run/single.py:57]
Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 45, in _evaluate
    tox_env.setup()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 243, in setup
    self._setup_with_env()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 149, in _setup_with_env
    self._setup_pkg()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 172, in _setup_pkg
    self._packages = self._build_packages()
                     ^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/runner.py", line 110, in _build_packages
    packages = package_env.perform_packaging(self.conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 198, in perform_packaging
    sdist = self._frontend.build_sdist(sdist_directory=self.pkg_dir).sdist
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/cachetools/__init__.py", line 641, in wrapper
    v = func(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 386, in build_sdist
    basename, out, err = self._send(
                         ^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 333, in _send
    return super()._send(cmd, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 489, in _send
    with self._send_msg(cmd, result_file, msg) as status:
  File "/usr/lib64/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 352, in _send_msg
    execute_status.write_stdin(f"{msg}{os.linesep}")
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/execute/local_sub_process/__init__.py", line 115, in write_stdin
    stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
.pkg: 10646 W _exit> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]
.pkg: 10647 W error while trying to close <_io.BufferedWriter name=6> with BrokenPipeError(32, 'Broken pipe') [tox/execute/local_sub_process/__init__.py:239]
ROOT: 10647 E Internal Error [tox/session/cmd/run/common.py:321]
Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/common.py", line 296, in _queue_and_wait
    result = future.result()
             ^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib64/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/common.py", line 273, in _run
    return run_one(tox_env, options.parsed.no_test, suspend_display=live is False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 34, in run_one
    skipped, code, outcomes = _evaluate(tox_env, no_test)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 60, in _evaluate
    tox_env.teardown()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 258, in teardown
    self._teardown()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 88, in _teardown
    self._call_pkg_envs("teardown_env", self.conf)
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 122, in _call_pkg_envs
    getattr(package_env, method_name)(*args)
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 103, in teardown_env
    self._teardown()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 164, in _teardown
    self._frontend._send("_exit")  # try first on amicable shutdown
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 333, in _send
    return super()._send(cmd, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 489, in _send
    with self._send_msg(cmd, result_file, msg) as status:
  File "/usr/lib64/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 352, in _send_msg
    execute_status.write_stdin(f"{msg}{os.linesep}")
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/execute/local_sub_process/__init__.py", line 115, in write_stdin
    stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
Exception in thread tox-interrupt:
Traceback (most recent call last):
  File "/usr/lib64/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/common.py", line 296, in _queue_and_wait
    result = future.result()
             ^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib64/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/common.py", line 273, in _run
    return run_one(tox_env, options.parsed.no_test, suspend_display=live is False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 34, in run_one
    skipped, code, outcomes = _evaluate(tox_env, no_test)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/single.py", line 60, in _evaluate
    tox_env.teardown()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/api.py", line 258, in teardown
    self._teardown()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 88, in _teardown
    self._call_pkg_envs("teardown_env", self.conf)
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/runner.py", line 122, in _call_pkg_envs
    getattr(package_env, method_name)(*args)
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 103, in teardown_env
    self._teardown()
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/package.py", line 47, in _func
    return meth(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 164, in _teardown
    self._frontend._send("_exit")  # try first on amicable shutdown
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 333, in _send
    return super()._send(cmd, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_frontend.py", line 489, in _send
    with self._send_msg(cmd, result_file, msg) as status:
  File "/usr/lib64/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/package/pyproject.py", line 352, in _send_msg
    execute_status.write_stdin(f"{msg}{os.linesep}")
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/execute/local_sub_process/__init__.py", line 115, in write_stdin
    stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
Traceback (most recent call last):
  File "/tmp/test/.venv/bin/tox", line 8, in <module>
    sys.exit(run())
             ^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/run.py", line 19, in run
    result = main(sys.argv[1:] if args is None else args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/run.py", line 45, in main
    result = handler(state)
             ^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/legacy.py", line 107, in legacy
    return run_sequential(state)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/sequential.py", line 22, in run_sequential
    return execute(state, max_workers=1, has_spinner=False, live=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/tox/session/cmd/run/common.py", line 226, in execute
    ordered_results.append(name_to_run[env])
                           ~~~~~~~~~~~^^^^^
KeyError: 'py311'

Minimal example

You can find a minimal reproducer here.

The full output given when running tox -e py311 is:

❯ tox -e py311
py311: install_deps> python -I -m pip install -r /tmp/test/test-requirements.txt
.pkg: install_requires> python -I -m pip install 'setuptools>=40.8.0' wheel
.pkg: _optional_hooks> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: install_requires_for_build_sdist> python -I -m pip install pbr
.pkg: prepare_metadata_for_build_wheel> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py311: packaging backend failed (code=error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.), with SystemExit: error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
  warnings.warn(msg, warning_class)
Traceback (most recent call last):
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/dist.py", line 1204, in run_command
    self.set_defaults()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 340, in __call__
    self._analyse_package_layout(ignore_ext_modules)
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 373, in _analyse_package_layout
    or self._analyse_flat_layout()
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 430, in _analyse_flat_layout
    return self._analyse_flat_packages() or self._analyse_flat_modules()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 436, in _analyse_flat_packages
    self._ensure_no_accidental_inclusion(top_level, "packages")
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/discovery.py", line 466, in _ensure_no_accidental_inclusion
    raise PackageDiscoveryError(cleandoc(msg))
setuptools.errors.PackageDiscoveryError: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py", line 90, in run
    outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py", line 32, in __call__
    return getattr(on_object, name)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 417, in build_sdist
    return self._build_with_temp_dir(['sdist', '--formats', 'gztar'],
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 398, in _build_with_temp_dir
    self.run_setup()
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 485, in run_setup
    self).run_setup(setup_script=setup_script)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/build_meta.py", line 335, in run_setup
    exec(code, locals())
  File "<string>", line 5, in <module>
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/test/.tox/.pkg/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 215, in run_commands
    raise SystemExit("error: " + str(msg))
SystemExit: error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
error: Multiple top-level packages discovered in a flat-layout: ['man', 'foo'].

To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.

If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:

1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names

To find more information, look for "package discovery" on setuptools docs.
Backend: run command build_sdist with args {'sdist_directory': '/tmp/test/.tox/.pkg/dist', 'config_settings': None}
Backend: Wrote response {'code': 'error: Multiple top-level packages discovered in a flat-layout: [\'man\', \'foo\'].\n\nTo avoid accidental inclusion of unwanted files or directories,\nsetuptools will not proceed with this build.\n\nIf you are trying to create a single distribution with multiple packages\non purpose, you should not rely on automatic discovery.\nInstead, consider the following options:\n\n1. set up custom discovery (`find` directive with `include` or `exclude`)\n2. use a `src-layout`\n3. explicitly set `py_modules` or `packages` with a list of names\n\nTo find more information, look for "package discovery" on setuptools docs.', 'exc_type': 'SystemExit', 'exc_msg': 'error: Multiple top-level packages discovered in a flat-layout: [\'man\', \'foo\'].\n\nTo avoid accidental inclusion of unwanted files or directories,\nsetuptools will not proceed with this build.\n\nIf you are trying to create a single distribution with multiple packages\non purpose, you should not rely on automatic discovery.\nInstead, consider the following options:\n\n1. set up custom discovery (`find` directive with `include` or `exclude`)\n2. use a `src-layout`\n3. explicitly set `py_modules` or `packages` with a list of names\n\nTo find more information, look for "package discovery" on setuptools docs.'} to /tmp/pep517_build_sdist-eq__ngmi.json

stephenfin avatar Dec 14 '22 13:12 stephenfin

Your package seems to be violating https://peps.python.org/pep-0518. No, you cannot use setup_requires https://github.com/stephenfin/tox-issue-2717/blob/main/setup.py#L6 to specify your dependencies; it must be within pyproject.toml, see https://docs.openstack.org/pbr/latest/user/using.html

gaborbernat avatar Dec 14 '22 15:12 gaborbernat

Hi @gaborbernat, I'd already tested this but didn't push it as I thought it would confuse matters. I've now pushed a follow-up that configures the build-time dependencies but the exact same thing happens.

I've contributed to tox before and I'm happy to help here but I'll likely need some guidance and I'd like to make sure this isn't a dupe of an existing issue.

stephenfin avatar Dec 14 '22 22:12 stephenfin

Also, as an aside, I don't think the pyproject.toml file should be necessary since pbr is an extension of setuptools and PEP-518 explicitly says:

Because the use of setuptools and wheel are so expansive in the community at the moment, build tools are expected to use the example configuration file above as their default semantics when a pyproject.toml file is not present.

Given tox is defaulting to calling setuptools, which can read setup_requires, I think I've done enough for now. This would obviously change if setuptools dropped support for setup_requires in the future but that hasn't happened yet.

stephenfin avatar Dec 14 '22 22:12 stephenfin

PR welcome 👍

I've contributed to tox before and I'm happy to help here but I'll likely need some guidance and I'd like to make sure this isn't a dupe of an existing issue.

Can't really guide beyond debug and see where and how breaks 👍

gaborbernat avatar Dec 14 '22 22:12 gaborbernat

This is not truly just a pbr issue because see https://github.com/tox-dev/tox/issues/2567, other pbr projects do pass. So must be something else too at play.

gaborbernat avatar Dec 14 '22 22:12 gaborbernat

Okay, so I've narrowed the hanging issue down to this line:

https://github.com/tox-dev/tox/blob/12f6268a1800550e68db028c63db4a2813c1edab/src/tox/tox_env/python/virtual_env/package/pyproject.py#L164

If I comment that out, things pass successfully. That's a bit dumb though since I suspect the "amicable shutdown" is desirable. The bigger issue is why is being called. The executor should be reported as dead. If I slap an import time; time.sleep(60) in there and then run it again, I see that the child process has already died before we get to sending that message, which means there's nothing there to respond to it.

stephen+  270365  132  0.1 846628 34548 pts/5    Sl+  23:19   0:06 /tmp/test/.venv/bin/python /tmp/test/.venv/bin/tox -vv -e py311
stephen+  270371 11.2  0.0      0     0 pts/5    Z+   23:19   0:00 [python] <defunct>

This suggests to me that the executor.is_alive check isn't sufficient to pick up zombie processes. I'm going to guess there is data sitting in a pipe somewhere that means subprocess can't kill the thing...

stephenfin avatar Dec 14 '22 23:12 stephenfin

I've run into this independently and done a bit of digging before I saw this issue and thought I would share a bit of what I've learned.

Editing setup.cfg to include:

[options]
packages = find:

fixes the problem. Documentation for this is at https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#custom-discovery.

What is weird is that the build utility does not need this. I can run python -m build --sdist /path/to/repo without editing setup.cfg and an sdist tarball is produced without complaint. It looks like tox has an independent implementation of PEP517/518 things here: https://github.com/tox-dev/pyproject-api/ and the implementations must differ in some key way.

Another thing I notice is that when you add the packages = find: content to setup.cfg the sdist built by tox has the wrong version. It is set to 0.0.0 instead of what PBR should be discovering. This problem does not occur when running the build command above. It seems there must be some important differences between these implementations that cause this. Determining what they are is likely to lead to the fix.

cboylan avatar Dec 15 '22 21:12 cboylan

One difference I've found is that build via pep517 appears to fork a subprocess to run the setuptools.build_meta.__legacy__: https://github.com/pypa/pyproject-hooks/blob/v0.13.0/pep517/wrappers.py#L306-L313.

Tox via pyproject-api appears to call the backend with the flag with process reuse set to true:

.pkg: 19889 W build_sdist> python /home/foo/.local/tox/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ [tox/tox_env/api.py:417]

Perhaps this looping is the source of not exiting?

For the package content lookup and version behavior differences it is less clear to me how the behavior is changing. Perhaps setuptools.build_meta.__legacy__ is side effecting somehow in ways that subsequent requests to the BackendProxy fail? Perhaps the solution to both issues is to call the backend proxy with the reuse flag set to false to avoid this problem?

cboylan avatar Dec 15 '22 22:12 cboylan

Okay, so I've narrowed the hanging issue down to this line:

https://github.com/tox-dev/tox/blob/12f6268a1800550e68db028c63db4a2813c1edab/src/tox/tox_env/python/virtual_env/package/pyproject.py#L164

If I comment that out, things pass successfully. That's a bit dumb though since I suspect the "amicable shutdown" is desirable. The bigger issue is why is being called. The executor should be reported as dead. If I slap an import time; time.sleep(60) in there and then run it again, I see that the child process has already died before we get to sending that message, which means there's nothing there to respond to it.

stephen+  270365  132  0.1 846628 34548 pts/5    Sl+  23:19   0:06 /tmp/test/.venv/bin/python /tmp/test/.venv/bin/tox -vv -e py311
stephen+  270371 11.2  0.0      0     0 pts/5    Z+   23:19   0:00 [python] <defunct>

This suggests to me that the executor.is_alive check isn't sufficient to pick up zombie processes. I'm going to guess there is data sitting in a pipe somewhere that means subprocess can't kill the thing...

This seems to happen because setuptools is causing SystemExit to occur within the shared backend process. This causes the backend process to crash before it can receive the _exit command from the frontend. After comparison to the build tool I'm beginning to think that all of the setuptools.build_meta.__legacy__ calls should be isolated into their own processes. Then the BackendProxy can continue to manage things even if setuptools crashes.

Additionally, we'll avoid any unexpected side effecting that happens by running these build_meta.__legacy__ commands:

  1. get_requires_for_build_editable
  2. get_requires_for_build_sdist
  3. build_wheel
  4. build_sdist

in order within the same process. The expectation from build (and when you run setup.py explicitly) is that these happen as distinct processes with fresh memory spaces.

cboylan avatar Dec 15 '22 23:12 cboylan

The expectation from build (and when you run setup.py explicitly) is that these happen as distinct processes with fresh memory spaces.

What makes you think this is true? build or setuptools does not govern how things need to be done. We have a standard in PEP-517 here https://peps.python.org/pep-0517/#build-environment, which states:

Frontends should call each hook in a fresh subprocess, so that backends are free to change process global state (such as environment variables or the working directory).

Note the wording here; it says should and not must. So while using new processes is recommended, it's not mandated. Creating a fresh subprocess would significantly slow interaction with the build backend, so I'd prefer to fix this odd behavior of setuptools rather than change our subprocess reuse mechanism.

gaborbernat avatar Dec 15 '22 23:12 gaborbernat

The expectation from build (and when you run setup.py explicitly) is that these happen as distinct processes with fresh memory spaces.

What makes you think this is true? build or setuptools does not govern how things need to be done. We have a standard in PEP-517 here https://peps.python.org/pep-0517/#build-environment, which states:

I was primarily looking at how build does things as it is the canonical tool for this stuff, and it very explicitly forks a new process for each command here: https://github.com/pypa/pyproject-hooks/blob/v0.13.0/pep517/wrappers.py#L306-L313.

Frontends should call each hook in a fresh subprocess, so that backends are free to change process global state (such as environment variables or the working directory).

The pep explicitly calls out why this is desirable. Enabling backends to change process global state.

Note the wording here; it says should and not must. So while using new processes is recommended, it's not mandated. Creating a fresh subprocess would significantly slow interaction with the build backend, so I'd prefer to fix this odd behavior of setuptools rather than change our subprocess reuse mechanism.

I'm not sure if PEPs follow the RFC definitions for these words. Its possible that this is an oversight in the PEP? In particular they have explicitly called out the reason for doing that and tox seems to be running into that problem. To me a tool like tox should be forgiving because you don't know how old the existing code bases are that may be trying to use the tool. One option may be only fall back to the extra processes when using the legacy system? Though I guess the PEP gives potential freedom for non legacy backends to also modify process global state.

I've made a hacked up patch to tox to which does seem to get this working without any changes to the host project. I think this confirms that the issue is in reusing global process state.

diff --git a/src/tox/execute/pep517_backend.py b/src/tox/execute/pep517_backend.py
index 2f8ffc6d..e33fc754 100644
--- a/src/tox/execute/pep517_backend.py
+++ b/src/tox/execute/pep517_backend.py
@@ -42,7 +42,7 @@ class LocalSubProcessPep517Executor(Execute):
     def local_execute(self, options: ExecuteOptions) -> tuple[LocalSubProcessExecuteInstance, ExecuteStatus]:
         if self._exc is not None:
             raise self._exc
-        if self._local_execute is None:
+        if True:
             request = ExecuteRequest(cmd=self.cmd, cwd=self.cwd, env=self.env, stdin=StdinSource.API, run_id="pep517")
 
             instance = LocalSubProcessExecuteInstance(
diff --git a/src/tox/tox_env/python/virtual_env/package/pyproject.py b/src/tox/tox_env/python/virtual_env/package/pyproject.py
index 1cb31c6f..5d8eb445 100644
--- a/src/tox/tox_env/python/virtual_env/package/pyproject.py
+++ b/src/tox/tox_env/python/virtual_env/package/pyproject.py
@@ -11,7 +11,7 @@ from typing import Any, Dict, Generator, Iterator, NoReturn, Optional, Sequence,
 
 from cachetools import cached
 from packaging.requirements import Requirement
-from pyproject_api import BackendFailed, CmdStatus, Frontend
+from pyproject_api import BackendFailed, CmdStatus, SubprocessFrontend
 
 from tox.config.sets import EnvConfigSet
 from tox.execute.api import ExecuteStatus
@@ -306,9 +306,10 @@ class Pep517VirtualEnvPackager(PythonPackageToxEnv, VirtualEnv):
         return self._frontend.requires
 
 
-class Pep517VirtualEnvFrontend(Frontend):
+class Pep517VirtualEnvFrontend(SubprocessFrontend):
     def __init__(self, root: Path, env: Pep517VirtualEnvPackager) -> None:
-        super().__init__(*Frontend.create_args_from_folder(root))
+        args = SubprocessFrontend.create_args_from_folder(root)[:-1]
+        super().__init__(*args)
         self._tox_env = env
         self._backend_executor_: LocalSubProcessPep517Executor | None = None
         into: dict[str, Any] = {}

I know this isn't mergeable as is, I just wanted to see if changing the forking behavior addressed the underling problem.

cboylan avatar Dec 16 '22 00:12 cboylan

I was primarily looking at how build does things as it is the canonical tool for this stuff, and it very explicitly forks a new process for each command here: pypa/pyproject-hooks@v0.13.0/pep517/wrappers.py#L306-L313.

Doesn't matter. build is just one implementation of PEP-517, it's not authoritative. The spec is authoritative.

The pep explicitly calls out why this is desirable. Enabling backends to change process global state.

Desirable != required.

I'm not sure if PEPs follow the RFC definitions for these words.

It does. We've had this discussion in the past within PyPA.

Its possible that this is an oversight in the PEP? I

Nope, we could not get a consensus on requiring this, so we settled on encouragement but not a requirement.

To me, a tool like tox should be forgiving because you don't know how old the existing code bases may be trying to use the tool.

People also expect it to be fast. One of their major complaints about it is that it's slow. We worked hard on improving this, so I'm not willing to compromise. I'd be happy to accept a PR, though, that configures this behavior for those backends requiring this fresh subprocess behavior. PR for that is welcome.

gaborbernat avatar Dec 16 '22 00:12 gaborbernat

I'd be happy to accept a PR, though, that configures this behavior for those backends requiring this fresh subprocess behavior. PR for that is welcome.

Do you think this should happen automatically when falling into the setuptools.build_meta.__legacy__ path under the assumption that legacy setuptools is most likely to hit this, or would it be preferable to add a new top level tox configuration flag that configures the behavior explicitly?

cboylan avatar Dec 16 '22 00:12 cboylan

Do you think this should happen automatically when falling into the setuptools.build_meta.__legacy__ path under the assumption that legacy setuptools is most likely to hit this, or would it be preferable to add a new top level tox configuration flag that configures the behavior explicitly?

It should be explicitly configurable. However, the default should be False unless the backend is setuptools.build_meta.__legacy__ when it should be True.

gaborbernat avatar Dec 16 '22 00:12 gaborbernat

If you want to put in a PR you want to do changes around here https://github.com/tox-dev/tox/blob/main/src/tox/tox_env/python/virtual_env/package/pyproject.py#L309 and the configuration defined here https://github.com/tox-dev/tox/blob/main/src/tox/tox_env/python/virtual_env/package/pyproject.py#L123

gaborbernat avatar Dec 16 '22 00:12 gaborbernat

I actually think the hanging is a design issue with pyproject_api and calling backends in fresh subprocesses will merely disguise this issue. Please see https://github.com/tox-dev/pyproject-api/issues/39 for more info (and https://github.com/tox-dev/pyproject-api/pull/40 for a proposed fix).

Still trying to figure out how to resolve the actual underlying issue with pbr, which simply highlighted this hanging issue.

stephenfin avatar Dec 26 '22 15:12 stephenfin

I think I have sussed out the pbr issue. It appears to be a side-effect of running all commands in the same process and pbr's use of a global variable. I've proposed a fix to remove the use of this global. With that fix and https://github.com/tox-dev/pyproject-api/issues/39 in place, we should be looking much better.

That brings us on to what to do with this. It feels like adding a knob to run commands in separate subprocesses could be helpful for debugging tox-backend incompatibilities (which seem rather likely - at least for now - since tox is doing things "weirdly" compared to build) but I don't know how much use it would be outside of this and therefore whether it's worth exposing a new top-level CLI option or tox.ini flag for this. Would appreciate others' thoughts on the matter.

stephenfin avatar Jan 03 '23 13:01 stephenfin

Also, a random point for observers: tox is calling the prepare_metadata_for_build_wheel command even though it doesn't build wheels.

❯ tox -e py38
.pkg: _optional_hooks> python /dev/pyproject-api/src/pyproject_api/_backend.py True pbr.build
.pkg: get_requires_for_build_sdist> python /dev/pyproject-api/src/pyproject_api/_backend.py True pbr.build
.pkg: prepare_metadata_for_build_wheel> python /dev/pyproject-api/src/pyproject_api/_backend.py True pbr.build
.pkg: build_sdist> python /dev/pyproject-api/src/pyproject_api/_backend.py True pbr.build
py38: install_package> python -I -m pip install --force-reinstall --no-deps /tmp/tox-issue-2717/.tox/.tmp/package/7/foo-0.0.1.dev5.tar.gz
.pkg: _exit> python /dev/src/pyproject_api/_backend.py True pbr.build
  py38: OK (3.12 seconds)
  congratulations :) (3.16 seconds)

(or, for projects without a pyproject.toml file)

❯ tox -e py38
.pkg: _optional_hooks> python /dev/pyproject-api/src/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /dev/pyproject-api/src/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: prepare_metadata_for_build_wheel> python /dev/pyproject-api/src/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /dev/pyproject-api/src/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py38: install_package_deps> python -I -m pip install requests
py38: install_package> python -I -m pip install --force-reinstall --no-deps /tmp/tox-issue-2717/.tox/.tmp/package/8/foo-0.0.1.dev5.tar.gz
.pkg: _exit> python /dev/pyproject-api/src/pyproject_api/_backend.py True setuptools.build_meta __legacy__
  py38: OK (2.96 seconds)
  congratulations :) (2.99 seconds)

At first this seems odd and it's actually the combination of this call (which results in generation of a setuptools.dist.Distribution object) and the subsequent call to build_sdist (which also results in generation of a Distribution object) that highlights the global state bug in pbr I noted above. However, this call to prepare_metadata_for_build_wheel is intentional: tox is using it to watch for package dependency changes.

Just noting this in case anyone else was momentarily caught out by this :smile:

stephenfin avatar Jan 03 '23 13:01 stephenfin

You could switch your packaging to wheel from sdist, to save the need to call prepare_metadata_for_build_wheel+ build_sdist. Alternatively, we need those two.

gaborbernat avatar Jan 03 '23 16:01 gaborbernat