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
Dropping legacy QtWebKit (and Python <= 3.4, Qt <= 5.6) in v1.0 #2742
Comments
As I see it, people with QtWebKit distributions are stuck with that either way, regardless of upstream support. A lot of the bugs causing the crashes cannot be fixed in qutebrowser anyway since they are due to webkit limitations. So moving forward seems like the way to go. |
For gentoo: Here's the bug for stabilizing python 3.5. Hopefully they'll get it to stable by the time 1.0 is released. Upgrading qt to 5.7 in gentoo is a pain, but it is rock solid right now. I hope it gets stabilized quickly, but I'm not holding my breath. AFAIK, you can use type annotations in python3.4, they just won't actually do anything:
EDIT: never mind, I had typing installed via pip. Installing Maybe support for annotations were added in a minor release (and in that case, you could support something like python > I'm 👍 on dropping legacy webkit, it's very buggy and a bad experience overall. I think it's fair to let those people use an older version of qb, esp if it's easy to upgrade to webkit-ng on their platform. |
Looks like there's a stabilization request for Qt 5.7.1 in Gentoo too, FWIW. The main reason I'd like to drop Qt 5.6 and Python 3.4 isn't really code - I don't think there are many changes there (as long as The reason is that I don't know how to test it easily on Travis. The only distribution I've seen using Qt 5.6 (and not older) with Python 3.4 so far is Gentoo. I can't easily build a docker image of that on Travis because I presume not everything is available as a binary package (if anything?), and Travis' build timeout is 45mins IIRC. And without any testing, I can almost guarantee it'll break sooner or later, so I'd rather not support it at all in that case. |
Also, opensuse's latest stable version is on qt 5.6 and python 3.4. I think that they are currently trying to stabilize a new version though. |
qutebrowser already requires Qt 5.7 for QtWebEngine though (and I don't think I can easily extend that to 5.6, it's just too much missing there). Since I'm assuming OpenSUSE doesn't package QtWebKit-NG, that'd already be affected by the "no legacy QtWebKit" change... (edit: see a86170f for what was dropped when dropping Qt 5.6 support for QtWebEngine) |
Also see #2745 - this should't affect anyone not affected by the above, but if you're using something other than Archlinux, please do a quick check whether that's packaged (as |
Could you make sort of a table with the versions of each dependency for each qutebrowser release, past and future? |
QtWebEngine doesn't work on one of my systems (running Debian Unstable) because of Nouveau, so it would become impossible to run qutebrowser without relying on the QtWebkit from http://repo.paretje.be/. That's not a huge issue because that version is better anyway, but it would stop me from running qutebrowser with just dependencies from the Debian repositories. |
@1-61803 No need for a table I think - see the readme for the current dependencies. PyYAML was added in v0.2 I think, other than that (and QtWebEngine related things) there never were any big changes. What'd change with this:
@blyxxyz Oh, thanks for letting me know - I wasn't aware the package is only available for 64bit. I don't think this is something which should hold me back though, I'm afraid 😆 FWIW you should still be able to use QtWebEngine with |
@jgkamat FWIW, I will keep Python 3.4 support if and only if:
I tried getting something to run with Sabayon (which comes with binary packages), and after some struggling I almost got it to work - then I noticed it builds PyQt without the webengine useflag. It might be possible to install Qt from binaries with |
On a second thought, Python 3.5 has another big benefit: It's much better when resolving circular imports. We could probably get rid of most imports which are inside functions when switching to it... |
And another update I haven't thought about yet: tox < 2.3.1Looking at: Fedora 26, Ubuntu 16.04 and some others use 2.3.1, but we can drop everything that's older. (note that the 0.x versions are probably the messenger application "tox", not the Python thing) See the tox changelog - this will help a lot with #2341. |
For Fedora this should be fine, Fedora 24 (which ships Qt 5.6) is end of life in one month. Newer Fedora releases match the new criteria. |
Cleanups to be done after dropping supportPython 3.5
Legacy QtWebKit
Old Qt versions
|
Hi! From NixOS side:
|
Python < 3.5, Qt < 5.7.1, PyQt < 5.7 and legacy QtWebKit are now dropped in master, resulting in about 1000 lines less code! 🎉 |
I've partly talked about this before in #1775, but I think with v1.0 it's time to do this.
tl;dr: If you're using legacy QtWebKit, or Python 3.4, or Qt < 5.7, this will probably affect you.
Here is what I'd like to drop, and - unless someone convices me otherwise - probably will with v1.0:
Legacy QtWebKit
First of all: I won't drop QtWebKit completely, only the outdated version currently coming with Qt.
This is probably the biggest one, and to my knowledge it'll affect anyone using QtWebKit on distributions other than Archlinux and Gentoo. Those people won't be able to use qutebrowser anymore.
Unfortunately, people with Python 3.4 won't really have a good upgrade path to either QtWebKit-NG or QtWebEngine.
From what I've seen, this mostly affects Debian Jessie (now oldstable) and Ubuntu 14.04 (Trusty). It'd effectively mean dropping support for those distributions in qutebrowser.
Still I think this is the way to go, even if it hurts. Looking at crash reports, I still see a lot of people using legacy QtWebKit (around 1 report per day in average).
qutebrowser might work fine for those (and not work anymore afterwards) - and while that sucks, those people really should find some way to upgrade. With QtWebKit (especially on Qt < 5.4; see below), qutebrowser crashes quite a lot, and various websites recently stopped working as well (GitHub, Mastodon, Recaptcha/Google captchas, new Google sign-in page come to mind). It's also terrible from a security standpoint, so I think it's time to pull the plug.
The next release (v0.11) will already show a one-time warning when it detects legacy QtWebKit. I hope that gets those numbers down a bit, and gets people to migrate away before dropping support.
Python 3.4
I originally thought nobody using QtWebEngine/QtWebKit-NG would use Python 3.4 anymore, so it'd be possible to get rid of that. That'd mainly mean we could drop
qutebrowser.utils.typing
and start using type annotations freely, which opens the way for #1456.Crash reports tell me another story: Lots of Gentoo users (around one report all 2-3 days) still seem to be on Python 3.4. I'd still like to find out the story here - apparently it's easy to upgrade, but nobody does it? Looking at the Gentoo package it looks like Python 3.5 and 3.6 are still in testing (which means Gentoo is now officially more outdated than Debian stable)?!
Qt < 5.6
Again looking at crash reports:
As for the benefits, see #1775.
Legacy PyYAML
See #2745 - I don't think anything not affected by the above is affected by this though.
The text was updated successfully, but these errors were encountered: