From 0de8337969395587f454684f87b149a06d73edeb Mon Sep 17 00:00:00 2001 From: qutebrowser bot Date: Mon, 26 May 2025 04:25:50 +0000 Subject: [PATCH 1/2] Update dependencies --- misc/requirements/requirements-dev.txt | 12 ++++++------ misc/requirements/requirements-mypy.txt | 4 ++-- misc/requirements/requirements-pylint.txt | 2 +- misc/requirements/requirements-pyqt-5.15.txt | 4 ++-- misc/requirements/requirements-pyqt-5.txt | 4 ++-- misc/requirements/requirements-pyqt-6.2.txt | 2 +- misc/requirements/requirements-pyqt-6.3.txt | 2 +- misc/requirements/requirements-pyqt-6.4.txt | 2 +- misc/requirements/requirements-pyqt-6.5.txt | 2 +- misc/requirements/requirements-pyqt-6.6.txt | 2 +- misc/requirements/requirements-pyqt-6.7.txt | 2 +- misc/requirements/requirements-pyqt-6.8.txt | 2 +- misc/requirements/requirements-pyqt-6.9.txt | 2 +- misc/requirements/requirements-pyqt-6.txt | 2 +- misc/requirements/requirements-pyqt.txt | 2 +- misc/requirements/requirements-tests.txt | 4 ++-- misc/requirements/requirements-tox.txt | 4 ++-- 17 files changed, 27 insertions(+), 27 deletions(-) diff --git a/misc/requirements/requirements-dev.txt b/misc/requirements/requirements-dev.txt index 2b55d6ecc..411882fae 100644 --- a/misc/requirements/requirements-dev.txt +++ b/misc/requirements/requirements-dev.txt @@ -6,12 +6,12 @@ autocommand==2.2.2 backports.tarfile==1.2.0 bracex==2.5.post1 build==1.2.2.post1 -bump-my-version==1.1.3 +bump-my-version==1.1.4 certifi==2025.4.26 cffi==1.17.1 charset-normalizer==3.4.2 click==8.1.8 -cryptography==45.0.2 +cryptography==45.0.3 docutils==0.21.2 exceptiongroup==1.3.0 github3.py==4.0.1 @@ -40,7 +40,7 @@ packaging==25.0 platformdirs==4.3.8 prompt_toolkit==3.0.51 pycparser==2.22 -pydantic==2.11.4 +pydantic==2.11.5 pydantic-settings==2.9.1 pydantic_core==2.33.2 Pygments==2.19.1 @@ -56,16 +56,16 @@ requests==2.32.3 requests-toolbelt==1.0.0 rfc3986==2.0.0 rich==14.0.0 -rich-click==1.8.8 +rich-click==1.8.9 SecretStorage==3.3.3 -sip==6.11.0 +sip==6.11.1 six==1.17.0 sniffio==1.3.1 tomli==2.2.1 tomlkit==0.13.2 twine==6.1.0 typeguard==4.3.0 -typing-inspection==0.4.0 +typing-inspection==0.4.1 typing_extensions==4.13.2 uritemplate==4.1.1 # urllib3==2.4.0 diff --git a/misc/requirements/requirements-mypy.txt b/misc/requirements/requirements-mypy.txt index 3f9c77f8e..ee999e744 100644 --- a/misc/requirements/requirements-mypy.txt +++ b/misc/requirements/requirements-mypy.txt @@ -1,7 +1,7 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py chardet==5.2.0 -diff_cover==9.2.4 +diff_cover==9.3.1 Jinja2==3.1.6 lxml==5.4.0 MarkupSafe==3.0.2 @@ -12,7 +12,7 @@ Pygments==2.19.1 PyQt5-stubs==5.15.6.0 tomli==2.2.1 types-colorama==0.4.15.20240311 -types-docutils==0.21.0.20250516 +types-docutils==0.21.0.20250526 types-Pygments==2.19.0.20250516 types-PyYAML==6.0.12.20250516 typing_extensions==4.13.2 diff --git a/misc/requirements/requirements-pylint.txt b/misc/requirements/requirements-pylint.txt index 763afbe04..0bfd6f11e 100644 --- a/misc/requirements/requirements-pylint.txt +++ b/misc/requirements/requirements-pylint.txt @@ -4,7 +4,7 @@ astroid==3.3.10 certifi==2025.4.26 cffi==1.17.1 charset-normalizer==3.4.2 -cryptography==45.0.2 +cryptography==45.0.3 dill==0.4.0 github3.py==4.0.1 idna==3.10 diff --git a/misc/requirements/requirements-pyqt-5.15.txt b/misc/requirements/requirements-pyqt-5.15.txt index 927508839..b4d82580c 100644 --- a/misc/requirements/requirements-pyqt-5.15.txt +++ b/misc/requirements/requirements-pyqt-5.15.txt @@ -1,7 +1,7 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py PyQt5==5.15.11 # rq.filter: < 5.16 -PyQt5-Qt5==5.15.16 +PyQt5-Qt5==5.15.17 PyQt5_sip==12.17.0 PyQtWebEngine==5.15.7 # rq.filter: < 5.16 -PyQtWebEngine-Qt5==5.15.16 +PyQtWebEngine-Qt5==5.15.17 diff --git a/misc/requirements/requirements-pyqt-5.txt b/misc/requirements/requirements-pyqt-5.txt index 292f35e7d..0f6357bda 100644 --- a/misc/requirements/requirements-pyqt-5.txt +++ b/misc/requirements/requirements-pyqt-5.txt @@ -1,7 +1,7 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py PyQt5==5.15.11 -PyQt5-Qt5==5.15.16 +PyQt5-Qt5==5.15.17 PyQt5_sip==12.17.0 PyQtWebEngine==5.15.7 -PyQtWebEngine-Qt5==5.15.16 +PyQtWebEngine-Qt5==5.15.17 diff --git a/misc/requirements/requirements-pyqt-6.2.txt b/misc/requirements/requirements-pyqt-6.2.txt index 49a247a16..8847801ea 100644 --- a/misc/requirements/requirements-pyqt-6.2.txt +++ b/misc/requirements/requirements-pyqt-6.2.txt @@ -4,4 +4,4 @@ PyQt6==6.2.3 PyQt6-Qt6==6.2.4 PyQt6-WebEngine==6.2.1 PyQt6-WebEngine-Qt6==6.2.4 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.3.txt b/misc/requirements/requirements-pyqt-6.3.txt index aa42e285b..60e16e4f5 100644 --- a/misc/requirements/requirements-pyqt-6.3.txt +++ b/misc/requirements/requirements-pyqt-6.3.txt @@ -4,4 +4,4 @@ PyQt6==6.3.1 PyQt6-Qt6==6.3.2 PyQt6-WebEngine==6.3.1 PyQt6-WebEngine-Qt6==6.3.2 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.4.txt b/misc/requirements/requirements-pyqt-6.4.txt index 134840e15..fc87b99f5 100644 --- a/misc/requirements/requirements-pyqt-6.4.txt +++ b/misc/requirements/requirements-pyqt-6.4.txt @@ -4,4 +4,4 @@ PyQt6==6.4.2 PyQt6-Qt6==6.4.3 PyQt6-WebEngine==6.4.0 PyQt6-WebEngine-Qt6==6.4.3 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.5.txt b/misc/requirements/requirements-pyqt-6.5.txt index 47d2626a8..d599b2ed4 100644 --- a/misc/requirements/requirements-pyqt-6.5.txt +++ b/misc/requirements/requirements-pyqt-6.5.txt @@ -4,4 +4,4 @@ PyQt6==6.5.3 PyQt6-Qt6==6.5.3 PyQt6-WebEngine==6.5.0 PyQt6-WebEngine-Qt6==6.5.3 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.6.txt b/misc/requirements/requirements-pyqt-6.6.txt index da1b2dc3c..67da9711d 100644 --- a/misc/requirements/requirements-pyqt-6.6.txt +++ b/misc/requirements/requirements-pyqt-6.6.txt @@ -4,4 +4,4 @@ PyQt6==6.6.1 PyQt6-Qt6==6.6.3 PyQt6-WebEngine==6.6.0 PyQt6-WebEngine-Qt6==6.6.3 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.7.txt b/misc/requirements/requirements-pyqt-6.7.txt index 463f8f6b9..b99759404 100644 --- a/misc/requirements/requirements-pyqt-6.7.txt +++ b/misc/requirements/requirements-pyqt-6.7.txt @@ -5,4 +5,4 @@ PyQt6-Qt6==6.7.3 PyQt6-WebEngine==6.7.0 PyQt6-WebEngine-Qt6==6.7.3 PyQt6-WebEngineSubwheel-Qt6==6.7.3 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.8.txt b/misc/requirements/requirements-pyqt-6.8.txt index 84c0d21f7..6669da8b2 100644 --- a/misc/requirements/requirements-pyqt-6.8.txt +++ b/misc/requirements/requirements-pyqt-6.8.txt @@ -4,4 +4,4 @@ PyQt6==6.8.1 PyQt6-Qt6==6.8.2 PyQt6-WebEngine==6.8.0 PyQt6-WebEngine-Qt6==6.8.2 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.9.txt b/misc/requirements/requirements-pyqt-6.9.txt index a70577da1..1c9e2ef81 100644 --- a/misc/requirements/requirements-pyqt-6.9.txt +++ b/misc/requirements/requirements-pyqt-6.9.txt @@ -4,4 +4,4 @@ PyQt6==6.9.0 PyQt6-Qt6==6.9.0 PyQt6-WebEngine==6.9.0 PyQt6-WebEngine-Qt6==6.9.0 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt-6.txt b/misc/requirements/requirements-pyqt-6.txt index a70577da1..1c9e2ef81 100644 --- a/misc/requirements/requirements-pyqt-6.txt +++ b/misc/requirements/requirements-pyqt-6.txt @@ -4,4 +4,4 @@ PyQt6==6.9.0 PyQt6-Qt6==6.9.0 PyQt6-WebEngine==6.9.0 PyQt6-WebEngine-Qt6==6.9.0 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-pyqt.txt b/misc/requirements/requirements-pyqt.txt index a70577da1..1c9e2ef81 100644 --- a/misc/requirements/requirements-pyqt.txt +++ b/misc/requirements/requirements-pyqt.txt @@ -4,4 +4,4 @@ PyQt6==6.9.0 PyQt6-Qt6==6.9.0 PyQt6-WebEngine==6.9.0 PyQt6-WebEngine-Qt6==6.9.0 -PyQt6_sip==13.10.0 +PyQt6_sip==13.10.2 diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt index ebbd744e9..fe7840291 100644 --- a/misc/requirements/requirements-tests.txt +++ b/misc/requirements/requirements-tests.txt @@ -9,14 +9,14 @@ certifi==2025.4.26 charset-normalizer==3.4.2 cheroot==10.0.1 click==8.1.8 -coverage==7.8.0 +coverage==7.8.2 exceptiongroup==1.3.0 execnet==2.1.1 filelock==3.18.0 Flask==3.1.1 gherkin-official==29.0.0 hunter==3.7.0 -hypothesis==6.131.18 +hypothesis==6.131.28 idna==3.10 importlib_metadata==8.7.0 importlib_resources==6.5.2 diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt index bf077cd03..c2037a90c 100644 --- a/misc/requirements/requirements-tox.txt +++ b/misc/requirements/requirements-tox.txt @@ -1,6 +1,6 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py -cachetools==5.5.2 +cachetools==6.0.0 chardet==5.2.0 colorama==0.4.6 distlib==0.3.9 @@ -10,7 +10,7 @@ pip==25.1.1 platformdirs==4.3.8 pluggy==1.6.0 pyproject-api==1.9.1 -setuptools==80.7.1 +setuptools==80.8.0 tomli==2.2.1 tox==4.26.0 ; python_full_version!="3.14.0b1" typing_extensions==4.13.2 From 072b03a63168ac703d25bef75b31ac8a9963925a Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 29 May 2025 23:42:40 +0200 Subject: [PATCH 2/2] Avoid version warnings with PyQtWebEngine-Qt5 5.15.17 With PyQtWebEngine-Qt5 5.15.17 (Qt 5.15.19), we seem to run into similar issues like we already did with Qt 6.5: https://github.com/qutebrowser/qutebrowser/issues/7624#issuecomment-1474008470 9cb54b2099a0e884df38e9de24d58b9bef195ca1 However, skipping the ELF test is not enough, as we also get warnings at runtime (as we don't have any API to get the version at runtime). We don't care much about Qt 5 at this stage, so let's just not output warnings in that case (and nothing in the code should care about the exact QtWebEngine patch level beyond 5.15.2 anyways). For most user-facing things, we *can* get the exact version number from the user-agent, so this should not actually affect much. --- qutebrowser/browser/webengine/webenginesettings.py | 13 ++++++++++++- qutebrowser/utils/version.py | 1 + tests/unit/misc/test_elf.py | 4 +++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 2d2d3c188..d16750bf4 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -453,8 +453,19 @@ def _init_default_profile(): init_user_agent() ua_version = version.qtwebengine_versions() + + logger = log.init.warning + if machinery.IS_QT5: + # With Qt 5.15, we can't quite be sure about which QtWebEngine patch version + # we're getting, as ELF parsing might be broken and there's no other way. + # For most of the code, we don't really care about the patch version though. + assert ( + non_ua_version.webengine.strip_patch() == ua_version.webengine.strip_patch() + ), (non_ua_version, ua_version) + logger = log.init.debug + if ua_version.webengine != non_ua_version.webengine: - log.init.warning( + logger( "QtWebEngine version mismatch - unexpected behavior might occur, " "please open a bug about this.\n" f" Early version: {non_ua_version}\n" diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py index eaa3662be..e9cea7866 100644 --- a/qutebrowser/utils/version.py +++ b/qutebrowser/utils/version.py @@ -594,6 +594,7 @@ class WebEngineVersions: utils.VersionNumber(5, 15, 16): (_BASES[87], '119.0.6045.123'), # 2023-11-07 utils.VersionNumber(5, 15, 17): (_BASES[87], '123.0.6312.58'), # 2024-03-19 utils.VersionNumber(5, 15, 18): (_BASES[87], '130.0.6723.59'), # 2024-10-14 + utils.VersionNumber(5, 15, 19): (_BASES[87], '135.0.7049.95'), # 2025-04-14 ## Qt 6.2 diff --git a/tests/unit/misc/test_elf.py b/tests/unit/misc/test_elf.py index 6ae23357c..5be9a2a12 100644 --- a/tests/unit/misc/test_elf.py +++ b/tests/unit/misc/test_elf.py @@ -11,6 +11,7 @@ from hypothesis import strategies as hst from qutebrowser.misc import elf, binparsing from qutebrowser.utils import utils +from qutebrowser.utils.utils import VersionNumber @pytest.mark.parametrize('fmt, expected', [ @@ -45,7 +46,8 @@ def test_result(webengine_versions, qapp, caplog): pytest.importorskip('qutebrowser.qt.webenginecore') versions = elf.parse_webenginecore() - if webengine_versions.webengine >= utils.VersionNumber(6, 5): + qtwe_version = webengine_versions.webengine + if qtwe_version == VersionNumber(5, 15, 19) or qtwe_version >= VersionNumber(6, 5): assert versions is None pytest.xfail("ELF file structure not supported")