Commit Graph

589 Commits

Author SHA1 Message Date
Florian Bruhin ec34865168 Move master branch references to main
Closes #7097
2023-07-23 11:38:19 +02:00
Florian Bruhin 273230eb07 Merge remote-tracking branch 'origin/pr/7789' 2023-07-22 12:36:31 +02:00
Florian Bruhin 9ef21eed1a tox: Update VIRTUALENV_PIP 2023-07-20 15:04:30 +02:00
Florian Bruhin 5a9027c54e mypy: Switch to upstream stubs for PyQt6
They are getting much better
2023-07-09 01:02:33 +02:00
arza 312b7878fa tox: Fix vulture-pyqtlink environment 2023-07-05 14:52:17 +03:00
Florian Bruhin 63ff0624d0 tox: Inherit setenv instead of duplicating 2023-06-30 19:29:28 +02:00
Florian Bruhin b5d5c7f4d3 More qt 6 tooling 2023-06-30 19:29:28 +02:00
Florian Bruhin ffc06e58d6 qt6: Switch most tooling/linting to Qt 6
Only mypy missing now...
2023-06-30 19:29:28 +02:00
Florian Bruhin 93c7fdd60c Initial Python 3.7 drop 2023-06-26 14:39:54 +02:00
Florian Bruhin fe994ef149 qt: Update mypy constants 2023-06-13 00:02:32 +02:00
Florian Bruhin 0b0401f8bb py312: Tell tox/virtualenv to upgrade pip
Otherwise we run into a Python 3.12 incompatibility with pkg_resources:
https://github.com/pypa/pip/issues/11501

Also needs PIP_REQUIRE_VIRTUALENV=0 because otherwise pip seems to
falsely assume it's installing things system-wide, weirdly.

Should probably be removed once there is a newer virtualenv, which
vendors a newer pip, which vendors a newer pkg_resources...

See #7727
2023-06-08 17:40:45 +02:00
Florian Bruhin 6e018fe2ab ci: Test a bigger sample of Python versions
- Make sure we still test Python 3.7 and 3.8 after dropping old PyQt
  versions in c5a51eb0bc
- Keep a modern Python version (3.11) with Qt 5 around, however
- Make sure we still test Python 3.10 too
- Also start testing the Python 3.12 alpha
2023-04-11 15:21:40 +02:00
Florian Bruhin 30e70803d0 ci: Add PyQt 6.5
See #7624
2023-04-10 23:25:15 +02:00
toofar f68798a081 ci: attempt to make the qt6 docker run work
On CI were were getting "Could not import sip" because link_pyqt was
looking for PyQt5.sip.
I made that look at QUTE_QT_WRAPPER since that's being set already on
tox.ini
There are probably a few other changes around link_pyqt and the makefile
etc we need to change when we switch the default wrapper.

I overrode the default `py` tox environment with py-qt6 to override
those wrapper related variables. I probably could have done something
sneaky with curly braces to make it so we don't have to add a few more
lines to the file. But in my opinion in config file is far to obfuscated
and hard to maintain already.

I changed the docker file to call the new py-qt6 env if it's a qt6
container. I'm not 100% sure that is required though since there is also
a tox invocation in the GH action definition, maybe that overrides the
container entrypoint? Also changed the indentation in the dockerfile
template a bit to make it easier to see where the conditionals start and
end.

Speaking of which I changed the matrix definition and tox invocation to
match a later one to hopefully make it so we can invoke different tox
environments in the containers without having to rebuild the containers.
Not sure I did that right, I'll see soon.

I added the unstable-qt6 container generation line so we can use it in
the future, and to match the not-qt6 one. I'm not switching to that in
CI though because the pyqt used by that is broken at the moment
(ref https://www.riverbankcomputing.com/pipermail/pyqt/2023-March/045214.html)

Also fixed the vim modeline in generate.py so my syntax highlighting
works.
2023-03-18 17:29:25 +13:00
Florian Bruhin 4793070db3 Merge branch 'qt6-v2' into master-qt6 2023-03-17 20:30:13 +01:00
Florian Bruhin 30125a2e2e tox: Install doc requirements for tests too
Needed so that tests generating :help docs run properly.

Follow-up to af176f749f and
bbdc83f638

(cherry picked from commit 3d56f57e50)
2023-03-14 16:36:06 +01:00
Florian Bruhin 3d56f57e50 tox: Install doc requirements for tests too
Needed so that tests generating :help docs run properly.

Follow-up to af176f749f and
bbdc83f638
2023-03-14 16:35:09 +01:00
Florian Bruhin 391623d5ec tox: Don't use environment names ending in digits
This fails now with 'failed with env name pyinstaller-32 conflicting with base python C:\hostedtoolcache\windows\Python\3.10.9\x86\python.exe'

See https://github.com/tox-dev/tox/pull/2824
2023-01-19 09:58:06 +01:00
Florian Bruhin b4d32e04f4 Merge branch 'master' into qt6-v2 2022-12-13 09:05:32 +01:00
Florian Bruhin 65440f3f1e ci: I shouldn't push changes before my first coffee 2022-12-13 08:49:06 +01:00
Florian Bruhin 21ac559a65 More adjustments for tox 4 subtleties 2022-12-12 13:42:32 +01:00
Florian Bruhin bbdc83f638 Fix lint/ci 2022-12-12 13:37:07 +01:00
Florian Bruhin 4c9050d4be Update tox.ini syntax for tox 4 compat
See https://tox.wiki/en/4.0.3/faq.html#tox-4-changed-ini-rules
2022-12-12 09:29:56 +01:00
Florian Bruhin a497ce69be tox/ci: Add PyQt 6.4 2022-11-24 09:26:30 +01:00
toofar 819d56043b doc: add some contributor notes about mypy
also update the default tox env list which I forgot to do when changing
the mypy targets.
2022-10-14 15:49:28 +13:00
Florian Bruhin 8dd2bd5b54 tox: Use more unique env var name
(Ab)using an environment variable indeed seems like the easiest way
forward here, but since it is exposed in the environment for the called
processes, let's give it a name which is less likely to clash, and more
easily identifyable.

Follow-up to c1738ca550.
2022-09-16 14:26:33 +02:00
Florian Bruhin 46ebef5644 mypy: Use tox.ini to install PyQt6 conditionally
The changes in requirements-mypy.txt would get overwritten on the next
dependency update. Also, it looks like we don't actually need PyQt6 (or
the PyQt6 stubs) available for checking PyQt 5 code if all Qt 6 imports
are appropriately gated by conditionals mypy knows about.

Follow-up to c1738ca550.
2022-09-16 14:13:50 +02:00
toofar 4b3ec40eb0 mypy: re-enable CI jobs for pyqt5
We'll be going forward with type checking on PyQt5 for now while
figuring out what to do with PyQt6 type checking.

See https://github.com/qutebrowser/qutebrowser/discussions/7372#discussioncomment-3502200
2022-09-11 17:31:52 +12:00
toofar c1738ca550 tox: split mypy env into mypy-{qt5,qt6}
Would be nice to have a bare `mypy` env which ran both the more specific ones
in sequence but I don't know how to do that.

Not sure if there is a way to pull the CONSTANTS_ARGS stuff out to a non-env
parameter and pass it into commands but I couldn't figure out a way. So via
the environment it is.

TODO: compare PyQt6 as-is with the WIP PyQt6-Stub
2022-09-11 10:19:44 +12:00
Florian Bruhin a516ad98fd tox: Simplify tox syntax
We can use negative factors now, and Qt 6.2/6.3 can be simplified too.

See https://tox.wiki/en/latest/config.html#complex-factor-conditions
2022-08-23 18:31:42 +02:00
Florian Bruhin c0ffd6d327 scripts: Pass through Qt 6 to PyInstaller 2022-08-23 18:31:41 +02:00
Florian Bruhin a5a824f234 scripts: Initial Qt 6 support for build_release.py 2022-08-23 18:31:41 +02:00
Florian Bruhin 5d671a1d2b tox: Add a build-release-qt6 environment
This raises our minimum tox version from 3.15 to 3.20 to properly
support the environment name with empty factors:
https://github.com/tox-dev/tox/issues/1636

Distribution-wise, this hopefully isn't a problem: Debian Buster
(oldstable) had tox 3.7, Debian bullseye (stable) has 3.21. Similar
story for Ubuntu: 20.04 LTS has 3.13, 21.10 (and thus 22.04 LTS) has
3.21.
2022-08-23 18:31:41 +02:00
Florian Bruhin c5a51eb0bc Drop Qt < 5.15
Fixes #7091

TODO: Add changelog
2022-08-23 18:31:41 +02:00
Florian Bruhin 0428ede31e Add test environments for Qt 6.2 and 6.3 2022-08-23 18:31:40 +02:00
Florian Bruhin dc7dad5de8 ci: Add actionlint 2022-07-11 10:23:27 +02:00
Florian Bruhin de0aa69b9a ci: Update Python versions 2022-04-26 17:14:38 +02:00
Jimmy 060e4fbf80 Drop python3.6 support.
Commits for dropping 3.5 support to copy from:

c245b7d855ccd "Initial drop of Python 3.5"
ccdfb44b85 "Drop support for Python 3.6.0"

Anything needed to update regarding OS version support in
doc/install.asciidoc?
TODO: remove 3.6/7 annotations in requirements files and
  rebuild

workflows: not sure I updated it right (run 5.12 with 3.7, same 18.04 OS) but
18.04 seems to have 3.7 on it too so it should work. It'll all change when we
drop <5.15 anyway. Not sure what the minimum ubuntu version will be going
forward.

Regarding mimetype overrides (ebb3046822) the doctring says they can all go
in 3.7 but .h5 is still missing on py39, not sure if we should care.

There are a bunch of old(?) warning messages still ignored in tests/end2end/fixtures/quteprocess.py.
2022-04-04 12:08:19 +12:00
Florian Bruhin e494100582 ci: Switch to FORCE_COLOR
pytest understands that since a while: https://pytest.org/en/7.0.x/reference/reference.html#environment-variables and other tools are adopting it: https://github.com/sphinx-doc/sphinx/pull/10260
2022-03-30 09:57:53 +02:00
Florian Bruhin 2957c5ccb8 Switch to newer Python for linters
We originally used Python 3.8 for pylint for https://github.com/PyCQA/pylint/issues/3760 which is long fixed... See 214dd63441
2022-03-29 17:52:21 +02:00
Philipp Albrecht afd78ad248 Enable backend auto-detection
Setting QUTE_BDD_WEBENGINE=true overrides the auto-detection mechanism.
2021-11-05 15:33:53 +01:00
Florian Bruhin 959c388984 tox: Use newest PyQt for pyinstaller
See #6611
2021-10-21 16:51:55 +02:00
Florian Bruhin 2f592f7ce6 Merge remote-tracking branch 'origin/pr/5457' into dev 2021-03-24 14:12:36 +01:00
Florian Bruhin 7b24ac9df7 tox: Add a bleeding environment
See #6298
2021-03-17 14:18:21 +01:00
Florian Bruhin f84b74823c tox: Force PyQt 5.15.3 for PyInstaller
See #6269
2021-03-12 13:31:52 +01:00
Florian Bruhin ab01b3970f ci: Add Python 3.10
Needs a couple of follow-up commits for workarounds, which hopefully
aren't needed anymore at a later point.

Fixes #6068
2021-01-26 20:32:57 +01:00
Florian Bruhin 1a4fff1a42 doc: Switch URLs to https 2021-01-26 15:19:01 +01:00
Florian Bruhin 4a9dea0aef tox: Don't run mypy over tests/
With https://github.com/python/mypy/pull/9614, mypy now tries to collect
all files in tests/, but it fails due to:

    tests/end2end/conftest.py: error: Duplicate module named 'conftest' (also at 'tests/end2end/features/conftest.py')
    tests/end2end/conftest.py: error: Are you missing an __init__.py?  [misc]

We should probably add __init__.py files to tests/ at some point...

See #6059 and #5249
2021-01-25 11:12:37 +01:00
Florian Bruhin 23198a1592 check-manifest: Ignore generated cheatsheet images 2020-12-30 12:53:01 +01:00
Florian Bruhin 214dd63441 tox: Use Python 3.8 for pylint
See https://github.com/PyCQA/pylint/issues/3760
2020-12-19 22:01:36 +01:00