Parallel mode disables usedevelop
See original GitHub issueInstead it will install an sdist.
Reproducing example:
ionel@bionic:/tmp$ cat tox.ini
[tox]
envlist = py36-{a,b}
[toxenv]
usedevelop = true
ionel@bionic:/tmp$ cat setup.py
from setuptools import setup
setup(name='foobar')
ionel@bionic:/tmp$ tox -p 2 -vv
using tox.ini: /tmp/tox.ini (pid 68987)
removing /tmp/.tox/log
using tox-3.10.0 from /usr/local/lib/python3.6/dist-packages/tox/__init__.py (pid 68987)
GLOB start: packaging
GLOB sdist-make: /tmp/setup.py
removing /tmp/.tox/dist
[68991] /tmp$ /usr/bin/python3 setup.py sdist --formats=zip --dist-dir .tox/dist >.tox/log/GLOB-0.log
running sdist
running egg_info
writing foobar.egg-info/PKG-INFO
writing dependency_links to foobar.egg-info/dependency_links.txt
writing top-level names to foobar.egg-info/top_level.txt
reading manifest file 'foobar.egg-info/SOURCES.txt'
writing manifest file 'foobar.egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md
running check
warning: Check: missing required meta-data: url
warning: Check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied
creating foobar-0.0.0
creating foobar-0.0.0/foobar.egg-info
copying files to foobar-0.0.0...
copying setup.py -> foobar-0.0.0
copying foobar.egg-info/PKG-INFO -> foobar-0.0.0/foobar.egg-info
copying foobar.egg-info/SOURCES.txt -> foobar-0.0.0/foobar.egg-info
copying foobar.egg-info/dependency_links.txt -> foobar-0.0.0/foobar.egg-info
copying foobar.egg-info/top_level.txt -> foobar-0.0.0/foobar.egg-info
Writing foobar-0.0.0/setup.cfg
creating '.tox/dist/foobar-0.0.0.zip' and adding 'foobar-0.0.0' to it
adding 'foobar-0.0.0/setup.cfg'
adding 'foobar-0.0.0/PKG-INFO'
adding 'foobar-0.0.0/setup.py'
adding 'foobar-0.0.0/foobar.egg-info/SOURCES.txt'
adding 'foobar-0.0.0/foobar.egg-info/dependency_links.txt'
adding 'foobar-0.0.0/foobar.egg-info/top_level.txt'
adding 'foobar-0.0.0/foobar.egg-info/PKG-INFO'
removing 'foobar-0.0.0' (and everything under it)
GLOB finish: packaging after 0.49 seconds
copying new sdistfile to '/home/ionel/.tox/distshare/foobar-0.0.0.zip'
package .tmp/package/4/foobar-0.0.0.zip links to dist/foobar-0.0.0.zip (/tmp/.tox)
⠋ [0] py36-a start: parallel py36-a
py36-b start: parallel py36-b
[68999] /tmp$ /usr/bin/python3 /usr/local/lib/python3.6/dist-packages/tox/__main__.py -p 2 -vv --installpkg .tox/.tmp/package/4/foobar-0.0.0.zip >.tox/py36-b/log/py36-b-12.log
[69000] /tmp$ /usr/bin/python3 /usr/local/lib/python3.6/dist-packages/tox/__main__.py -p 2 -vv --installpkg .tox/.tmp/package/4/foobar-0.0.0.zip >.tox/py36-a/log/py36-a-13.log
⠴ [2] py36-a | py36-bpy36-b finish: parallel py36-b after 1.58 seconds
✔ OK py36-b in 1.576 seconds
⠦ [1] py36-apy36-a finish: parallel py36-a after 1.61 seconds
✔ OK py36-a in 1.606 seconds
_____________________________________________________________________________________________________ summary _____________________________________________________________________________________________________
py36-a: commands succeeded
py36-b: commands succeeded
congratulations :)
cleanup /tmp/.tox/.tmp/package/4/foobar-0.0.0.zip
ionel@bionic:/tmp$ cat .tox/py36-b/log/py36-b-12.log
action: py36-b, msg: parallel py36-b
cwd: /tmp
cmd: /usr/bin/python3 /usr/local/lib/python3.6/dist-packages/tox/__main__.py -p 2 -vv --installpkg .tox/.tmp/package/4/foobar-0.0.0.zip
using tox.ini: /tmp/tox.ini (pid 68999)
using tox-3.10.0 from /usr/local/lib/python3.6/dist-packages/tox/__init__.py (pid 68999)
using package '/tmp/.tox/.tmp/package/4/foobar-0.0.0.zip', skipping 'sdist' activity
package 5/foobar-0.0.0.zip links to 4/foobar-0.0.0.zip (/tmp/.tox/.tmp/package)
py36-b start: getenv /tmp/.tox/py36-b
py36-b uses /usr/bin/python3
py36-b reusing: /tmp/.tox/py36-b
py36-b finish: getenv /tmp/.tox/py36-b after 0.08 seconds
py36-b start: installpkg /tmp/.tox/.tmp/package/5/foobar-0.0.0.zip
py36-b inst-nodeps: /tmp/.tox/.tmp/package/5/foobar-0.0.0.zip
setting PATH=/tmp/.tox/py36-b/bin:/home/ionel/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/lib:/home/ionel/.antigen/bundles/zsh-users/zsh-syntax-highlighting:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/dirpersist:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/command-not-found:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/colorize:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/python:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git:/home/ionel/.antigen/bundles/rimraf/k:/home/ionel/.antigen/bundles/ionelmc/docker-zsh-completion:/home/ionel/.fzf/bin
[69011] /tmp$ /tmp/.tox/py36-b/bin/python -m pip install --no-deps -U .tox/.tmp/package/5/foobar-0.0.0.zip
Processing ./.tox/.tmp/package/5/foobar-0.0.0.zip
Building wheels for collected packages: foobar
Building wheel for foobar (setup.py): started
Building wheel for foobar (setup.py): finished with status 'done'
Stored in directory: /home/ionel/.cache/pip/wheels/48/78/f8/2dcdc098ca50df4d6b8fee5d1f6ab13e05f3860b94c6703e7c
Successfully built foobar
Installing collected packages: foobar
Found existing installation: foobar 0.0.0
Not uninstalling foobar at /tmp, outside environment /tmp/.tox/py36-b
Can't uninstall 'foobar'. No files were found to uninstall.
Successfully installed foobar-0.0.0
WARNING: You are using pip version 19.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
py36-b finish: installpkg /tmp/.tox/.tmp/package/5/foobar-0.0.0.zip after 0.91 seconds
py36-b start: envreport
setting PATH=/tmp/.tox/py36-b/bin:/home/ionel/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/lib:/home/ionel/.antigen/bundles/zsh-users/zsh-syntax-highlighting:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/dirpersist:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/command-not-found:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/colorize:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/python:/home/ionel/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git:/home/ionel/.antigen/bundles/rimraf/k:/home/ionel/.antigen/bundles/ionelmc/docker-zsh-completion:/home/ionel/.fzf/bin
[69035] /tmp$ /tmp/.tox/py36-b/bin/python -m pip freeze >.tox/py36-b/log/py36-b-13.log
py36-b finish: envreport after 0.32 seconds
py36-b installed: foobar==0.0.0
removing /tmp/.tox/py36-b/tmp
py36-b start: run-test-pre
py36-b run-test-pre: PYTHONHASHSEED='3790122033'
py36-b finish: run-test-pre after 0.00 seconds
py36-b start: run-test
py36-b finish: run-test after 0.00 seconds
py36-b start: run-test-post
py36-b finish: run-test-post after 0.00 seconds
cleanup /tmp/.tox/.tmp/package/5/foobar-0.0.0.zip
ionel@bionic:/tmp$ tox --version
3.10.0 imported from /usr/local/lib/python3.6/dist-packages/tox/__init__.py
I have found this problem while trying to figure out how to skip wheel building when not really necessary for my tox-wheel plugin. I have this feeling that whatever the fix will be it will break my plugin so lets discuss first I guess?
Issue Analytics
- State:
- Created 4 years ago
- Comments:5 (4 by maintainers)
Top Results From Across the Web
Basic usage — tox 3.26.0 documentation
This spinner can be disabled by setting the environment variable TOX_PARALLEL_NO_SPINNER to the value 1 . Parallel mode by default shows output only...
Read more >placement/tox.ini at master - OpenDev
usedevelop = True. allowlist_externals = ... PYTHON=coverage run --source placement --parallel-mode. commands = ... enable-extensions = H106,H203,H904.
Read more >tox.ini · master · cloud-infrastructure / placement · GitLab
... True [testenv] basepython = python3 usedevelop = True allowlist_externals ... placement --parallel-mode commands = coverage erase stestr --test-path=.
Read more >tox(1) — tox — Debian buster - Debian Manpages
You can also disable it from the tox.ini by setting PYTHONHASHSEED = 0 as ... Parallel mode displays a progress spinner while running...
Read more >detox - PyPI
detox was a plugin for tox to enable parallel environment execution. tox 3.7 added a ... as tox added a parallel mode in...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@ionelmc looks like rename
[toxenv]
to[testenv]
fixes the issue. See:Note the “skipping sdist step”.
Huh, I just saw this today. I upgraded tox to version 4.0.15, ran
tox p
in check-python-versions and saw this:Coverage showing the paths as
.tox/coverage/lib/python3.10/site-packages/check_python_versions/
indicates thatusedevelop = true
in my tox.ini was ignored.Running
tox -e covergage
afterwards showed the correct 100% coverage with the paths in the coverage report showingsrc/check_python_versions/
.Since life is short and sporadic errors like this are annoying I modified check-python-versions to no longer use usedevelop in the next commit, but I thought you might want to know that the bug is not fixed yet.