prev
Issue 24
17th September 2006
by Danny Allen
next


This Week...
Amarok gets the roots of support for the Magnatune music store. Work begins on a LiveUI Designer application. Mass import of KBoard code, a lightweight canvas intended for games. Work on supporting the XML Paper Specification format in okular. Support for multiple galleries in kipiplugins, on which Digikam and KPhotoAlbum depend. Support for compressed Scalable Vector Graphics (SVGZ) in kdelibs. Solid gets Network Management and CPU Monitoring capabilities. Continued improvements in KArchiver.

Adriaan de Groot describes his efforts in improving KDE code quality with the English Breakfast Network:
The EBN, or English Breakfast Network (I have a habit of registering silly domain names) is the KDE project's quality-checking site. It keeps track of a lot of things that are "wrong" in our code base and produces nice graphs and charts and summaries so that developers can go out and fix what's wrong. It's not a bug-tracking site - we have bugs.kde.org for that - but more a guidelines checker: what is wrong with code with respect to our coding guidelines, the human-computer interface guide, API documentation norms, accepted English usage for user documentation, and so on.

We just count stuff right now, so we can say "there's sixteen thousand things wrong with KDE4" and compare that to how many there were last week and see if we're getting better. The actual number doesn't mean much, certainly not when comparing different software projects (even within KDE's software repository) because the guidelines vary considerably. So 16000 means "there is room for improvement" and never "good" or "bad".

One of the important ideas behind the EBN is that it should enable developers who are looking for simple stuff to fix - "low hanging fruit" as we call it, for easy-to-reach stuff - can do so quickly by checking the EBN and picking some reports that it produces. For instance, you may wonder "what's wrong with the kdelibs user documentation" in order to fix something simple there. There is one report, for kspell, and that report explains what is wrong (a missing license for the user documentation) and suggests a fix. Bam, that's a quick way to improve KDE's code quality with a single commit.

The EBN grew out of my own annoyance at incomplete API documentation and collected more bits along the way; Frerich Raabe wrote the user documentation checkers with the guidelines from the documentation team; Allen Winter has introduced a tool called Krazy that checks our basic coding guidelines. So we cover the documentation and some fairly simple code stuff with our checking right now. That provides ample opportunity to improve the codebase, and we believe that as KDE4 gets closer to release the numbers should drop off considerably - after all, the guidelines are what we believe *make* good code and good documentation, and we want to release the best stuff we can.

The coding guidelines and API documentation checks have received a lot of attention from some developers. I'm really pleased to hear from people who have taken the EBN checks to improve their own code - or to complain about the checks themselves, since they're certainly not infallible. It shows that our approach to checking does pay off: it moves people to make tiny incremental improvements when there's nothing bigger to do. Compare this also with the effect that Coverity's checks had on KDE's codebase: there were many small errors found and a small group of focused developers went through and fixed them all, thus ridding KDE of a whole class of potential crashes.

In the long run we want more sophisticated checks, including semantic analysis of the code and automated usability checks. The latter has been partly done by Frerich using FrogLogic's Squish tool - a fair amount of our HCI guide can be quantified and tested automatically - but it takes quite some time and patience to get everything set up right on the server. So we will expand our coverage at some point, and that will *increase* the number of bad things we find. It shouldn't be disheartening, though, because it's all low-hanging fruit: simple to find, clearly reported, quick to fix.

Besides expanding the coverage with new tools, we're also looking into ways to make the reporting better on the EBN. You can not yet ask "what's wrong with kicker?" because we don't have the information sorted like that yet. We *have* it all, just scattered in different log files that need better collation. At some point, you may be able to subscribe to an RSS feed of your favorite app, waiting for low-hanging fruit to be dangled in front of you to pick.

The *real* goal is to make the EBN obsolete, really, because all the numbers go to zero and everyone is writing such tremendously good quality code that there's nothing to complain about at this level. *Then* we'll have had a real impact on KDE's code quality.

Keeping with the theme of code quality, according to Stephan Kulow, KDE is now back to zero reported defects from the Coverity scan.

Also worth mentioning is the 74 bugs closed by Sebastian Trueg in K3b this week, a great number considering the imminent release of K3b 1.0.


Statistics
Commits: 2664 by 230 developers, 5924 lines modified, 948 new files.
Open Bugs: 12889
Open Wishes: 11564
Bugs Opened: 286 in the last 7 days.
Bugs Closed: 288 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
411
/trunk/l10n
399
/trunk/www
330
/trunk/playground
318
/trunk/extragear
307
/branches/stable
272
/branches/work
173
/branches/KDE
137
/trunk/koffice
106
/trunk/kdenonbeta
51
Lines Developer Commits
221
Dirk Mueller
103
207
Gilles Caulier
85
126
Laurent Montel
59
127
Thomas Nagy
58
304
Paolo Capriotti
57
144
David Faure
55
131
Oswald Buddenhagen
51
53
Jos van den Oever
47
94
Eric Coquelle
39
94
Hamish Rodda
35

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
99.94%
Swedish
99.05%
Danish
98.97%
Spanish
96.99%
Dutch
96.76%
Estonian
93.81%
Italian
93.63%
French
93.03%
Greek
93.53%
German
92.23%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Sebastian Trueg
74
Andreas Kling
31
Seb Ruiz
17
Allen Winter
17
Alexandre Pereira de Oliveira
16
Tommi Tervo
14
Stefan Borggraefe
11
Juergen Appel
10
Joris Guisson
9
Mark Kretschmann
8

Program Buzz
Amarok
  3568
KDevelop
  704
Kopete
  700
K3B
  693
SuperKaramba
  689
KMail
  689
Kontact
  687
Kate
  687
Kicker
  567
digiKam
  489


Person Buzz
David Faure
  298
Waldo Bastian
  273
Kurt Pfeifle
  255
Tom Chance
  252
Scott Wheeler
  245
George Staikos
  245
Boudewijn Rempt
  235
Jonathan Riddell
  227
Anne-Marie Mahfouf
  218
Aaron Seigo
  217
Commit Countries

Commit Demographics
Sex
89.4 %       Male
8.58 %       (unknown)
0.645 %       Female
Motivation
51.4 %       (unknown)
34.2 %       Volunteer
12.9 %       Commercial
 
Ages
91.4 %       (unknown)
4.46 %       25 to 34
2.77 %       18 to 24


Contents
  Bug Fixes Features Optimise Security Other
Accessibility
Development Tools [*]
Educational
Graphics [*]
KDE-Base [*] [*] [*] [*]
KDE-PIM [*] [*]
Office [*]
Konqueror
Multimedia [*] [*] [*] [*]
Networking Tools [*] [*]
User Interface [*]
Utilities [*] [*] [*]
Games [*]
Other


Bug Fixes
KDE-Base
Andreas Kling committed changes in /branches/KDE/3.5/kdelibs/kdecore:
Have KIconLoader catch KIPC::IconChanged and make the necessary reconfigurations.

Makes all toolbar icons update when KDE's icon theme is changed.

Reviewed by David.
Diffs: 1, 2, 3 Revision 583159

Kurt Hindenburg committed a change to /branches/KDE/3.5/kdebase/konsole/konsole/TECommon.h:
Patch dealing with bold and the 256 colors issues by Lars Doelle.
Read the comments from lars on the bug report for more info about bold/intensive colors in KDE 3.5.x.
Bug 131770: no bold is displayed in konsole
Diff Revision 583168

David Faure committed changes in /branches/KDE/3.5/kdebase/kioslave/trash:
Only remove the entry (.trashinfo file) if the deletion succeeded; otherwise report the error.

This ensures that we don't end up with "trash appears to be empty but it still takes much hdd space".
Bug 116371: Trash appears to be empty, but files remain in ~/.local/share/Tra...
Diffs: 1, 2, 3, 4 Revision 583856

Joseph Wenninger committed a change to /trunk/KDE/kdelibs/kate/part/kateview.cpp:
make the cursor keys work for menus, if they were opened by Alt+Key. Without enabling/disabling the action collection the editor actions would have a higher priority than the key press events in the menu
Diff Revision 585481

Multimedia
Mark Kretschmann committed a change to /trunk/extragear/multimedia/amarok/src/contextbrowser.cpp:
We must not use KLocale::formatDateTime() in a helper thread. Behind the scenes KConfig is accessed, and this is totally not threadsafe. You get random crashes.

So for now the date is no longer localized. Hell, that's better than crashing.
Diff Revision 583704

Networking Tools
Giovanni Venturi committed changes in /trunk/playground/network/ksniffer:
Fixed the "Quitting from KSniffer". Now works correctly and let you save captured packets into a file if you need. Corrected also the removing of the temporary file correctly when quitting from KSniffer.
Diffs: 1, 2, 3, 4 Revision 582783

Features
Development Tools
Dirk Mueller committed changes in /branches/work/icecream-make-it-cool/services:
protocol 26 is now ping-free and just uses tcp keepalive for network connection tracking
Diffs: 1, 2, 3 Revision 583438

Hamish Rodda committed changes in /trunk/playground/devtools/livedesigner: