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

Reply via email to