Commit Graph

2044 Commits

Author SHA1 Message Date
Florian Bruhin 97104b2000 Use builtin list/dict/set/... types for annotations
See https://peps.python.org/pep-0585/
and https://docs.python.org/3/whatsnew/3.9.html#type-hinting-generics-in-standard-collections

Done via:

    ruff check --select 'UP006' --fix --config 'target-version = "py39"' --unsafe-fixes

followed by removing unused imports:

    ruff check --select 'F401' --fix --config 'target-version = "py39"'

and a semi-manual review to find imports that are still needed (but ruff doesn't know about yet):

    git diff | grep '^-' | grep import | grep -v "from typing"

Also see #7098.
2024-10-15 11:54:49 +02:00
Florian Bruhin c32b8090ca Import typing classes from collections.abc
See https://peps.python.org/pep-0585/
and https://docs.python.org/3/whatsnew/3.9.html#type-hinting-generics-in-standard-collections

Not changing List/Dict/Set/etc. in this commit, as that's a way bigger change.

Done via:

    ruff check --select 'UP035' --fix --config 'target-version = "py39"'

Also see #7098.
2024-10-15 11:54:35 +02:00
Florian Bruhin c598cbbc71 Revert "ci: Avoid Archlinux' pyqt6 6.1.7-3 which lacks QSignalSpy"
This reverts commit 27e446d26d.
Archlinux now uses a PyQt 6.8 development snapshot.
2024-10-15 00:47:31 +02:00
Florian Bruhin b976a31ffa
Merge pull request #8321 from qutebrowser/feat/8260_drop_qt5_builds
Remove support for making Qt5 builds
2024-10-13 21:45:05 +02:00
Florian Bruhin 27e446d26d ci: Avoid Archlinux' pyqt6 6.1.7-3 which lacks QSignalSpy
See https://github.com/qutebrowser/qutebrowser/issues/8242#issuecomment-2409077518
2024-10-13 20:28:43 +02:00
Florian Bruhin 4d069b8fc3 Use str.removeprefix() and str.removesuffix()
https://docs.python.org/3/whatsnew/3.9.html#new-string-methods-to-remove-prefixes-and-suffixes
2024-10-13 18:24:44 +02:00
toofar d24a4c5ab0 Remove Qt5 switches from release building scripts etc
I just searched for qt5 and deleted stuff. EZ.
Will leave on a branch for a bit and see if I feel like testing this at
all, otherwise maybe leave this stuff in here and make it not called.

Not 100% sure that we need to remove all this stuff when we just want
the CI to go green. But tbh if we don't need to make Qt5 releases then
we don't need it. Better to be bold and pull it out than have to work
around it in the future. And we can always revert the commit.
2024-10-05 13:55:15 +13:00
toofar 3bc30e748d Merge pull request #8243 from feat/e2e_screenshots 2024-10-05 11:30:57 +13:00
toofar a409f9acf7 add changelog for jaraco.collections 2024-09-18 11:35:30 +12:00
toofar d49dd3d48f fix changelog urls 2024-09-06 17:43:12 +12:00
toofar a3238eb494 upload e2e failure screenshots as artifacts
This commit takes a screenshot of the active browser window when an
end2end test fails. When running on CI a zip file of screenshots will be
attached to the run summary as an artifact. When run locally screenshots
will be left in /$TMPDIR/pytest-screenshots/.

The screenshot is of the Xvfb screen that the tests are running under.
If there are multiple windows open it will likely only show the active
window because a) we aren't running with a window manager b) the Xvfb
display is, by default, the same size as the browser window.

I'm not sure if xvfb is used on the Window runs in CI. We could fall
back to trying to take screenshots if not running under xvfb but I'm a
bit wary of an automatic feature that takes screenshots of people's
desktops when running locally. Even if they just to to /tmp/ it might be
surprising. We can change it later if it turns out we need to try to
take screenshots in more cases.

I'm using pillow ImageGrab, the same as pyvirtualdisplay.smartdisplay. I'm
getting the display number from the pytest-xvfb plugin and formatting it
appropriately (pyvirtualdisplay has an already formatted one which is used by
the smartdisplay, but that's not accessible).

Pillow is now a requirement for running the tests. I thought about making
it gracefully not required but I'm not sure how to inform the user with
a warning from pytest, or if they would even want one. Maybe we could
add a config thing to allow not taking screenshots?

I had to bump the colordepth config for pytest-xvfb otherwise pillow
complained that the default 16bit color depth wasn't supported as it
only supports 24bit, see https://github.com/python-pillow/Pillow/blob/1138ea5370cbda5eb328ec949
8c314d376c81265/src/display.c#L898

I'm saving screenshots to a temp dir because I don't want to put them in
my workdir when running locally. I want to clear the directory for each
run so that you don't get confused by looking at old images. I'm not
100% sure about the lifecycle of the process classes though. Eg if we
have two processes they might both try to create the output directory.
I'm using pytest.session.stash to save the directory so perhaps the
lifecycle of the stash will handle that? Not sure.

Ideally the images would be uploaded somewhere where we could click
through and open them in the browser without having to download a zip
file, but I'm not sure how to achieve that.

It would be nice to print in the test logs that a screenshot was saved
and where to. Just so you could copy paste the filename instead of
having to match the sanitized filename against failing test names. But I
don't know how to log stuff from this stage in the pytest lifecycle.

TODO:
* I'm not sure that the screenshot captures the whole browser window?
  Maybe the browser windows is bigger than the X11 display?

Closes: #7625
2024-08-18 12:42:29 +12:00
toofar 452408870b adjust babel changelog (case change) 2024-08-12 19:29:07 +12:00
toofar 096a4edec2 Add changelog URLs
Few new vendored packages showing up from setuptools for environments
where pkg_resources is being imported for some reasons.

I don't think these requirements should be in our requirements files,
they aren't direct dependancies and they aren't declared as dependancies
of setuptools (and we are currently excluding setuptools from our
requirements files anyway, although apparently that is not the right
thing to do these days). These are actually not installed as normal
packages by are vendored packages shipped with setuptools.

Options I see to deal with them:

1. suck it up and add them to the compiled requirements files
  * not ideal, but should be harmless. They are real packages that the
    setuptools authors have chose to use
2. exclude these new packages using the markers in comments
  * maybe, seems like it could lead to issues in the future if any of
    these packages start getting declared as proper dependancies
3. find out where pkg_resources is being imported and stop it
  * I don't seem to be able to reproduce this behaviour locally, even
    when using a py3.8 docker container. And we are literally only
    running `pip freeze` via subprocess, what could the difference be?
  * I don't particularly want to delve into the arcane python packaging
    stuff, it seems to be layers and layers of very specific issues and
    old vendored packages
4. stop using pip freeze to compile requirements files and just compute
   them based off of the raw files themselves
   * Don't give us the chance to use stuff that we don't depend on but
     happens to be installed. We get other nice things with this too

This commit does (1). I'll open a follow up PR to do (4).
2024-08-12 19:29:07 +12:00
Florian Bruhin 086c1b4c08 scripts: Adjust PyQt[56]-sip package names 2024-07-15 08:09:13 +02:00
Florian Bruhin 4d2361288d ci: Fix pip/python usage for QtWebKit
I'm sure I tested this locally before pushing
b241b0360b but now it's broken?

This seems to fix things now. See #8247.
2024-06-29 21:59:43 +02:00
Florian Bruhin b241b0360b ci: Install a newer Python 3.10 for QtWebKit image
Starting with the upgrade to Hypothesis 6.103.4 we got hangs when pytest exits.
This is caused by:

https://github.com/HypothesisWorks/hypothesis/pull/4013

combined with:

https://github.com/python/cpython/issues/102126

which was fixed in Python 3.10.11, but the latest 3.10 packaged by Archlinux was
3.10.10.

Thus, we instead build a newer 3.10 from the AUR.
This bumps the build time up to about 20 minutes on my machine, which is
probably acceptable since those are nightly builds only anyways. We could
probably half that by disabling --enable-optimization, but that would be at the
cost of making the actual test runs (which run more often) slower.

Closes #8247
2024-06-29 20:47:59 +02:00
Florian Bruhin c836004dc0 Update mypy changelog URL
Seems to contain patch versions too
2024-06-25 09:41:57 +02:00
Florian Bruhin 4f66661ff8 Update sip changelog URL 2024-06-25 08:57:36 +02:00
Florian Bruhin dfae071aed ci: Try installing OpenSSL 1.1 for Qt 5 docker
Only OpenSSL 3 is installed currently, and for some reason, Qt 5 started failing in CI complaining that it only found OpenSSL 3 and not 1.1...
2024-06-20 17:52:10 +02:00
Florian Bruhin 6fd66619ba Switch to new Archlinux testing layout
should fix Docker package generation and maybe nightly builds
2024-06-20 11:10:34 +02:00
Florian Bruhin 3eeeaa5b48 scripts: Push to experimental repo if on experiments CI 2024-06-11 23:06:59 +02:00
Florian Bruhin 27164d0d6e Build separate Apple Silicon release
With GitHub Actions now providing macOS 14 runners with M1 chips, we can
build a separate Apple Silicon release there and upload it.

Universal wheels are currently not possible, see #8229 for details.

Closes #6478
2024-06-11 23:01:47 +02:00
Florian Bruhin 79942fa466 scripts: Update data link for ua_fetch.py
Same developer, just repo moved apparently
2024-06-04 22:27:59 +02:00
toofar b45d98f1c6 update changelog URLs for WebEngineSubwheel 2024-06-03 18:20:44 +12:00
toofar 7eb32a7550 update_3rdparty: move dict related imports into method
I'm trying to update pdf.js in the bleeding edge CI jobs. It complains
that either it can't find PyQt or it can't find yaml depending on how I
invoke tox. Joy. Since dict stuff isn't run by default in this script
hopefully that is the only broken import path and moving it into the
function lets the pdfjs (and ace) bit of the script work fine.

Actually, looking at the stack traces below, both of them are from dict
related code!

    tox exec -re bleeding -- python scripts/dev/update_3rdparty.py --gh-token ***
      Traceback (most recent call last):
        File "/__w/qutebrowser/qutebrowser/scripts/dev/update_3rdparty.py", line 20, in <module>
          from scripts import dictcli
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/dictcli.py", line 25, in <module>
          from qutebrowser.browser.webengine import spell
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/browser/webengine/spell.py", line 14, in <module>
          from qutebrowser.utils import log, message, standarddir
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/utils/message.py", line 15, in <module>
          from qutebrowser.qt.core import pyqtSignal, pyqtBoundSignal, QObject
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/qt/core.py", line 17, in <module>
          machinery.init_implicit()
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/qt/machinery.py", line 278, in init_implicit
          raise NoWrapperAvailableError(info)
      qutebrowser.qt.machinery.NoWrapperAvailableError: No Qt wrapper was importable.

    python scripts/dev/update_3rdparty.py --gh-token ***
      Traceback (most recent call last):
        File "/__w/qutebrowser/qutebrowser/scripts/dev/update_3rdparty.py", line 20, in <module>
          from scripts import dictcli
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/dictcli.py", line 25, in <module>
          from qutebrowser.browser.webengine import spell
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/browser/webengine/spell.py", line 14, in <module>
          from qutebrowser.utils import log, message, standarddir
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/utils/message.py", line 17, in <module>
          from qutebrowser.utils import usertypes, log
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/utils/usertypes.py", line 16, in <module>
          from qutebrowser.utils import log, qtutils, utils
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/utils/qtutils.py", line 39, in <module>
          from qutebrowser.utils import usertypes, utils
        File "/__w/qutebrowser/qutebrowser/scripts/dev/../../scripts/../qutebrowser/utils/utils.py", line 29, in <module>
          import yaml
      ModuleNotFoundError: No module named 'yaml'
2024-05-25 09:41:44 +12:00
toofar 22370b457f Install recent pdf.js in some CI jobs
This installs pdf.js in a selection of CI jobs. Previously the PDF.js
tests (in qutescheme.feature) were skipped in CI because it wasn't
installed anywhere. There has been a couple of recent cases where pdf.js
started depending on javascript features that are too new for even the
most recent QtWebEngine to support. The aim of this commit is to catch
that case. This doesn't add coverage for older webengine releases.

This also incidentally updates the ace editor in these test jobs, since that is
also updated by default by the update_3rdparty script. Hopefully that
doesn't cause issues.

The reasoning for installing on each type of job:

*ubuntu jobs*: not installed - while our main test runs are on ubuntu
  there is an upstream issue where many assets used by pdf.js (like icons
  used in the toolbar) aren't packaged, see #7904. This causes warning
  messages because assets requested via qutescheme can't be found, which
  causes the tests to fail. We could a) install pdf.js from source instead
  of using the ubuntu one b) ignore the warning logs c) skip this
  environment and rely on tests elsewhere. I've chosen to do (c). I don't
  see a huge benefit in testing pdf.js across multiple environments if we
  aren't using it installed from the OS anyway. We could install from
  source but currently all the Qt < 6.5 tests are failing from some other
  JS error, and I think fixing that is out of scope of this issue.

*docker Qt6*: installed - the archlinux pdfjs package works fine and we are
  only testing the most recent Qt versions because arch users are expected
  to stay up to date.

*docker Qt5*: not installed - doesn't support JS features required by
  PDF.js. I guess we could install the legacy build from source here. I'm
  mostly worried about catching new breakages for this commit though

*windows*: installed - we install pdf.js from source when making a
  release so it would be nice to do that in tests too.

*macos*: not installed - the tests that were catching the breakages are
  end2end tests which we don't run on mac. And I think there was an
  error from the :versions tests here, don't remember.

*bleeding edge*: installed - from source

pdf.js tests fail on Qt < 6.5 with `Uncaught TypeError: Cannot read
properties of null (reading 'mainContainer')`

The `TestPDFJSVersion.test_real_file` unit tests currently fails because
`version._pdfjs_version()` returns `unknown (bundled)`, not sure why. I
think this is pre-existing and it also wasn't being run on CI.
2024-05-25 09:41:44 +12:00
toofar c5fa5a0dc9 lint: Add misc check for QTimer initialization
Since we added some sanity checking in usertypes.Timer() around
QTBUG-124496 it would be convenient if there was a reminder for future
timer users to use our Timer object instead. Here's one!

It's looking for QTimer initialisations, we are still allowing
QTimer.singleShot(), although that probably can hit the same issue.

It uses an end-of-line anchor in the regex so you can put a comment (any
comment) on the end of the line to ignore the check.
2024-05-25 09:34:01 +12:00
Florian Bruhin 470ec752e1 Add Riverbank Computing as extra index for PyQt requirements
Easier fix instead of 6c4be8ef03.
Seems to get picked up just fine, and shouldn't hurt when it's not needed, as we
don't use --pre. Thus, no development releases should be installed.
2024-05-24 17:08:56 +02:00
Florian Bruhin 0f51171141 Revert "Try getting PyQt 6.7 from Riverbank server"
This reverts commit 6c4be8ef03.

Possibly easier solution in next commit.
2024-05-24 17:08:56 +02:00
Florian Bruhin 8b44c26146 Try getting PyQt 6.7 from Riverbank server
See https://www.riverbankcomputing.com/pipermail/pyqt/2024-April/045832.html and https://github.com/pypi/support/issues/3949
2024-05-24 17:08:56 +02:00
toofar 4e38b3e8df Ignore DIR_APP_DICTIONARIES message in release smoke test too
We've already ignored this in the tests, it started showing up in the
nightly builds a few days ago, only on macos for some reason.
2024-04-13 16:38:00 +12:00
Florian Bruhin 90ee0ea710 Adjust changelog URLs 2024-04-09 19:22:22 +02:00
toofar 642d63344c Add backports.tarfile changelog link
It's a new externalised dependency of jaraco.context, doesn't seem to
have a RTD site yet.

ref: e13fc7f2b3
2024-04-09 08:19:16 +12:00
toofar 98421e3c35 Move webkit.http to webkit.httpheaders
flake8 got a new warning about a module name shadowing a builtin module: https://github.com/gforcada/flake8-builtins/pull/121

Probably would have been safe enough to ignore it. But I don't think
moving it is that hard anyway. Hopefully I didn't miss anything!
2024-04-09 08:09:31 +12:00
Florian Bruhin 0a5d92119e importer: Stop using deprecated bs4 findAll
Fails bleeding edge CI due to warnings
2024-03-26 14:09:09 +01:00
toofar 17ddde3f72 Add changelog URLs
jaraco added some utility libraries they maintain to the keyring package
that they also maintain.

Also update changelog URLs to be consistent since they have a "skeleton"
project which lays everything out and publishes all their projects the
same. Should we be preferring GH or RTD links? idk
2024-03-25 18:41:46 +13:00
toofar 75c991b998 update importlib metadata changelog URL
See 2f3d0161f3 for the corresponding importlib_resources one.
Also this I guess? I don't really understand it, everything seems happy. https://github.com/python/importlib_metadata/issues/459
2024-03-25 11:49:20 +13:00
Florian Bruhin c073412b49 Rename readme_renderer in changelog URLs 2024-03-04 21:28:47 +01:00
toofar 2f3d0161f3 Update lint etc for dependencies
The lint ones are:

    linters (pylint): qutebrowser/completion/completionwidget.py#L440
    Consider using 'height = min(height, contents_height)' instead of unnecessary if block

    linters (pylint): qutebrowser/browser/webengine/webview.py#L241
    Useless suppression of 'no-member'

The no-member one might be due to this change: https://github.com/pylint-dev/pylint/issues/9246

For the importlib-resources one, I'm not sure why it's changed to be
underscore instead of a dash now. But at least it's consistent across
all the requirements files now!

I feel like I've seem this in a previous dependancy update too (for a
different package?) but I can't find that now.
2024-02-26 19:22:27 +13:00
Florian Bruhin 3494614fcb Update changelog URLs 2024-01-22 10:53:22 +01:00
Florian Bruhin 8afe153564 Update changelog URL 2024-01-22 09:52:41 +01:00
Florian Bruhin 4d3314cad8 Upgrade changelog and changelog URLs 2023-12-04 15:00:06 +01:00
Florian Bruhin 2e2e0c8031 pakjoy: 100% test coverage 2023-11-22 18:02:18 +01:00
Florian Bruhin 4ffb8a37aa scripts: Keep coverage.xml
useful for tools showing coverage info in e.g. your editor
2023-11-22 14:44:34 +01:00
toofar 27c5cc8cae Update pytest summary problem matcher for colored output
We think that at some point pytest added color codes to the summary
output which broke these matcher regex. It looks like there is an issue
about stripping color codes here: https://github.com/actions/runner/issues/2341

I've added wildcard (or no-space) elements instead of trying to match
the color codes exactly (eg `\033\[31m` etc) because 1) that's not very
readable 2) I was having trouble getting that to work with egrep.

The goal is to match the target strings but not to match then later in
the line as part of a test log or whatever. For the '= short test
summary =' that should be pretty unique. For the ERROR|FAILED I reckon
that could be a bit more common. I'm just matching with any mount of
non-space characters because I reckon a space will crop up pretty early
in any line where ERROR isn't the first work.

I think this new matching will only apply to new or rebased PRs after it
is landed.

ref: https://github.com/qutebrowser/qutebrowser/issues/5390#issuecomment-1817503702
2023-11-19 13:42:12 +13:00
Florian Bruhin 47c786484b docker: Downgrade more Qt for QtWebKit 2023-10-17 17:05:34 +02:00
Florian Bruhin a794c87e9b tox: Make -qt5 explicit for docker builds
Not needed on CI for a reason I don't quite understand, but needed locally for things to run.
2023-10-17 16:01:36 +02:00
Florian Bruhin 9d9f892ded docker: Also downgrade qt5-translations for WebKit 2023-10-17 16:01:36 +02:00
Florian Bruhin 4fd5af3ab3 scripts: Fix typo 2023-10-17 09:46:44 +02:00
Florian Bruhin 1b7e3cdb7d scripts: Add more debugging info 2023-10-17 09:46:16 +02:00
Florian Bruhin 513fc2c329 Adjust diff_cover changelog name 2023-10-16 21:24:59 +02:00
toofar e5a7d5c7a3
Merge pull request #7958 from qutebrowser/update-dependencies
Update dependencies
2023-10-16 09:24:52 +13:00
toofar 750e2b0a72 pylint 3.0 deprectations
Changelog: https://pylint.pycqa.org/en/latest/whatsnew/3/3.0/index.html#summary-release-highlights

remove `__implements__`:
That attribute is apparently from a rejected PEP. They say to inherit
from BaseChecker, which we are already doing.
https://github.com/pylint-dev/pylint/pull/8404

check_messages -> only_required_for_messages:
Seems straightforward instructions. I haven't actually tested it.
https://github.com/pylint-dev/pylint/pull/8409

remove emptystring extension:
Looks like this has been replaced by https://pylint.readthedocs.io/en/stable/user_guide/messages/convention/use-implicit-booleaness-not-comparison-to-string.html
Which is disabled by default but we have `enable=ALL`, so I guess that means
we indeed have it enabled.

And update changelog URLs.
2023-10-11 19:16:01 +13:00
Florian Bruhin fcc6062e5b docker: Also downgrade qt5-declarative 2023-10-10 09:12:48 +02:00
Florian Bruhin 920262aaf9 Update cffi changelog 2023-10-10 09:12:31 +02:00
Florian Bruhin 98845f275a Adjust changelog URLs for new readme-renderer 2023-09-11 11:11:26 +02:00
Florian Bruhin ffbbc3d9e7 Remove old download_release.sh
Releases aren't hosted on qutebrowser.org anymore
2023-08-17 14:47:49 +02:00
Florian Bruhin 5567c9290b Update releasing docs 2023-08-17 14:47:49 +02:00
Florian Bruhin 67ae39561a ci: Use -x for cherry picks 2023-08-17 12:42:21 +02:00
Florian Bruhin 60bb247f0d scripts: Fix name for Windows installer
Regressed in c2210539a9e2be1deacf8df8f432e035d9b9b9f0:
The current NSIS installer still adds the suffix. Let's keep it there for now
until we switch to the rewritten one.

See #6050
2023-08-17 12:41:35 +02:00
Florian Bruhin ae150d3a97 scripts: Don't upload PGP signature to PyPI
See https://blog.pypi.org/posts/2023-05-23-removing-pgp/
2023-08-17 12:41:35 +02:00
Florian Bruhin 680a941e64 scripts: Fix artifact list on Windows
Regressed in c2210539a9e2be1deacf8df8f432e035d9b9b9f0:
We don't want to return a list of lists.
2023-08-17 12:40:24 +02:00
Florian Bruhin 66f654b95c scripts: Avoid inputs on CI when releasing 2023-08-17 12:39:00 +02:00
Florian Bruhin a59bf7bc5b ci: Set twine PyPI token 2023-08-17 12:39:00 +02:00
Florian Bruhin 0e07d3b7b6 scripts: Show more info when no release was found 2023-08-17 12:39:00 +02:00
Florian Bruhin ab820fe8a0 ci: Set up asciidoc properly for releases 2023-08-17 12:39:00 +02:00
Florian Bruhin 13ddb50170 ci: More automatic release improvements/fixes 2023-08-17 12:36:25 +02:00
Florian Bruhin 950d06ad5b ci: Initial automatic release support
See #3725
2023-08-17 12:35:53 +02:00
Florian Bruhin 3fd8e12949 Merge remote-tracking branch 'origin/pr/7809' 2023-08-15 20:04:30 +02:00
Florian Bruhin a196344742 ci: Use proper image for Qt 6 bleeding tests 2023-08-15 19:31:36 +02:00
Florian Bruhin aea803cffa docker: Install xcb-utils-cursor on Arch for Qt 6 2023-08-15 19:11:49 +02:00
bitraid f903ae4985 nsis: minimum OS version check for Qt6
The Qt docs for 6.5 say that the minimum supported version is Windows 10
1809.

Experimentally it seems qutebrowser and it's dependencies work fine on a
version as early 1607.

There should be no change in OS version requirements for the Qt5 build,
although we've dropped 32 bit support already and in a future version of
the installer we may bring the minimum OS version support in line with
the Qt6 requirements for simplicity too.

Added a new QT5 version into the NSIS scripts so we can do the different
version check per installer build. It just uses the python bool
serialization format so should always be "True" or "False", but I've
added a fallback anyway for consistency.
2023-08-13 15:14:24 +12:00
toofar 0f2d34623c Merge remote-tracking branch 'upstream/main' into feat/mac_sandbox_pre_release_pyinstaller
Only conflict was the removal of support for 32bit builds in
build_release.py
2023-08-12 13:49:01 +12:00
Philipp Albrecht 80b4d2f243 Rename :later to :cmd-later
Group commands related to commands/commandline by prefixing them with `cmd-`.
2023-08-11 09:02:01 +02:00
toofar d084df8e3b Remove macOS exception for "sandbox disabled" error message 2023-08-05 17:03:50 +12:00
toofar c2092640e7 Remove local re-signing of macOS build.
Now that we aren't patching the build we shouldn't have to try to
re-sign in.
2023-08-05 17:03:50 +12:00
toofar 693e391410 Remove local patching/symlinking of macOS build.
In the past various workarounds have been put in place to move/copy/symlink
files in the macOS app build to make PyQt work and let us sign it.

As of https://github.com/pyinstaller/pyinstaller/pull/7619 our downstream
patching should not be required.

The application seems to run fine.
The app size is 155 MB.
Signing is still to be verified.
2023-07-30 14:53:06 +12:00
Florian Bruhin c2210539a9 Drop 32bit Windows release support
See #6050, still keeping open to track NSIS changes
2023-07-27 21:05:26 +02:00
Florian Bruhin 6d84462d68 scripts: Fix broken condition
Broken in ffc06e58d6
2023-07-25 11:00:33 +02:00
Florian Bruhin d145f0c253 scripts: Fix typo 2023-07-24 20:16:11 +02:00
Florian Bruhin 8fcd42fa12 Revert "Create a workaround to install PyQT 6.5.2 until release"
This reverts commit ed70741587.
2023-07-24 20:12:17 +02:00
Florian Bruhin e909f57f4f Fix lint/tests 2023-07-23 14:10:10 +02:00
Florian Bruhin 09fd975af7 reuse: Add linting for old license comments 2023-07-23 13:53:31 +02:00
Florian Bruhin a537ac3e49 reuse: Replace last copyright texts 2023-07-23 12:59:11 +02:00
Florian Bruhin 8ddaef35d0 reuse: Fix more copyright headers
See previous commit, forgot ? after year range
2023-07-23 12:56:13 +02:00
Florian Bruhin 3eb826f664 reuse: Update remaining copyright texts
git ls-files | \
    xargs sed -Ei 's/Copyright [0-9]{4}(-[0-9]{4}) ([^<]*)<([^>]*)>/SPDX-FileCopyrightText: \2<\3>/'
2023-07-23 12:52:01 +02:00
Florian Bruhin 0718b25796 reuse: Initial copyright text update for myself
git ls-files | \
    xargs sed -Ei 's/Copyright [0-9]{4}(-[0-9]{4}) Florian Bruhin \(The Compiler\) <mail@qutebrowser\.org>/SPDX-FileCopyrightText: Florian Bruhin (The Compiler) <mail@qutebrowser.org>/'
2023-07-23 12:49:05 +02:00
Florian Bruhin 77ca342cff reuse: Remove some more old license headers
git ls-files | \
xargs grep -l "This file is part of qutebrowser" | \
xargs grep -l SPDX-License-Identifier | \
xargs sed -i '/# This file is part of qutebrowser\./,/along with qutebrowser\.  If not, see <https:\/\/www\.gnu.org\/licenses\/>./d'
2023-07-23 12:15:03 +02:00
Florian Bruhin b2aaba6043 reuse: Adjust most license headers
git ls-files | xargs grep -l "is free software"  | xargs reuse annotate --license="GPL-3.0-or-later" --skip-unrecognised
2023-07-23 12:11:07 +02:00
Florian Bruhin ec34865168 Move master branch references to main
Closes #7097
2023-07-23 11:38:19 +02:00
Paul Mairo b9450a1356 fixup! fixup! mkvenv: Fix '--pyqt-type link' without --pyqt-version
I broke it oops
2023-07-22 15:03:13 +02:00
Paul Mairo 2a3993e5b8 fixup! mkvenv: Fix '--pyqt-type link' without --pyqt-version 2023-07-22 14:56:20 +02:00
Paul Mairo 5fa531e09e mkvenv: Fix '--pyqt-type link' without --pyqt-version
This is a follow-up of #7770 which was an attempt to fix the script broken in 9212ba9.
Before flipping the QT6 switch.
2023-07-22 14:38:06 +02:00
Florian Bruhin 273230eb07 Merge remote-tracking branch 'origin/pr/7789' 2023-07-22 12:36:31 +02:00
Paul Mairo ed70741587 Create a workaround to install PyQT 6.5.2 until release
Right now the version of PyQT available on PyPI is 6.5.1 and it's buggy with
Qutebrowser, this is a quick hack to get it working until it's released early next week.
2023-07-22 12:22:53 +02:00
Florian Bruhin 72aee69c9f Fix lint after dropping PyQt6-stubs 2023-07-10 10:14:03 +02:00
Florian Bruhin 9fcba3d61b Update changelog URLs 2023-07-10 10:07:36 +02:00
Florian Bruhin ee2c8c649c ci: Keep WebKit on life support for longer 2023-07-03 17:40:37 +02:00
toofar 9f9dfe7509 Add exceptiongroup changelog
Ref #7763
2023-07-03 20:44:52 +12:00
Florian Bruhin d48d85324e qt6: Reduce duplicate misc_checks.py code 2023-06-30 19:29:28 +02:00