Project Timelo﻿rd, however, is rolling right along. Since we are right around alpha 3 and around half way through the cycle, I thought I’d take a moment to do a review on the progress of Project Timelord.

For your convenience, here are the goals that we had set out to accomplish (be)for(e) Kubuntu 10.04:

Announce Project Timelord to the world

Establish sensible bug triage policy

Re-evaluate support policies

Review all patches to core KDE modules

Fix translations, through whatever means necessary

Thoroughly test all Kubuntu utilities, and fix bugs when encountered

Replace gdebi-kde/install package use with KPackageKit

Replace update-notifier-kde with kubuntu-notification-helper

Port printer-applet-kde from KSystemTrayIcon to the new KStatusNotifierItem

Package and include kcm-touchpad, the Touchpad module for System Settings

Add KAuth integration to Userconfig

Quite a list, looking back on it. To start off the review:

Announce Project Timelord to the world

Status: Done

Yeah, this one was pretty much done from when we announced it. 😉

Establish sane bug triage policy

Status: Done

The new policy has been set in to place. The result has been a cleaner, more effective bug tracker at Launchpad. As a result, I personally have been able to spend a lot more time triaging bugs at bugs.kde.org myself now that the volume of bugs at Launchpad has decreased. Nobody’s complained either, so that’s a good sign. 🙂

Reevaluate support policy

Status: Todo

Not too much has been done here actually. Post-release support has always been a best-effort, uh, effort. Volunteers welcome, etc, etc. Pretty much somebody just needs to write up a doc of some sort and propose it at a Kubuntu meeting, I suppose.

Review all patches to core KDE modules

Status: Done

The patch review got completed pretty early. Upstream KDE should now be aware of all the patches we are carrying. We were able to upstream a fair number of these patches, so that everybody can benefit from them. Overall, I’d say this is a success and something that we (upstream, us, everybody) can benefit from doing on a per-cycle basis.

In addition, Plasma desktop scripting has introduces a safer way to define our default desktop. We are now using this scripting API, rather than patching Plasma itself or providing pre-determined configuration files, to determine our default desktop configuration. Both of the previously-used methods have problems, and this scripting API leads to a much safer and more-powerful solution than either method we used in the past. See Harald’s blog for the nitty-gritty details.

Fix translations, through whatever means necessary

Status: Done

Right off the bat I’d like to say: Launchpad translations are still in use. Like it or not, the Launchpad Translations infrastructure is, well, an infrastructure, and as such moving away from using it is not trivial, and would have the possibility to introduce regressions (which would be especially bad for an LTS release). However, that being said there are no known regressions from the upstream KDE translations for core KDE modules. Multilingual testers, please keep on testing with Lucid to help ensure things remain that way. 🙂

Thoroughly test all Kubuntu utilities, and fix bugs when encountered

Status: Ongoing

This will be pretty much an ongoing task up until the final release of Kubuntu 10.04. That hasn’t stopped great progress from being made. I’d like to take this moment to recognize the work of Amichai Rothman, who has done a Herculean amount of work wrangling over a dozen bugs for the KDE frontends of Software-properties and Jockey, including some very annoying and old beasties that nobody had ever got around (or figured out) how to tame. In particular, I’d like to point out this massive changelog entry which closes a dozen bugs on its own. Amichai didn’t stop there, though, later that month he squashed a handful more.

I feel this portion of the project is going strong, and I think it highlights a success of the project in general. Success in this portion could not have been achieved without fresh contributors, and I would like to thank any and all new contributors for their work.

Replace gdebi-kde/install package use with KPackageKit

Status: Todo

This one is waiting on some improvements to be worked out with KPackageKit upstream to ensure that KPackageKit is a suitable replacement for our current batch installer install-package. This should be fairly trivial to work out before 10.04, so I’m still optimistic.

Replace update-notifier-kde with kubuntu-notification-helper

Status: Done

The replacement for update-notifier-kde, kubuntu-notification-helper, is now included with Kubuntu 10.04 as of alpha 2. It completely implements all of what update-notifier-kde did, and does it better. My blog post on it has details, but the main improvements are dramatically reduced RAM usage and tighter integration with the KDE notification system.

Port printer-applet-kde from KSystemTrayIcon to the new KStatusNotifierItem

Status: Done

Earlier I had posted that this was completed. (And even users of Kubuntu 9.10 + KDE 4.4 get this!) Unfortunately it didn’t make it in upstream KDE for 4.4, but a patch is available that separates this new feature from the other features/string changes in trunk. Feel free to bug your distro to include it, if you don’t use Kubuntu. 😉

Package and include kcm-touchpad, the Touchpad module for System Settings

Status: Done

The alphas of Kubuntu 10.04 now include the kcm-touchpad System Settings module, located in the Keyboard and Mouse module in System Settings. Testing is, as always, welcome.

Add KAuth integration to Userconfig

Status: Todo (postponed)

This one was already a bit of a stretch, and was noted as such in the original Timelord document. Nothing has been done on this yet. (Goes back to the only-recent availability of working KDE 4.4 python bindings) I’m less optimistic that this will make it for Kubuntu 10.04, but you never know. Perhaps a better goal for 10.10 would be to get this in kdeadmin or somesuch.

The Midterm Conclusion

Out of the 11 goals the original Timelord document set for 10.04:

7 are totally finished

1 is ongoing

3 still need done

Not bad for halfway, especially when you consider that several of the “Todo” items that still need done are trivial. So far, I will personally consider the Timelord initiative a success. A lot of good has come from it; goals are being met, and we have gained several new contributors and friends because of it.

But it’s not too late to contribute! Contributing to Project Timelord is exactly like contributing to Kubuntu. If you would like to contribute to Kubuntu, you can always send us a line at the kubuntu-devel mailing list, or pop on by the #kubuntu-devel IRC channel on freenode.

The printer-applet has been ported to KStatusNotifierItem in all its glory. I like KStatusNotifierItem. Besides the obvious presentation improvements, I was even able to remove a few custom functions for hiding/restoring the main menu and the tray icon for free. The less cruft, the better!

Unfortunately this is way too late for KDE 4.4. I probably would have tackled this earlier, except that the python bindings haven’t been in a working state this whole cycle, only starting to compile with 4.4 RC2. 😦

I committed the patch to svn and only moments later realized I had made an i18n mistake. As long as you grab both revisions, the patch should be fairly safe to backport to distro packages. I’ve done a bit of testing to make sure nothing obvious broke, but it’s a new feature and as such may not be perfect. It’ll probably be OK since most distros aren’t releasing 4.4-based distros for another few months, which should be plenty of time to test. The Kubuntu packages for RC3 will have this patch, for the record.

Also in printer-applet trunkland, I did a few optimizations in regards to QStrings. (Using QLatin1String with QString.startsWith, using remove() rather than replace()-ing a char with an empty string, etc) Between switching to KStatusNotifierItem and this my unscientific testing shows that the printer-applet in 4.5 uses ~200 kilobytes less RAM than in 4.3.98. Not much considering it still takes up 19.1 MB of RAM on startup with my machine, but it’s still a bit better. It would be nice if somebody could port over the “don’t-start-the-gui-until-needed” code from the GTK+ printer-applet, as that would really help the situation a lot. Oh well, until either that or a C++ equivalent turn up, at least printer-applet integrates well with the systray in the meantime.