Update requirements and CI for PyQt6.7

6.7 is released now, some distros are already shipping it!

This commit:
1. adds a new 6.7 requirements file (the plain 6 one has already been
   updated by the bot)
2. adds a new tox env referring to the new requirements file
3. updates the mac and windows installer jobs to run with pyqt67 with the
   assumption we'll be including that in our next release
4. adds two new CI environments for 6.7, one each for python 3.11 and 3.12
   (3.12 only came out like 6 months ago)
5. updates a couple of references to the py37 tox env that looked like they
   were missed, 3.7 support was dropped in 93c7fdd
6. updates various ubuntu containers to the latest LTS instead of the previous
   related one - this is quite unrelated to this change but I thought I would
   give it a go, no need to use the old one unless we are specifically testing
   on it?
   - linters - they use tox but probably use system libraries
   - these all run in nested containers anyway, should be fully isolated
   - codeql - eh, uses a third party action, check the docs if it fails
   - irc - as above
This commit is contained in:
toofar 2024-04-28 13:58:15 +12:00
parent bdbbb93cd2
commit ce562b771d
4 changed files with 30 additions and 10 deletions

View File

@ -14,7 +14,7 @@ jobs:
linters:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
timeout-minutes: 10
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@ -86,7 +86,7 @@ jobs:
tests-docker:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
timeout-minutes: 45
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@ -129,7 +129,7 @@ jobs:
matrix:
include:
### PyQt 5.15.2 (Python 3.8)
- testenv: py37-pyqt5152
- testenv: py38-pyqt5152
os: ubuntu-20.04
python: "3.8"
### PyQt 5.15 (Python 3.10, with coverage)
@ -142,7 +142,7 @@ jobs:
os: ubuntu-20.04
python: "3.11"
### PyQt 6.2 (Python 3.8)
- testenv: py37-pyqt62
- testenv: py38-pyqt62
os: ubuntu-20.04
python: "3.8"
### PyQt 6.3 (Python 3.8)
@ -165,18 +165,26 @@ jobs:
- testenv: py312-pyqt66
os: ubuntu-22.04
python: "3.12"
### PyQt 6.7 (Python 3.11)
- testenv: py311-pyqt67
os: ubuntu-22.04
python: "3.11"
### PyQt 6.7 (Python 3.12)
- testenv: py312-pyqt67
os: ubuntu-22.04
python: "3.12"
### macOS Big Sur
- testenv: py312-pyqt66
- testenv: py312-pyqt67
os: macos-11
python: "3.12"
args: "tests/unit" # Only run unit tests on macOS
### macOS Monterey
- testenv: py312-pyqt66
- testenv: py312-pyqt67
os: macos-12
python: "3.12"
args: "tests/unit" # Only run unit tests on macOS
### Windows
- testenv: py312-pyqt66
- testenv: py312-pyqt67
os: windows-2019
python: "3.12"
runs-on: "${{ matrix.os }}"
@ -226,7 +234,7 @@ jobs:
permissions:
security-events: write
timeout-minutes: 15
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
@ -243,7 +251,7 @@ jobs:
irc:
timeout-minutes: 2
continue-on-error: true
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
needs: [linters, tests, tests-docker, codeql]
if: "always() && github.repository_owner == 'qutebrowser'"
steps:

View File

@ -0,0 +1,7 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
PyQt6==6.7.0
PyQt6-Qt6==6.7.0
PyQt6-sip==13.6.0
PyQt6-WebEngine==6.7.0
PyQt6-WebEngine-Qt6==6.7.0

View File

@ -0,0 +1,4 @@
PyQt6 >= 6.7, < 6.8
PyQt6-Qt6 >= 6.7, < 6.8
PyQt6-WebEngine >= 6.7, < 6.8
PyQt6-WebEngine-Qt6 >= 6.7, < 6.8

View File

@ -50,8 +50,9 @@ deps =
pyqt64: -r{toxinidir}/misc/requirements/requirements-pyqt-6.4.txt
pyqt65: -r{toxinidir}/misc/requirements/requirements-pyqt-6.5.txt
pyqt66: -r{toxinidir}/misc/requirements/requirements-pyqt-6.6.txt
pyqt67: -r{toxinidir}/misc/requirements/requirements-pyqt-6.7.txt
commands =
!pyqt-!pyqt515-!pyqt5152-!pyqt62-!pyqt63-!pyqt64-!pyqt65-!pyqt66: {envpython} scripts/link_pyqt.py --tox {envdir}
!pyqt-!pyqt515-!pyqt5152-!pyqt62-!pyqt63-!pyqt64-!pyqt65-!pyqt66-!pyqt67: {envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} -bb -m pytest {posargs:tests}
cov: {envpython} scripts/dev/check_coverage.py {posargs}