Control: reopen -1
The updated dependencies are now
Depends: python3-pyside2.qttest | python3-pyside6.qttest
this will accidentally switch some packages from PyQt5 to pyside2.
Going back to the start of this work:
#1124166 is a bug in the inkcut packaging - inkcut needs to specify
which Qt API it wants to test with, either via an environment variable
or in its test config (e.g. pyproject.toml).
#1124166 cannot be solved by changing the dependencies of
python3-pytestqt. inkcut would remain broken either:
- because a small fragment of pyside6 is dragged in by one of inkcut's
dependencies and so pytestqt's Qt API autodetection picks pyside6 every
time.
- or because this change brings in pyside2 and so the API autodetection
will pick pyside2 every time; that's not what is supposed to be tested,
even if it might accidentally pass.
No changes to the dependencies of pytestqt would ever get inkcut's tests
to use pyqt5 as needed in either of those situations.
I see that you've reverted python3-pyqtgraph's dependencies on pyside6 -
but that still will leave inkcut's tests running with pyside2 rather
than pyqt5 because of this change to python3-pytestqt. This is still
wrong. And inkcut's tests are still fragile to the next package that
makes a similar switch. That's not a bug in pytestqt.
#1124166 needs to be re-assigned back to inkcut. Setting
PYTEST_QT_API=pyqt5 in its debian/rules is the only thing that will
actually fix the bug and is a simple 1 line patch.
https://pytest-qt.readthedocs.io/en/latest/intro.html#requirements
To be clear, *all* packages wanting to use anything other than pyside6
are destined to be broken at some stage by pytestqt's
qt-api-auto-selection feature doing the wrong thing due to uncoordinated
changes in their dependencies. While python3-pyqtgraph's pyside6 dep has
been reverted, the next breakage will still come from some other
package. The qt-api-auto-selection feature is ok-ish on a very limited
CI system but not in our entangled and complicated dependencies in Debian.
Trying to prevent this breakage using the Depends of python3-pytestqt is
impossible, at best installing packages in the test system that are
unneeded, at worst breaking the Qt API selection right now for an
unknown selection of packages.
I think the correct course of action is
- pytestqt drop these dependencies, reverting to what was in trixie
- pytestqt document that it's up to the test calling package to depend
on what it needs and that explicitly selecting a Qt API is
recommended.
- inkcut explicitly declare that it wants pyqt5
- (this is the hard one) look through all build-rdeps/autopkgtest-rdeps
and identify any more qt-api-auto-selection time-bombs that are
waiting to go off. UDD tells me there are 24 packages with build-deps
and 16 packages with testsuite-triggers to look at, giving a total of
30 packages, some of which I know are already doing this right. I'm
happy to help.
Additionally, the autopkgtest tests fail because each of the necessary
Qt API packages are not installed there - they would need to be added to
build-depends for the current set-up to work.
Stuart
--
Stuart Prescott http://www.nanonanonano.net/ [email protected]
Debian Developer http://www.debian.org/ [email protected]
GPG fingerprint 90E2 D2C1 AD14 6A1B 7EBB 891D BBC1 7EBB 1396 F2F7