[PyQt] A Heads Up for PyQt Packagers
Hans-Peter Jansen
hpj at urpla.net
Mon Jun 25 12:42:56 BST 2018
Dear Phil,
On Sonntag, 17. Juni 2018 22:27:54 Phil Thompson wrote:
> This will mainly be of interest to people who create sip, PyQt4, PyQt5 etc.
> packages for Linux but also anybody who builds from source.
>
> Starting with v5.11 (ie. the next release) PyQt5 will use a private copy of
> the sip module. Packagers have the choice of including it with PyQt5 or
> creating a new package (PyQt5_sip?). The wheels will use the second
> approach (because the module is Python version specific, whereas the PyQt5
> modules themselves are not).
>
> There will be one last release of PyQt4 which will also use a private copy
> of the sip module.
>
> As a matter of interest, wxPython also uses a private copy of the sip
> module.
>
> The change fixes a 20 year old design mistake and makes it much easier to
> move on with SIP v5 without worrying about the baggage of PyQt4.
While this might ease further sip development, it will create headaches for
sip users for what I can imagine, since this will lead to a sip version
inflation over time on certain systems.
Attending sip and pyqt development for about 20 years now, I can see, that
external backflow to sip development is pretty low unfortunately. On the other
hand, it has *always* been a pleasure to package your stuff and to work with.
>From a packager POV, ending with sip4_qt4, sip4_qt5, sip4_kde4, sip4_kde5,
sip4_mypackage isn't exactly funny. Adding sip5 to the mix will further add
jags to the picture.
If a developer want to use the sip technology, first step would be choosing
the relevant sip version, clone it, and stick with it. Further improvements to
sip will most probably pass by since there's no pressure to get it right for
all sip users.
Given the scale of the generated bindings, I fear, that issues may pass
unnoticed with the new model much longer than now. This problem could be
combated with automatic generation of (python) test code, but this is a
mammoth project, that isn't going to be realized with the available manpower
any time soon. With the KDE bindings in mind, I bet, that there are a lot of
code paths, that were never exercised, nowhere. With my personal rule of thump
"code paths, that aren't exercised, are broken", this leaves behind an
uncomfortable feeling in this regard.
Hence, I'm not sure, if sip diversity will pay off in the end.
Please don't get me wrong, but branching and unitizing might be viable
solutions to the problem, that also reduce code diversity.
Cheers,
Pete
More information about the PyQt
mailing list