Compare commits
10 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
8cb4556245 | |
|
|
21ee2d093a | |
|
|
06f77d18d2 | |
|
|
96ce299f3c | |
|
|
a41c14412b | |
|
|
f716467cb9 | |
|
|
6e22ec67b1 | |
|
|
a6736dd0f4 | |
|
|
a8a84b81d1 | |
|
|
649aac0c11 |
|
|
@ -1,5 +1,5 @@
|
||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 3.2.0
|
current_version = 3.2.1
|
||||||
commit = True
|
commit = True
|
||||||
message = Release v{new_version}
|
message = Release v{new_version}
|
||||||
tag = True
|
tag = True
|
||||||
|
|
|
||||||
|
|
@ -183,6 +183,11 @@ jobs:
|
||||||
os: macos-12
|
os: macos-12
|
||||||
python: "3.12"
|
python: "3.12"
|
||||||
args: "tests/unit" # Only run unit tests on macOS
|
args: "tests/unit" # Only run unit tests on macOS
|
||||||
|
### macOS Sonoma (M1 runner)
|
||||||
|
- testenv: py312-pyqt67
|
||||||
|
os: macos-14
|
||||||
|
python: "3.12"
|
||||||
|
args: "tests/unit" # Only run unit tests on macOS
|
||||||
### Windows
|
### Windows
|
||||||
- testenv: py312-pyqt67
|
- testenv: py312-pyqt67
|
||||||
os: windows-2019
|
os: windows-2019
|
||||||
|
|
|
||||||
|
|
@ -30,14 +30,20 @@ jobs:
|
||||||
name: qt5-windows-debug
|
name: qt5-windows-debug
|
||||||
- os: macos-11
|
- os: macos-11
|
||||||
toxenv: build-release
|
toxenv: build-release
|
||||||
name: macos
|
name: macos-intel
|
||||||
|
- os: macos-14
|
||||||
|
toxenv: build-release
|
||||||
|
name: macos-apple-silicon
|
||||||
- os: windows-2019
|
- os: windows-2019
|
||||||
toxenv: build-release
|
toxenv: build-release
|
||||||
name: windows
|
name: windows
|
||||||
- os: macos-11
|
- os: macos-11
|
||||||
args: --debug
|
args: --debug
|
||||||
toxenv: build-release
|
toxenv: build-release
|
||||||
name: macos-debug
|
name: macos-debug-intel
|
||||||
|
- os: macos-14
|
||||||
|
toxenv: build-release
|
||||||
|
name: macos-debug-apple-silicon
|
||||||
- os: windows-2019
|
- os: windows-2019
|
||||||
args: --debug
|
args: --debug
|
||||||
toxenv: build-release
|
toxenv: build-release
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,7 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: macos-11
|
- os: macos-11
|
||||||
|
- os: macos-14
|
||||||
- os: windows-2019
|
- os: windows-2019
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
runs-on: "${{ matrix.os }}"
|
runs-on: "${{ matrix.os }}"
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,38 @@ breaking changes (such as renamed commands) can happen in minor releases.
|
||||||
// `Fixed` for any bug fixes.
|
// `Fixed` for any bug fixes.
|
||||||
// `Security` to invite users to upgrade in case of vulnerabilities.
|
// `Security` to invite users to upgrade in case of vulnerabilities.
|
||||||
|
|
||||||
|
[[v3.3.0]]
|
||||||
|
v3.3.0 (2024-06-25)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Added
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
- There is now a separate macOS release built for Apple Silicon. A Universal
|
||||||
|
Binary might follow with a later release.
|
||||||
|
|
||||||
|
[[v3.2.1]]
|
||||||
|
v3.2.1 (2024-06-25)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Added
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
- There is now a separate macOS release built for Apple Silicon. A Universal
|
||||||
|
Binary might follow with a later release.
|
||||||
|
|
||||||
|
Changed
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
- Windows and macOS releases now bundle Qt 6.7.2, which includes security fixes
|
||||||
|
up to Chromium 125.0.6422.142.
|
||||||
|
|
||||||
|
Fixed
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
- When the selected Qt wrapper is unavailable, qutebrowser now again shows a
|
||||||
|
GUI error message instead of only an exception in the terminal.
|
||||||
|
|
||||||
[[v3.2.0]]
|
[[v3.2.0]]
|
||||||
v3.2.0 (2024-06-03)
|
v3.2.0 (2024-06-03)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@
|
||||||
</content_rating>
|
</content_rating>
|
||||||
<releases>
|
<releases>
|
||||||
<!-- Add new releases here -->
|
<!-- Add new releases here -->
|
||||||
|
<release version="3.2.1" date="2024-06-25"/>
|
||||||
<release version="3.2.0" date="2024-06-03"/>
|
<release version="3.2.0" date="2024-06-03"/>
|
||||||
<release version="3.1.0" date="2023-12-08"/>
|
<release version="3.1.0" date="2023-12-08"/>
|
||||||
<release version="3.0.2" date="2023-10-19"/>
|
<release version="3.0.2" date="2023-10-19"/>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
||||||
|
|
||||||
PyQt6==6.7.0
|
PyQt6==6.7.0
|
||||||
PyQt6-Qt6==6.7.1
|
PyQt6-Qt6==6.7.2
|
||||||
PyQt6-sip==13.6.0
|
PyQt6-sip==13.6.0
|
||||||
PyQt6-WebEngine==6.7.0
|
PyQt6-WebEngine==6.7.0
|
||||||
PyQt6-WebEngine-Qt6==6.7.1
|
PyQt6-WebEngine-Qt6==6.7.2
|
||||||
PyQt6-WebEngineSubwheel-Qt6==6.7.1
|
PyQt6-WebEngineSubwheel-Qt6==6.7.2
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
||||||
|
|
||||||
PyQt6==6.7.0
|
PyQt6==6.7.0
|
||||||
PyQt6-Qt6==6.7.1
|
PyQt6-Qt6==6.7.2
|
||||||
PyQt6-sip==13.6.0
|
PyQt6-sip==13.6.0
|
||||||
PyQt6-WebEngine==6.7.0
|
PyQt6-WebEngine==6.7.0
|
||||||
PyQt6-WebEngine-Qt6==6.7.1
|
PyQt6-WebEngine-Qt6==6.7.2
|
||||||
PyQt6-WebEngineSubwheel-Qt6==6.7.1
|
PyQt6-WebEngineSubwheel-Qt6==6.7.2
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
||||||
|
|
||||||
PyQt6==6.7.0
|
PyQt6==6.7.0
|
||||||
PyQt6-Qt6==6.7.1
|
PyQt6-Qt6==6.7.2
|
||||||
PyQt6-sip==13.6.0
|
PyQt6-sip==13.6.0
|
||||||
PyQt6-WebEngine==6.7.0
|
PyQt6-WebEngine==6.7.0
|
||||||
PyQt6-WebEngine-Qt6==6.7.1
|
PyQt6-WebEngine-Qt6==6.7.2
|
||||||
PyQt6-WebEngineSubwheel-Qt6==6.7.1
|
PyQt6-WebEngineSubwheel-Qt6==6.7.2
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ __copyright__ = "Copyright 2013-{} Florian Bruhin (The Compiler)".format(_year)
|
||||||
__license__ = "GPL"
|
__license__ = "GPL"
|
||||||
__maintainer__ = __author__
|
__maintainer__ = __author__
|
||||||
__email__ = "mail@qutebrowser.org"
|
__email__ = "mail@qutebrowser.org"
|
||||||
__version__ = "3.2.0"
|
__version__ = "3.2.1"
|
||||||
__version_info__ = tuple(int(part) for part in __version__.split('.'))
|
__version_info__ = tuple(int(part) for part in __version__.split('.'))
|
||||||
__description__ = "A keyboard-driven, vim-like browser based on Python and Qt."
|
__description__ = "A keyboard-driven, vim-like browser based on Python and Qt."
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -755,14 +755,14 @@ content.headers.user_agent:
|
||||||
# Vim-protip: Place your cursor below this comment and run
|
# Vim-protip: Place your cursor below this comment and run
|
||||||
# :r!python scripts/dev/ua_fetch.py
|
# :r!python scripts/dev/ua_fetch.py
|
||||||
- - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
|
- - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
|
||||||
(KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
|
(KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
|
||||||
- Chrome 117 macOS
|
- Chrome 125 macOS
|
||||||
- - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
|
- - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
|
||||||
like Gecko) Chrome/117.0.0.0 Safari/537.36"
|
like Gecko) Chrome/125.0.0.0 Safari/537.36"
|
||||||
- Chrome 117 Win10
|
- Chrome 125 Win10
|
||||||
- - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like
|
- - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like
|
||||||
Gecko) Chrome/117.0.0.0 Safari/537.36"
|
Gecko) Chrome/125.0.0.0 Safari/537.36"
|
||||||
- Chrome 117 Linux
|
- Chrome 125 Linux
|
||||||
supports_pattern: true
|
supports_pattern: true
|
||||||
desc: |
|
desc: |
|
||||||
User agent to send.
|
User agent to send.
|
||||||
|
|
|
||||||
|
|
@ -337,11 +337,11 @@ def early_init(args):
|
||||||
init_faulthandler()
|
init_faulthandler()
|
||||||
# Then we configure the selected Qt wrapper
|
# Then we configure the selected Qt wrapper
|
||||||
info = machinery.init(args)
|
info = machinery.init(args)
|
||||||
# Init Qt logging after machinery is initialized
|
|
||||||
init_qtlog(args)
|
|
||||||
# Here we check if QtCore is available, and if not, print a message to the
|
# Here we check if QtCore is available, and if not, print a message to the
|
||||||
# console or via Tk.
|
# console or via Tk.
|
||||||
check_qt_available(info)
|
check_qt_available(info)
|
||||||
|
# Init Qt logging after machinery is initialized
|
||||||
|
init_qtlog(args)
|
||||||
# Now we can be sure QtCore is available, so we can print dialogs on
|
# Now we can be sure QtCore is available, so we can print dialogs on
|
||||||
# errors, so people only using the GUI notice them as well.
|
# errors, so people only using the GUI notice them as well.
|
||||||
check_libraries()
|
check_libraries()
|
||||||
|
|
|
||||||
|
|
@ -548,6 +548,7 @@ class WebEngineVersions:
|
||||||
108: '108.0.5359.220', # ~2022-12-23
|
108: '108.0.5359.220', # ~2022-12-23
|
||||||
112: '112.0.5615.213', # ~2023-04-18
|
112: '112.0.5615.213', # ~2023-04-18
|
||||||
118: '118.0.5993.220', # ~2023-10-24
|
118: '118.0.5993.220', # ~2023-10-24
|
||||||
|
# 122: '122.?.????.???', # ~2024-??-??
|
||||||
}
|
}
|
||||||
|
|
||||||
_CHROMIUM_VERSIONS: ClassVar[Dict[utils.VersionNumber, Tuple[str, Optional[str]]]] = {
|
_CHROMIUM_VERSIONS: ClassVar[Dict[utils.VersionNumber, Tuple[str, Optional[str]]]] = {
|
||||||
|
|
@ -626,6 +627,10 @@ class WebEngineVersions:
|
||||||
## Qt 6.7
|
## Qt 6.7
|
||||||
utils.VersionNumber(6, 7): (_BASES[118], '122.0.6261.128'), # 2024-03-12
|
utils.VersionNumber(6, 7): (_BASES[118], '122.0.6261.128'), # 2024-03-12
|
||||||
utils.VersionNumber(6, 7, 1): (_BASES[118], '124.0.6367.202'), # ~2024-05-09
|
utils.VersionNumber(6, 7, 1): (_BASES[118], '124.0.6367.202'), # ~2024-05-09
|
||||||
|
utils.VersionNumber(6, 7, 2): (_BASES[118], '125.0.6422.142'), # 2024-05-30
|
||||||
|
|
||||||
|
## Qt 6.8
|
||||||
|
# utils.VersionNumber(6, 8): (_BASES[122], '???'), # 2024-03-12
|
||||||
}
|
}
|
||||||
|
|
||||||
def __post_init__(self) -> None:
|
def __post_init__(self) -> None:
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import subprocess
|
||||||
import argparse
|
import argparse
|
||||||
import tarfile
|
import tarfile
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import platform
|
||||||
import collections
|
import collections
|
||||||
import dataclasses
|
import dataclasses
|
||||||
import re
|
import re
|
||||||
|
|
@ -301,8 +302,10 @@ def build_mac(
|
||||||
dmg_makefile_path = REPO_ROOT / "scripts" / "dev" / "Makefile-dmg"
|
dmg_makefile_path = REPO_ROOT / "scripts" / "dev" / "Makefile-dmg"
|
||||||
subprocess.run(['make', '-f', dmg_makefile_path], check=True)
|
subprocess.run(['make', '-f', dmg_makefile_path], check=True)
|
||||||
|
|
||||||
|
arch = platform.machine()
|
||||||
suffix = "-debug" if debug else ""
|
suffix = "-debug" if debug else ""
|
||||||
suffix += "-qt5" if qt5 else ""
|
suffix += "-qt5" if qt5 else ""
|
||||||
|
suffix += f"-{arch}"
|
||||||
dmg_path = dist_path / f'qutebrowser-{qutebrowser.__version__}{suffix}.dmg'
|
dmg_path = dist_path / f'qutebrowser-{qutebrowser.__version__}{suffix}.dmg'
|
||||||
pathlib.Path('qutebrowser.dmg').rename(dmg_path)
|
pathlib.Path('qutebrowser.dmg').rename(dmg_path)
|
||||||
|
|
||||||
|
|
@ -322,11 +325,14 @@ def build_mac(
|
||||||
except PermissionError as e:
|
except PermissionError as e:
|
||||||
print(f"Failed to remove tempdir: {e}")
|
print(f"Failed to remove tempdir: {e}")
|
||||||
|
|
||||||
|
arch_to_desc = {"x86_64": "Intel", "arm64": "Apple Silicon"}
|
||||||
|
desc_arch = arch_to_desc[arch]
|
||||||
|
|
||||||
return [
|
return [
|
||||||
Artifact(
|
Artifact(
|
||||||
path=dmg_path,
|
path=dmg_path,
|
||||||
mimetype='application/x-apple-diskimage',
|
mimetype='application/x-apple-diskimage',
|
||||||
description='macOS .dmg'
|
description=f'macOS .dmg ({desc_arch})'
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
"""Fetch and print the most common user agents.
|
"""Fetch and print the most common user agents.
|
||||||
|
|
||||||
This script fetches the most common user agents according to
|
This script fetches the most common user agents according to
|
||||||
https://github.com/Kikobeats/top-user-agents, and prints the most recent
|
https://github.com/microlinkhq/top-user-agents, and prints the most recent
|
||||||
Chrome user agent for Windows, macOS and Linux.
|
Chrome user agent for Windows, macOS and Linux.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ def wrap(ini, sub, string):
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable-next=missing-timeout
|
# pylint: disable-next=missing-timeout
|
||||||
response = requests.get('https://raw.githubusercontent.com/Kikobeats/top-user-agents/master/index.json')
|
response = requests.get('https://raw.githubusercontent.com/microlinkhq/top-user-agents/master/src/index.json')
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
print('Unable to fetch the user agent index', file=sys.stderr)
|
print('Unable to fetch the user agent index', file=sys.stderr)
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ from qutebrowser.misc import lineparser, objects
|
||||||
pytestmark = pytest.mark.usefixtures('data_tmpdir')
|
pytestmark = pytest.mark.usefixtures('data_tmpdir')
|
||||||
|
|
||||||
|
|
||||||
COOKIE1 = b'foo1=bar; expires=Tue, 01-Jan-2036 08:00:01 GMT'
|
COOKIE1 = b'foo1=bar; expires=Tue, 01-Jan-2999 08:00:01 GMT'
|
||||||
COOKIE2 = b'foo2=bar; expires=Tue, 01-Jan-2036 08:00:01 GMT'
|
COOKIE2 = b'foo2=bar; expires=Tue, 01-Jan-2999 08:00:01 GMT'
|
||||||
SESSION_COOKIE = b'foo3=bar'
|
SESSION_COOKIE = b'foo3=bar'
|
||||||
EXPIRED_COOKIE = b'foo4=bar; expires=Sat, 01-Jan-2000 08:00:01 GMT'
|
EXPIRED_COOKIE = b'foo4=bar; expires=Sat, 01-Jan-2000 08:00:01 GMT'
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue