[PyKDE] PyKDE 3.7 update
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
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