Almost half a year ago I had the pleasure to write the Kolab 3.0 primer, and ways of getting involved. Optimistically I scheduled the release for May/June 2012 in that posting. Attentive readers may have noticed that it is no longer June and Kolab 3.0 hasn’t been released yet.
So perhaps it is time to provide an update and overview.
The main culprits for delays in this first release done by the new team are pretty much the usual suspects: Everything is more work than expected, you end up having to do more than you initially planned, including unforeseeable interruptions and there was less help than you hoped for.
The good news is: We’re almost there.
Much work has gone into the invisible underbelly of the technology, starting from the Kolab XML
format itself. Christian Mollekopf has done an unbelievable amount of work on libkolabxml and libkolab, the refactored Kolab XML format, and its API with wrappers in multiple programming languages to make Kolab integration as easy as being able to call the API to manipulate Kolab objects.
Christian also put Kolab XML V2 format support into libkolab so that clients using libkolab can work against either version of the format, and largely finished a migration tool from version 2 to version 3 to provide users with a data upgrade path. And finally he re-based Kolab support in the KDE Kontact client that is the basis for our desktop client on libkolab for the KDE PIM 4.9 release already. In fact thanks to some supersonic packaging in the Fedora community I am already using libkolab with KDE PIM 4.9 rc 1 against all my Kolab 2.3 servers.
Also we had to shed the dependency on the outdated Horde 3 framework for Kolab 3.0, which meant a good deal of conceptual work, such as coming up with a new Free/Busy System or dealing with conflicts in ways that are far superior than anything Kolab has ever done while maintaining full off-line capability, one of Kolab’s great advantages over other solutions.
When looking at these pages it should become obvious how much time has gone into truly understanding the problems at hand and resolving them solidly in a way that is publicly documented and allows participation from anyone in the community.
Enabling participation is in fact what we spent a lot of time on throughout the past months, from the Kolab Community web site relaunch, over the IRC meetings for Kolab 3.0 planning and development, to the hiring of Torsten Grote as Kolab Evangelist who went to work on the community resources straight away and is your dedicated community-go-to-guy-for-all-things-kolab, all the way to the intermediate release of Kolab 2.4 to make it easy for people to get Kolab servers up and running that would allow to tap into and participate in the ongoing development.
That release also featured quite a bit of work by Jeroen van Meeuwen, our Systems Architect and specialist for the most complex set-ups that scale to hundreds of thousands of users or do things that are widely considered impossible. Again much of that work has happened in the background, but will be fundamental for a lot of things you’re about to see Kolab doing in the next years to come.
Among these things are trimming back LDAP schema extensions to ensure that Kolab integrates into existing directory services more easily, be they in pre-existing corporate infrastructures, in products that wish to integrate Kolab, in cloud offerings or in proprietary directory services where Kolab provides the first bridgehead for migration towards more freedom of choice and Open Standards.
Also Jeroen and Christoph have been giving a lot of thought to how resource management should work, because our experience all too often was that many things were not done right to enable the kinds of work flows and scenarios people wanted to implement – not just in Kolab, but pretty much anywhere. So we gave this one quite a bit of thought that Jeroen shared on his blog.
Other parts are configuration management, including the REST inspired API for configuration of the server and the server underlying configuration management which will allow using any kind of configuration management in the future. And of course Jeroen was the key person to get the 2.4 release out of the door, as well as many other things.
The first application to make use of that API is the new web administration front end developed by Aleksander Machniak, one of the main Roundcube developers on staff at Kolab Systems. Already available within Kolab 2.4, this web admin interface is independent of the kind of directory service or configuration mechanism used in the background and extensible to virtually any scenario. If you wonder how it looks, Jeroen put some screen shots up on his blog. And last but not least he has spent much time on getting our documentation up to speed.
But of course it wouldn’t be a proper release without something falling victim to triage. In this case the victim is Server Side Akonadi. While it will add truly magical capabilities to the Kolab server, we designed the Kolab 3.0 release such that it would remain an optional component to make sure we preserve the ability to scale all the way down to small embedded devices. So because it is optional, and because we did not want to delay the release further, we have put it at the back of the priority chain and removed it from the list of blockers. But you should expect to find it in one of the next series 3 releases.
And of course we haven’t stopped at having given Roundcube its push to the 0.7 release and developing our new web interface on top of it. We’re now also trying to think about how that next web client should look like and how to bring things together with the desktop clients.
For this we are working together with the professional designer who is also responsible for the current and future Roundcube skins, and you can find some of his designs for the next generation web client of Kolab online here. If you have comments, we’d be happy to hear your input and receive your help.
In case if you want to get involved in any of the areas we’re working on, the upcoming Kolab 3.0 Technology Sprint in Berlin is perfect place for that.
This is also where we will be working on finishing of some of the more exciting things we’ve been playing with, such as ownCloud integration for the web interface. This is something we already have sketched in our webmail.klab.cc demo instance and several people have found this close to usable. So we’re overjoyed that Frank, Arthur and Georg of ownCloud will join us for the sprint and invite others who have technology or projects that would work with Kolab in interesting ways to also join us during that week.
And we particularly invite packagers for all the various distributions out there to join us for the sprint. Because we would love to have Kolab 3.0 be natively available on all platforms just weeks after it is released, and make its way into the upstream distributions. Doing this ourselves for all distributions is more than we can reliably ensure, especially since we also have to take enterprise distributions such as Univention Corporate Server (UCS) into account that add substantial work on that front.
Also, we’re not just developing the next generation server, we have also just enabled Mozilla Thunderbird & Lightning for professional usage with Kolab through plenty of work that has gone into SyncKolab by Niko Berger who has joined Kolab Systems to also provide a professional maintenance path for supported users.
And naturally there are still customers who want support as we do all of the above.
So even though I would still have plenty of things to feature I guess it should have become obvious that we have been far from inactive and I truly feel honoured and somewhat humbled to be working with such a great team of dedicated professionals and great minds.
A lesser group could not have achieved that much in such short time, and Kolab 3.0 when it comes out this summer is going to be one exciting piece of technology. I hope you’ll give it a try and will check out our company web site for how we can assist you in your professional needs.
But now, the magic incantation: Go forth and make Kolab 3.0!