Hi Stuart, On Thu, May 02, 2024 at 09:50:46AM +1000, Stuart Prescott wrote: > Source: python-qtpy > Version: 2.4.1-2 > Severity: normal > X-Debbugs-Cc: stu...@debian.org > > Dear Maintainer, > > The qtpy description says "Abstraction layer for PySide2/PySide6/PyQt5/PyQt6" > however the packaging for python3-qtpy is optimised only for applications > using PyQt5, declaring Depends on all the python3-pyqt5 packages. > > An application that uses qtpy and any library other than pyqt5 needs to > have pyqt5 installed in addition to what is actually required. > [...]
Indeed; I have had a similar discussion a while back with one of the other qtpy maintainers, but I don't remember the details. I like your idea about having python3-qtpy-* packages; I hadn't thought of doing this, and it would be the least disruptive for reverse dependencies, as they could simply change to one of the python3-qtpy-* packages. I don't have the capacity to do this myself, but please feel free to do a team upload. If going down this route, the src:python-qtpy testsuite could be enhanced to test the various different backends. (This is supported by upstream, if I recall correctly.) Before you do this, though, please do compile a list of reverse dependencies that would be hit by this change so we understand the scope of the impact. > One possible solution to this would be for src:python-qtpy to include > the following packages: > > Package: python3-qtpy > Depends: python3-packaging > Contains: everything > > Package: python3-qtpy-pyqt5 > Depends: python3-qtpy, python3-pyqt5, python3-pyqt5.* > Contains: probably nothing > > Package: python3-qtpy-pyqt6 > Depends: python3-qtpy, python3-pyqt6, python3-pyqt6.* > Contains: probably nothing > > Package: python3-qtpy-pyside6 > Depends: python3-qtpy, python3-pyside6.* > Contains: probably nothing > Another solution is for python-qtpy to declare at most Suggests on any > of the pyqt/pyside packages and leave it to the application to declare > dependencies on the toolkit packages it needs. The application package > knows what toolkit and libraries are required while, by design, qtpy > does not. This would also provide better support for the split toolkit > packages given that Qt5 and Qt6 are modularised - the application can > depend on only what is needed rather than having all the split packages > installed just in case. This seems superfluous given your suggestion above: your new python3-qtpy package would be exactly this, except lacking the Suggests. (It should, of course, also suggest the python3-qtpy-* packages.) But given that python3-qtpy is extremely unlikely to be requested by an individual user - it is instead a runtime dependency of other packages - having a long list of Suggests is unlikely to bring much benefit. > PySide6 will hit NEW soon-ish and sasview will need the updated > packaging for qtpy soon after. I wouldn't do the qtpy update, then, until PySide6 has reached testing, or it will need two journeys to NEW itself. > I'm happy to do a Team Upload to implement whichever agreed strategy you > prefer. Best wishes, Julian