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.
- Precompile patterns which leads to a nice speedup (8s -> 2.75s on my machine)
- Add an explanation
- Output messages in a way we can use GitHub Actions problem matchers
- Add those problem matchers
For some odd reason, there's a stray \033[0m at the beginning of the
line (despite colors being disabled?) which throws off GitHub's path matching.
Adjust the regex so that this isn't part of the filename (but still optional,
in case it gets removed from mypy).
- Set MYPY_FORCE_TERMINAL_WIDTH to get 180-column output (rather than 80), so
that error messages fit on one line.
- Set MYPY_FORCE_COLOR to get colored output
- Adjust problemmatcher regex accordingly
While trying to simplify the data structure, we didn't consider a case where we
want to register multiple matchers with the same severity...
Let's simplify things a bit, by having a list of matchers in the data. Also
attempt to pass that list to GitHub, because they support doing so, in
theory...