[PyKDE] PyKDE 3.7 update

Jim Bublitz jbublitz at nwinternet.com
Mon Aug 11 08:18:00 BST 2003

The Bad News:

There are a few small errors in PyKDE-3.7-3 that ONLY affect 
KDE3.1.3, the first being you can't actually build PyKDE for 
KDE3.1.3 (it builds for KDE3.1.2 instead, which isn't really a 
problem - it still runs under KDE3.1.3). If you could build 
against KDE3.1.3, you'd find the sip files for dcop aren't 
included in the build (they're there - they just don't get built 
or imported by later modules). There's one other small 
versioning error, and I overlooked the fact that KDE includes 
kaccelmanager.h in both kdecore and kdeui. All fixed already.

If that's unclear,  PyKDE-3.7-3 will build under KDE 3.1.3 and 
run, but it won't allow use of new KDE 3.1.3 features (I'm not 
sure there are any really) from PyKDE.

The Good News:

PyKDE-3.7-3 builds against the latest sip/PyQt snapshots 
(20030801), so sip 3.8 compatibility shouldn't be hard to come 
by. This is especially good news since there appears to be a sip 
problem in the kfile module, and Phil will likely patch the 
snapshot instead of going back to rework sip 3.7 (sip 3.8 isn't 
too far off).

Both sets of problems above are due to inadequete testing. The 
"bad news" stuff was due to an oversight in updating the version 
list in build.py, and the kfile problems weren't caught because 
the testing for that module only covers handwritten code at 
present and assumes the machine generated code (which is almost 
everything) is correct. 95% of the time that's a good 
assumption. I've tended to put testing where it makes the most 
difference first, and that's economically sound, but doesn't 
always guarantee correct software.


I've done a few responses to people asking about how they can 
contribute to PyKDE, and they all mention testing as a priority. 
It takes me about 2 to 3 minutes to generate all of the sip 
files completely versioned and (almost) ready to build for a new 
release (and, no, I'm not kidding at all about the 2 to 3 
minutes - actually it takes another 10 -15 minutes to update the 
project file too). It takes considerably longer to implement 
good testing and I'd really appreciate help in that area.

I got a copy of "Refactoring" by Fowler in April, and from that, 
the general philosophy of test-driven development, and 8 years 
as a test engineer and manager working with automated hardware 
test systems,  I'm getting serious to fanatical about having 
testing in place for *everything*. You should be too. I'm real 
tired of software bugs, even if they're my own. 

Even if the problem ends up being in sip this time, it's still my 
responsibility to test sip-produced code and verify sip against 
PyKDE (and let Phil know when problems occur) - PyKDE is much 
harder in terms of what it demands from sip than any other 
bindings. That's one reason that, even before tonight's new bug 
report, I've set up a box for testing and building snapshots, 
and when appropriate I'll be posting PyKDE snapshots for testing 
to SourceForge. 

In Closing:

There will be another PyKDE release as soon as fixes are in place 
for the bugs mentioned above.  It may also include some 
additional features, as I have most of the operator overload 
stuff added to PyKDE (and yes, I've done at least some testing 
on the new features).


More information about the PyQt mailing list