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.

As a concrete example, the next version of sasview will need PySide6 for
Qt6 while using qtpy (via superqt widgets). The current packaging of qtpy
means that 'apt install sasview' will end up installing PySide6 and Qt6
via sasview's own dependencies plus also PyQt5 and Qt5 via python3-qtpy's
dependencies.

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.

PySide6 will hit NEW soon-ish and sasview will need the updated
packaging for qtpy soon after.

I'm happy to do a Team Upload to implement whichever agreed strategy you
prefer.

thanks!
Stuart

Reply via email to