Hi, I think having a simple `pytest-multiprocessing` or `pytest-concurrent` would be extremely useful and cover a lot of people's use cases and would strongly recommend to have that as a separate plugin from something bigger that does feature hooks and/or remote execution.. It seems though as such a package already exists, https://github.com/reverbc/pytest-concurrent, which offers --concmode and --concworkers instead.
Frederik On Thu, Oct 24, 2019 at 2:46 PM Bruno Oliveira <nicodde...@gmail.com> wrote: > Hi everyone, > > For some time now execnet has been in maintenance only mode, and even so > very few people are willing to maintain it; lately just myself and I’m not > a good choice given that I don’t know the codebase at all, plus I have tons > on my plate already. This poses a problem because often we have bug reports > or feature requests in pytest-xdist which would require fixing or > improving execnet, and are currently left without solution. > > Ronny and I have on occasion discussed the possibility of changing execnet‘s > backend , with the current contenders being multiprocessing for local > distribution and mitogen for remote distribution. > > I would like to write down some thoughts and gather opinions from the > mailing list members. > multiprocessing > > Aside from not needing to maintain execnet anymore, being able to use > multiprocessing would bring several benefits: > > - > > pytest -s would work just fine, because multiprocessing does not use > stdout/stderr for communication. This is a often requested feature but > which we can’t (with current expertise) implement on execnet. > - > > It would automatically support anything that can be picked to be > transmitted across the wire. Currently execnet does not support custom user > types and some builtins (frozen sets for example). > > Without execnet we would lose the ability of running the tests in > different interpreter versions, but I believe this has been supplanted by > tox in the ecosystem. > mitogen > > Using mitogen for remote execution would provide automatic bootstrap of > the Python environment, which is not currently supported by xdist‘s ssh > remote execution, greatly limiting its usefulness in real-time scenarios. > > This is Ronny’s idea and he can add more here if wanted. > pytest-xdist2? > > All the changes mentioned above would break backward compatibility *hard*, > because details of the execnet implementation are currently exposed to > users in the command-line: > > pytest -d --tx popen//python > > And in several hooks: > > def pytest_xdist_newgateway(gateway): > """ called on new raw gateway creation. """ > > (gateway is an execnet object) > > To incorporate the new backends, we would need to severely break both > command-line and existing hooks. Given the level of breakage this could > cause, just bumping the major version in this case doesn’t seem enough, it > would be a disservice to users given that probably nobody pins pytest-xdist > to <=2, and it would break the world with hard to understand error > messages once a first major release was released. > > Because of this, we have been discussing creating a new package, > pytest-xdist2 (other suggestions are welcome), without any backward > compatibility guarantees with pytest-xdist. > > pytest-xdist2 would, at first, only support local test distribution using > multiprocessing (-n flag), no new hooks, and no remote execution. I’ve > made a proof of concept here: > > https://github.com/pytest-dev/pytest-xdist/pull/479 > > So it definitely seems possible. One immediate benefit is that the proof > of concept above supports pytest -s already, and can transfer anything > that’s pickled over the wire. > > So I would like to know what people think of the above ideas, if they are > good/bad, and/or suggest alternatives that we are not seeing right now. > > Ronny, please feel free to add to this email and correct anything I got > wrong. > > Cheers, > Bruno > _______________________________________________ > pytest-dev mailing list > pytest-dev@python.org > https://mail.python.org/mailman/listinfo/pytest-dev >
_______________________________________________ pytest-dev mailing list pytest-dev@python.org https://mail.python.org/mailman/listinfo/pytest-dev