-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
PR: Make QtWebEngine optional #22196
Conversation
One thing I would like to do, is to run the tests to ensure that this continues working. I'm not sure if it would be appropriate to add an other CI job, but I can look into it if you want. |
Hey @hmaarrfk, nice to see you here and thanks for all your contributions during the last days! You said:
First of all, thanks a lot for your kind words. In what feels to be a Jupyter monoculture of GUIs to do scientific programming in Python, we really value them. And second, thanks for helping us to move forward to support Qt6.
Is this also a problem for Qt5?
That's a very good point and I agree with you.
I really like this idea. Would you be ok with implementing it as part of this PR? If not, this is (of course) the right first step in that direction, so we'd merge it first and implement your suggestion in a follow up PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some small suggestions for you, otherwise looks good to me.
Generally yes.... the only reason that things have been "prompt" to update on the qt-webengine side is that Qt vendors so many of the dependencies. Its also what parts of webengine engine are depended on for users of conda-forge. Building "everything" is not a feasible target.
If you can choose the name of the attribute, then I can implement it this weekend. Thank you for the rest of the review, I'll take a look at it "soon" |
I prefer |
32ee71b
to
57f64ec
Compare
I feel like the plugin code should be more resilient in general to missing dependencies:
I mostly bring this up because maybe you don't that added property? |
dfeb080
to
da072ee
Compare
@ccordoba12, would the help plugin require |
@hmaarrfk, we did. You can check our lastet I think this problem only happens in development mode because in that case Spyder is not installed properly. So, you can run it in an env that doesn't contain all dependencies required in A possible fix would be to do a required (not optional) deps check at startup in development mode and inform users if some are missing. @mrclary, do you have a bit of free time to implement that?
@mrclary, no, it doesn't. But I think the Help's UI would look like a bug if we'd only display its plain text mode. However, we can talk about that in a follow-up issue and decide what to do about that. |
yeah i get it. I mostly was surprised to see the new features!!!! congrats! |
Shouldn't that already be reported on startup, regardless of spyder/spyder/plugins/application/plugin.py Line 134 in 01140e1
|
Is there anything else that is required for this to be merged. I believe all the comments pertaining to this Ii mprovement have been addressed. Sorry I derailed the conversation bringing up other dependencies. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last suggestions then this should be ready.
fc7445c
to
6cc6a98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @hmaarrfk for your help with this!
Sorry, I forgot about your comment @mrclary. That's right: we check for dependencies even in development mode. But that happens after the application starts. If there's a new dependency which is not part of the current env, and that dependency is imported before the app is instantiated, then Spyder will crash. So, my idea is to run the dependencies check in |
Description of Changes
I've been involved with packaging on conda-forge for the last few years and unfortunately the situation for packaging QtWebEngine hasn't really improved.
I think Spyder is a REALLY important tool for those starting off with python and being able to co-install it in modern environments is also a really great asset.
However, ensuring that qt-webengine is updated is a constant challenge and we are having a hard time keeping up especially on windows and OSX.
I would really like to continue to recommend Spyder to users, but if there isn't a clear path toward compatibility with qt6 (for which we don't have the webengine plugin) it makes it a really hard sell.
The following patch would effectively silently disable the plugins that require WebEngine.
One modification I would like to propose is the addition of a flag for each plugin like:
That way, plugins beyond
help
could declare themselves as requiring webengine and the main application would be able to disable them intelligentlyWrote at least one-line docstrings (for any new functions)The main visual difference is that by default the help tab no longer shows up:
Example showing matplotlib still working:
Issue(s) Resolved
Xref: conda-forge/qt-main-feedstock#49 (comment)
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.
I certify the above statement is true and correct: Mark Harfouche