New KDE versions are released every six months nowadays. Roughly three months are spent on developing new features, the other three are devoted to release preparations. “What’s needed to get things ready for the release?” the curious might ask. “Why does it take that long?” the impatient. I’ll tell you from my perspective as a Marble developer.
User Interface Enhancements
While the user interface — the “GUI” — is most prominent to the user, it is only a small part of an application. When developing new features, certain sins happen commonly: Default sizes of widgets are inadequate, labels have confusing names or include too technical names, icons are missing or misleading. These issues can not always be avoided in the first place since the user interface changes a lot while features are developed. After feature freeze, however, no major changes happen to the user interface anymore and it’s a good time to correct those little mistakes. What does that mean in practice? Have a look at the Beta 1 => Beta 2 changelog for Marble on Maemo to see some examples.
“Premature optimization is the root of all evil”, they say. It makes sense to develop new features with that phrase in mind, though of course in practice one needs to find a balance between software design, code length/beauty and speed optimizations. When preparing a release, things have settled down and speed bottlenecks can be found and addressed.
For Beta 2 and RC 1 there’ll be a couple of performance enhancements which improve the rendering speed on the N900 by a factor of two: Bernhard added an optimized mercator texture rendering, Thibaut addressed unnecessary casts and similar performance problems in hot spots and I reduced the number of included cities in the vector maps. Altogether this results in a much smoother zooming and panning experience.
Although some people may have the impression that release preparations are all about fixing bugs, this isn’t really the case. Code reviews and the regular usage of new features by all developers helps finding bugs very quickly. Of course some bugs are left — there will always be bugs in any software — but at least the common code paths are usually well tested at all times.
Traditionally packaging software is done by the distributions. For Maemo, however, we are doing the packaging by ourselves. This takes it’s own fair share of time. Until recently our packages failed to build from source, meaning they couldn’t be build on Maemo’s buildservers and therefore are not included in the Maemo extras repository up until now. Luckily I managed to fix that error yesterday. Marble is now in extras-devel, hopefully we get it into extras for the final release.
Software developers mostly work with the latest trunk version and don’t load any user interface translations. In time for the final release, the translations become ready. Distributions then package them alongside the application. Unfortunately this happens rather late and often users are the first testers. Surely this leads to problems like missing translations, wrong translations and user interface problems (e.g. sizes) induced by translations going unnoticed: People don’t care to create bug reports for these issues, assuming some developer is already aware of it. This is often not true. (Please don’t read this section as criticism to translators. Just the opposite; they’re doing a wonderful job. The process of testing translated applications is what needs improvements in my opinion.)
Our Maemo version was only available in english until now. For RC1 I want to include translations to get bug reports about user interface problems early enough to fix them for the final release. Therefore please report bugs about widgets looking ugly or being unusable because of translated strings having different sizes than their english counterparts. For example, in the (portuguese) screenshot below, the driving instruction could have a better line breaking (by making the transparent information widget wider), so that’d be worth a bug report. But please do not add bug reports about missing translations yet. Many languages were not fully translated at the time of writing.
Last but not least Marble has a handbook that needs to be updated regularly. It addresses the Desktop version and therefore not everything written in it can be transferred to our Maemo version. Therefore I started to add Maemo specific tutorials to Userbase. Additionally we have an introductory screencast now. All of that can be extended, please help out! Just drop a line to email@example.com or join #marble on IRC if you’re interested, but don’t know where to start exactly.