[PyKDE] branching, PyKDE major versions

Phil Thompson phil at riverbankcomputing.co.uk
Mon Jul 18 08:36:42 BST 2005


> I am curious. I have noticed, or it has been brought to my attention,
> that it it has become a bit unusual that the PyQt source package
> supports all versions of qt, back to 2.3. In the interest of writing
> sip code for qt 4, Is there any particular reason why all qt versions
> are supported in one package? wouldn't it be a good idea to branch
> the project at least at major versions?

PyQt supports all versions of Qt back to 1.44. All versions are supprted
in one package because it's easier for me to do it that way. There was a
time when the code generated by SIP supported all versions of Qt (through
millions of #if's) but that was in the days when I didn't distribute the
.sip files.

> It looks to me like there are enough symantic differences in qt4 that
> now would be a good time to consider such a change. The reason I'm
> bringing this up is that the thought had crossed my mind to help in
> writing some of the sip code for qt4, but having looked at the <=3
> code (size, version compensation, and I'm a little reluctant to. If
> we were looking at schlepping sip code from pyqt3.x to  pyqt4.x, and
> writing appropriate new code, it would look a little more attractive.

However, PyQt4 will be different as it is being written using something
called MetaSIP. This is a GUI tool (written using PyQt of course) that
parses the C++ header files and creates a database of the whole API. It
allows you to enable/disable individual classes/functions of the API,
annotate individual arguments etc, and spits out .sip files. It can also
compare different versions of an API and generate the necessary %If
directives.

I'm not going to bother moving PyQt3 to MetaSIP as Qt 3.x is now very
mature and it's just not worth it. However, I do anticipate that PyQt4,
PyQt5 etc will all be built from the same MetaSIP database.

Phil




More information about the PyQt mailing list