Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pytest_tornasync becomes hard dependency if pytest is installed #337

Closed
bollwyvl opened this issue Nov 13, 2020 · 2 comments · Fixed by #339
Closed

pytest_tornasync becomes hard dependency if pytest is installed #337

bollwyvl opened this issue Nov 13, 2020 · 2 comments · Fixed by #339

Comments

@bollwyvl
Copy link
Contributor

bollwyvl commented Nov 13, 2020

Hey, folks! Hooray for making pytest a first party concern, and offering a pytest plugin 🎉!

Boo for the co-presence of jupyter_server and pytest making other people's entry_points fail 👻!

Is there some way that pytest_tornasync can be lazily loaded, etc. such that not everything needs to bring it in unless actually testing?

I mean, I love some entry_points, and I would kill for jupyter_server extensions to be able to be delivered via "normal means," if indeed entry_points were the right way to do it (we some some knock-on effects here), but that software looks a bit long-in-the tooth (which is not necessarily a bad thing, but tornado has changed a fair amount), and I can never quite tell what plugins actually do to my pytest environment.

Alternatives

The extras don't really provide much assurance over time (basically ignored on subsequent solves), and pytest (in)compatibility can be a really real thing, even at initialization time.

I also thought I read somewhere that the extras wouldn't even be part of some future state of the pip solver, but I can't back that up with a link.

related:

@dhirschfeld
Copy link
Contributor

Thanks for opening this issue where it actually belongs @bollwyvl!

Over in voila-dashboards/voila#728 @adriendelsalle created a good repro:
voila-dashboards/voila#728 (comment)

@kevin-bates
Copy link
Member

Hi @bollwyvl - thank you for opening this issue along with the helpful information. I'm sorry things took a couple of months to find their way here and apologize for the frustration this has caused.

@dhirschfeld - thank you for providing the link.

We are currently in the process of addressing a different pytest-related issue (#322) in which we've decided to prefix all of the fixtures we package in a plugin, while moving their definitions to a separate repo: https://github.com/jupyter-server/pytest-jupyter that produces two plugins. PR #335 is the start of that transition, although based on this information and new understanding, we may want to hasten that effort as we were going to take a multi-step approach so as to not side-effect dependent projects.

The pytest-jupyter plugins have been published although I suspect they may exhibit a similar issue - so we'll want to focus some of these efforts there.

Let's move any detailed discussion to their respective PRs.

This aspect of pytest (publishing of plugins) is new to us and we were not aware of the negative side-effects. Sorry again.

Zsailer added a commit that referenced this issue Nov 17, 2020
Remove pytest11 entrypoint and plugin, require tornado 6.1, remove asyncio patch, CI work
Zsailer added a commit to Zsailer/jupyter_server that referenced this issue Nov 18, 2022
* minor fixes

* refactor polling

* use the synchronizer as a session manager

* typo

* move session logic into session manager

* minor fixing of poll heristic

* Bump to 0.18.0
hMED22 pushed a commit to hMED22/jupyter_server that referenced this issue Jan 23, 2023
-no-entrypoint

Remove pytest11 entrypoint and plugin, require tornado 6.1, remove asyncio patch, CI work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants