We accomplished a lot in the last year, both as a community as well as personally. I'll leave the personal events, positive and difficult, to those who were involved, but try and cover some of the highlights of what we did together.
All of 2007 (and part of 2006) were a fairly big departure for the project in terms of what our day-to-day consisted of. Since the 2.0 release, we'd been involved in incrementally improving a code base where the design was more or less in place. We made regular releases with pre-announced schedules that were usually nine months in length or so. Even the 3.0 release, where we broke binary compatibility (along with Qt 3) and added a few things to the libraries, was pretty tame. These fundamentals of releasing regularly and incremental improvement were put aside in order to do the massive porting to Qt 4 and to make some significant (both in terms of scope and importance) changes to the code base. 2008 was rocked by transitioning from those heady days of "blue sky" development back to the fundamentals.
That was one of the stand-out events for me in 2009 with regards to KDE: we made releases, we published schedules and the code improved massively from release to release. Keeping in mind that a non-trivial number of contributors had not been around as contributors during the 3.x days (let alone 2.x) this was both impressive and important. A lot of knowledge was passed on from the "old hands" and the "new guys and gals" have completely internalized it. The 4.2 and 4.3 releases are a testament to that, and 4.4 is going to be another step in the groove we've hit.
It isn't all exactly like it was in the 3.x days, though. We've tried to learn from what went well and what didn't go so well and to take into consideration the fact that KDE is a lot bigger now than it was when the release engineering systems were created from 1.x through to 3.x. Back then we had one "release dude" and they did a hero's job: setting schedules, making sure we met them, creating tarballs, organizing announcements, etc, etc. (Major props to Matthias Hoelzer-Kluepfel, David Faure, Waldo Bastian, Dirk Mueller and Stephan Kulow for doing great jobs of this in the past! Who else did I miss from that list, btw?)
These days KDE is simply too large and has too many project teams and products in our universe for it to be the job of just one person. Kulow recognized this and said that he was not going to be the sole release dude for the 4.x series. This forced the KDE community's collective hand to do something, and the result was something better: a release team. This team is made up of several people from around KDE and includes not only the hardcore of the hackers but also the promo team, packagers, internationalization teams and software teams that aren't part of the Software Compilation.
This has taken a lot of stress off of "that one guy" and has made the process more manageable and reliable. This may not be the most sexy, exciting or glamourous change in the last few years in KDE, but it's been a significant one and the 4.x series would not be in the shape it is now without these people. Dirk Mueller is still very involved in making things work there (another "hats off" to Dirk), but we have a number of new faces in the crowd. One particular bright light is Tom "toma" Albers who has stepped up on many an occasion to provide a voice and at times some needed reason for the team.
In 2009 this really came together for us and was a foundational point for the project. Combined with the determination and efforts of all of the software developers, artists and translators to continue the incremental realization of our collective vision, KDE put out several terrific releases this last year.
Software By The Boat Load
Which brings us to the actual "meat and potatoes" of KDE: us putting out software that rocks. With the Development Platform solidly in place and readily available to end users and application developers alike via operating system distributions, 2009 became something of a fond reunion between users of KDE software and their favorite titles.
Amarok was making releases in 2008, but it was in 2009 that the Amarok 2 series really hit its stride. What is in my opinion, and many others, the premiere media experience app on any platform has managed to take a huge reworking of the codebase and turn it into something very compelling and fun to use. The number of user interface and performance improvements in 2009 were very impressive. It wasn't just Amarok, though ... not by far.
The KOffice team started making releases of the KOffice 2 series which is the first to use the KDE Development Platform 4.x. They began working with Nokia on file format and applications like Krita (natural media painting) and Kexi (database) continue to be the amazing apps they have been while others like Karbon have reached new heights. KOffice still has a ways to go and hopefully they continue to grow the community around it, but 2009 was a milestone year for the project which has been around since the pre-2.x days.
Another one in the "around forever and now releasing betas for the KDE Dev Platform 4" category is KDevelop. It will have its stable releases starting in 2010, but it was a huge milestone to get into betas during 2009 and it is shaping up to be a very impressive (and already very usable) IDE with some extremely nifty features, especially in the code completion and discovery areas.
Digikam for KDE Devel Patform 4.x was also released in 2009 and it was met with glowing reviews. With the KDE Imaging Plugin Interface (KIPI) framework, which has moved closer to the "core" by moving into KDE Graphics to the benefit of applications like Gwenview, Digikam is starting to get the respect it deserves and is rapidly shaping up to be the Amarok for digital photography.
Filelite (disk usage), yakuake (quick access terminal application), K3B (CD/DVD/Blueray burning/authoring), Konversation (IRC client) and many other popular titles also saw releases that are full of Oxygen and KDE Dev Platform 4.x goodness.
This made 2009 a critical year in the transition of many of our users from KDE's 3.x to 4.x series of products. Given that many of these applications are large and complex and that the port to Qt 4 is often tricky, not to mention that many of these apps saw huge improvements and changes in their user interface and capabilities, it came as no surprise to many of us that it took a year after the first releases of the KDE Software Compilation for these applications to really start appearing in large numbers and higher quality.
Platforms a Plenty
In 2009 KDE's attention to new, for KDE anyways, platforms continued to grow and show results. Windows and Mac releases were made and work on refining both, particuarly the Windows presentation, continued on. OpenSolaris saw renewed interest as well and the BSD crew is definitely around and lively to boot. Even the Linux operating systems stepped up further within KDE by providing integration and implementations for improved packaging experience, network management and more.
There was also a renewed commitment from OpenSuse in recognition of their user base's own choices to making KDE rock on that platform. I actually upgraded to OpenSuse 11.2 over the holidays and, besides the installer being insanely simple and streamlined) the default desktop was very pretty and very "OpenSuse meets KDE" thanks in part to OpenSuse working with KDE artists to style the desktop. This kind of conscious, purposeful collaboration flowing in both directions was a new plateau for KDE and working with distributions. We're seeing other Linux distributions similarly improving both their KDE experience and relationship, with some significant contributions going upstream.
2009 was also the year that widespread "what about things other than the desktop" thinking went into KDE. While there were always some forwards thinking people, from Joseph Spillner and Cornelius Schumacher's web service efforts to the Konq-E (for "embedded") project, this thinking really spread out throughout the project in 2009. From Plasma Netbook to the office file viewer for Maemo to the increase in web service tie-ins more and more people are thinking about these new horizons.
The desktop segment will always be important and a critical cornerstone for KDE's products. Many of our software titles will never run anywhere else, in fact, and that's not a bad thing. At the same time, KDE products are more and more being positioned within a multi-dimensional spectrum: what operating systems and what form factors?
Embracing The Pillars
The "Pillars of KDE" came into being as a concept with the 4.0 releases. They include things such as the Oxygen graphic stylings, Solid hardware awareness, Phonon multimedia API, Threadweaver threading library, Sonnet spell checking, Plasma and of course the mainstay rockbeds of KDE's Core Libraries. All of these have seen more and more usage in KDE software in 2009, though perhaps one in particular has seen the most amount of movement and change: Nepomuk.
Nepomuk is the semantic desktop framework within KDE Dev Platform 4, though its boundaries extend far beyond KDE's efforts. It started within an EU research project and has since matured and allowed numerous things which haven't been possible in the past, such as integrated tagging and pervasive file content searching. 2009 saw the standardization of the ontology so now across the Free Software desktop we will see the same metadata shared and/or interoperable. This means that things like Zeitgeist can more easily sit on top of Nepomuk and that it won't be necessary to have numerous on-disk search indexes for such things. As with many things in the KDE universe, there is much left to be done with Nepomuk, but more applications are using it transparently now for various features and with continued development this 2009 trend should have long legs. (I also finally "got" the name "Nepomuk" due to S. who knows the name from children's stories in her country: Nepomuk is a half-dragon! A-ha!)
Nepomuk has also paired itself with Akonadi, the emerging groupware system. While Akonadi is a standarized API for caching and access to all sorts of groupware data (the Plasmoids built using it show just how crazy powerful it can be), Nepomuk is providing the search indexing for it. So sometime in 2010 when you're using Kontact powered by Akonadi and tag or search through your email, calendar, contacts, etc. you will be using Nepomuk in the background. Some have asked what use Nepomuk is to them, and for me this is one huge benefit: it's allowing software developers to provide features we take for granted like "search my email" with less effort while taking them to a whole new level.
The KDE Workspace Grow Up and Out
2009 was the year that the KDE Workspaces really found their legs. Plasma Desktop stabilized and found a huge number of features added to it. Some of these features allowed Plasma Desktop to stand next to the KDE 3 KDesktop/Kicker combination a bit better, while others have let it go far further than any other desktop shell out there. Some of these features, such as remote widgets (which really makes most sense when taken in combination with the "device spectrum" concept), won't be released until this month (so technically 2010) but were designed and written in 2009.
2009 was also the year that we finally got rid of the old system tray protocol and replaced it with one that is infinitely more flexible and allows us to better service users and software developers alike. At least some GNOME implementations will be picking this up in 2010 as well as an added bonus. For me this was one of those important advancements not only on a practical level but also symbolically: the system tray was one of those systems designed in the 90s for the reality of the 90s. We are committed to designing software for the 2000s, and doing the hard work even for the "small" things (and being able to actually pull it off successfully) shows that those aren't just words.
The KDE Workspace also saw numerous other important developments, from KWin's growing bag of useful tricks (as well as it's Plasma theming!) to KSysGuard and the KSysGuard-driven process list becoming more interesting and impressive or KRunner's impressive improvements in visuals and performance, things moved in one direction: upwards.
Plasma itself also moved outwards, though. Plasma Netbook took root in a big way with a technology preview release made with the Kubuntu community in 2009. The first stable release of Plasma Netbook will be next month as part of the KDE 4.4 Software Compilation.
Enough Activity To Choke A Horse .. A Really, Really Big Horse
The KDE workspaces, with the Plasma Desktop at its center in 2009, is one of the key KDE products for our users, but certainly not even close to being the "everything" that is KDE. There was so much movement and advancement in KDE's applications across the board that to cover them all would take even more space than I've already used up here. It wasn't unusual to see more than 10,000 commits in a month in KDE's code repository over the course of a single month and it showed.
From Dolphin's continued advancement as an amazing file manager for the masses to the Okteta hex editor to the large number of new games (and improvements to the existing ones), KDE's applications were a hotbed for activity. The applications in extragear were no exception, with apps like KTorrent making huge strides in 2009.
This activity was another hallmark for 2009, as the final stages of the pre-4.0 development really stunted application development efforts with questions of "do we stick with the KDE 3 libraries or move forward to the new KDE Devel Platform?" and the annoyance of having to port to the often (sometimes too) different APIs in Qt and KDE's libraries. We're back to the application development focus we had grown in the 3.x days but with renewed vigor and certainly a new sensitivity towards beauty and usability that is pairing up with our striving for powerful applications very well.
Behind The Scenes, The Scene Was Good
Behind the scenes things went very well, too. KDE e.V., the legal organization and non-profit advocate for the KDE community at large, saw new board members, a full time employee, an office move to Berlin, renewed agreements around Qt with Nokia, a new Fiduciary Licensing Agreement that contributors can elect to engage and more developer sprints and trade show events than you could shake a stick at. The processes in general improved and streamlined, and given the efforts in 2009 I have great hopes for KDE e.V. in 2010. New members streamed in to the e.V., just as KDE made nearly one new svn account per day.
KDE e.V. was also instrumental in making it possible to co-locate the KDE annual world event, Akademy, with the GNOME event GUADEC in 2009. According to surveys done of those who attended, this was a great success. In 2010, we're back to separate events, but we now know that should we wish to do so again it can work and work well. 2009 was also the first installation of a major KDE event for the Americas branded as "Camp KDE". This grew out of the 4.0 release event which was held in the USA, with a set of coordinated events held in tandem around the world, as a way to grow KDE's visible presence in the US. After 2009's successful Camp KDE in Jamaica, Camp KDE is visiting California again this month for the 2010 installment.
The promotional crew grew as well. The numbers increased and the coordination stepped up more than a few notches. The branding clarifications we started on two years ago as a sort of quiet "skunk works" project emerged, gained clarity and was implemented. This was hugely important as a step towards properly positioning what KDE is and what it is we do, both so that we understand that ourselves more clearly and so that we can communicate it clearly to the outside world. Besides the branding, the promotional group has done an outstanding job with announcements, original articles and press coordination. 2009 may just be the best year we've had in this regard.
The system administration team also grew with increased transparency and processes that were easier to find out about and engage in. There's even a form on Techbase to request an svn account and a nice form on bugs.kde.org to make sys admin requests.
Techbase and Userbase also grew significantly with your help. More content and ever growing usage has really helped to validate the wiki based strategy. Such community based efforts have been successful elsewhere in KDE as well, such as the absolutely amazing work the KDE Bug Squad did in 2009 (and is already continuing on in 2010 with the first Bug Days of 2010 coming up this month).
These processes, organizations and systems are helping us not just endure the growing pains of a project that is growing in every metric but allowing us to thrive as we do so. Growth is a very difficult thing to manage and without these processes our growth could very well have been the demise of the project.
Is That All?
In a year where KDE made two releases of the Software Compilation, dozens of other software project releases, grew our organizational support footprint and managed to have a good time doing it, it can be a bit overwhelming to try and keep up with it all. In fact, it's gotten pretty well impossible to keep up with what everyone is doing all the time. When I joined KDE it was a reasonable sized village, the kind of place where everyone knew everyone else. It was already growing by then, but it was not the small city it has become today. This blog entry has grown very, very long and still it only captures a portion of what transpired for us in 2009. These are exciting times.
I didn't write this just so we can boast about what we've accomplished, however. It is important for us to know where we've been so we can know where we are going. It is important that we share that story with others so they can appreciate what it is we're up to, and maybe even join us in moving it all to the next step. It is important that we keep aware of at least the broad ideas of what we're all doing so that we can continue to wrok to the same general end goals. In a project that is as distributed as KDE, that elevates the individual and the individual teams as KDE does, it is critical for us to keep an eye on the past and the present: through them we can draw the lines that point out our mutual direction.
As a set of directions, 2009 was, by all accounts, pretty stellar. As a year of community, it was awesome. As a software project putting out releases for people to use and appreciate, it was legendary. :)
Here's to a great 2010 to one and all, and a personal hope that we can all find a way to put a bit more of the peace of the beauty we each know within us, innately, into the world around us.
(And on that note ... I do have a "key issues for KDE in 2010" blog entry for later in the week :)