infrastructure: Stricter tox dependensies#8119
Conversation
tox.ini
Outdated
| pexpect: pexpect | ||
| pluggymaster: git+https://github.com/pytest-dev/pluggy.git@master | ||
| pygments | ||
| pluggymaster: git+https://github.com/pytest-dev/pluggy.git@0.13.1 |
There was a problem hiding this comment.
Not sure what to do with this - with master pip fails :
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.1.2 depends on pluggy<1.0 and >=0.12
There was a problem hiding this comment.
The defensiv requirement pin for pluggy may need to be widened
There was a problem hiding this comment.
I have a couple of questions:
- Is it ok to bump the upper bound for
pluggy(there are quite a few commits - pluggy/compare/0.13.1...master)? pytest>=6.0.0requirement comes from pytest-xdist, which is in toxdeps. What is the proper way of telling tox/pip to use local pytest (sdist package) when installing deps, instead of resolving from released ones?
There was a problem hiding this comment.
the bump for pluggy may need some experimentation
i have no idea how to tell tox/pip
There was a problem hiding this comment.
The idea of pluggymaster is to make sure pluggy master is working. So here it needs to remain @master.
But to think the conflict that the new resolver trips over, I think we can bump the pluggy requirement in setup.cfg to something like pluggy<1.0.0a1. pytest works with current pluggy master, and we'll at least try to make sure the next pluggy development release (if any) would use an alpha rather than dev.
There was a problem hiding this comment.
I have loosened pluggy requirements for pytest locally, but the issue is:
- tox installs
pytest-xdist pytest-xdistrequirespytest>=6.0.0- pip start resolving
pytestfrom released versions, instead of local one, that havepluggyversions bumped
I'm just started with tox (looking into config options), but perhaps someone have an idea how to solve this already.
Logs from tox -e py37-pluggymaster-xdist :
ERROR: Cannot install pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
and pytest-xdist because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.1.2 depends on pluggy<1.0 and >=0.12
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.1.1 depends on pluggy<1.0 and >=0.12
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.1.0 depends on pluggy<1.0 and >=0.12
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.0.2 depends on pluggy<1.0 and >=0.12
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.0.1 depends on pluggy<1.0 and >=0.12
The user requested pluggy 1.0.0.dev42+g0a064fe (from git+https://github.com/pytest-dev/pluggy.git@master)
pytest 6.0.0 depends on pluggy<1.0 and >=0.12
There was a problem hiding this comment.
adding xdist: -e . (7b281fe) seem to work, but not sure if this is the right way.
718a212 to
27adb9b
Compare
9d30ecb to
313b370
Compare
bluetech
left a comment
There was a problem hiding this comment.
Thanks a lot for digging into this @antonblr.
The main.yml LGTM, consistent with what the test job already does.
The tox changes look good to, it's good to bump things there occasionally, except for the pluggy change where I left a comment.
About the pyproject.yml/setup.cfg changes, it's generally better to have a wide range to give more flexibility to users. So I wonder if they were required for fixing the issues.
tox.ini
Outdated
| pexpect: pexpect | ||
| pluggymaster: git+https://github.com/pytest-dev/pluggy.git@master | ||
| pygments | ||
| pluggymaster: git+https://github.com/pytest-dev/pluggy.git@0.13.1 |
There was a problem hiding this comment.
The idea of pluggymaster is to make sure pluggy master is working. So here it needs to remain @master.
But to think the conflict that the new resolver trips over, I think we can bump the pluggy requirement in setup.cfg to something like pluggy<1.0.0a1. pytest works with current pluggy master, and we'll at least try to make sure the next pluggy development release (if any) would use an alpha rather than dev.
| setuptools>=40.0 | ||
| setuptools-scm | ||
| setuptools>=>=42.0 | ||
| setuptools-scm>=3.4 |
There was a problem hiding this comment.
kept them in-sync with pyptoject.toml
bluetech
left a comment
There was a problem hiding this comment.
Well, I guess all of the circular dependencies were bound to catch up to us eventually! I'm not sure if xdist: -e . is the appropriate way to deal with it really but since we need a clean CI for the upcoming release, let's go with that for now and figure it out later...
Proposal for #8117
@bluetech - I pinned the min versions for some of the packages to the current latest in
tox.ini(so pip will resolve them sooner). Builds are running faster now (ubuntu-py37-pluggy ~2min).