Normally, today's just that one day you are a little bit more attentive to those you admire.
In secret, or outspoken, it doesn't really matter. Anonymous, or with an email address -- whatever floats your boat goes, really.
Today however also marks the day that Kolab is being that little bit more attentive to you, whom we secretly admire.
We are proud to announce the immediate availability of Kolab 3.2! This is for you, yours and everyone else, for this release marks another milestone in the Kolab story, as previously seen on the Internet.
As you may remember, between Kolab 2.3 (now 4 years ago) and Kolab 3.0 (development started over 3 years ago), the entire stack has been refactored.
Some of you have noticed more up close and personal, others from a distance, but like with any piece of software under active development, not everything has always been functioning as well as it might have.
After Kolab 3.0 came the development cycle for Kolab 3.1. A few big important features were added, largely demand-driven, and dare I say, largely customer-driven. You may have noticed Kolab 3.1 was overdue, released way too late according to our original 6-month release cycle, but overall our collective experiences have been positive, I would say. We have literally supported thousands and thousands of individual users, up to and including users using Mutt. That said, I'm sure you appreciate our time was spent a hundred-fold during this period.
I'm very proud of what our team has achieved during this long period of busy-work, with continued, ongoing development combined with customer support. You should probably take a moment to let them know you appreciate as well. The bug-fixing has gone beyond the explicit application error and on to major performance enhancements, which -- I can tell you from personal experience -- is a difficult topic to tackle.
For your comparison, 94% of the commits authored over the last 12 months is contributed by Kolab Systems employees. Over all time, current Kolab Systems employees have contributed to a total of 55% of all commits that ever existed in relation to the Kolab server. Over a history of longer than a decade, that is not a small feat. Read more of the complete profile on our Ohloh pages.
Long story short -- We did the refactoring. We did the stabilization. We did the performance optimizations. What's next, you might wonder?
Well, Kolab 3.2 marks this major milestone -- we're open for business! Nothing stops any of you from doing with Kolab what you like -- and we want our percentage to go down, yeah? This is the era for Kolab that we re-engage with exciting developments, back on the roadmap:
- XMPP integration
Your instant messaging at your fingertips, one click away from reading your email and re-scheduling your appointments.
The basis for this has already been provided by our Thomas Brüderli in a mailing list post, but will be fully integrated in to Kolab Groupware. We're making the packages available, the documentation to go along with them, and hope you find some time to implement wishlist items we have ;-)
- Event Notifications
With Cyrus IMAP 2.5, we ship a version of IMAP that is able to broadcast events that happen in an IMAP session. In and by itself, this may not sound too interesting, so please read on.
- Archival, Backup & Restore, e-Discovery and Live-Interception
The four holy grails of electronic communications, these four topics currently tend to require four different solutions.
Most of such solutions are simply not available as Free Software solutions, and therefore imply a great duplication of data, metadata and relations. For those that are available as Free Software solutions, such as Archival and Backup/Restore, you would wish the user could more autonomously restore a context-oriented set of messages, and have a real-time, online representation of what might already be stored on tape.
Using the aforementioned Event Notifications, we seek to develop a singular solution to the four topics. We see no reason to distinguish between at least the first three, being Archival (because of regulatory requirements on retention of business records), Backup/Restore (because your users press delete too soon too often, and in disaster recovery scenarios), e-Discovery (where the questions tend to be of a legal nature).
Live Interception then -- I know you were wondering about this -- is a topic that relates to parties providing electronic communications to third parties. As a matter of legislation, for any communications, a means for authorities to "wire-tap" a given user must be available -- when such duly authorized authority knocks on a provider's door. While not supported in the community edition of Kolab at all, we seek to use the aforementioned Event Notifications to address this much requested feature as well.
Again with thanks to Cyrus IMAP 2.5, and particularly the hard work of FastMail -- yes, that is a competitor of Kolab Systems-operated MyKolab.com, at some level, but credit where credit is due -- the XCONVERSATIONS capability will provide a set of IMAP commands to clients, to facilitate a more contextual view on communications, across folders.
One might navigate by contact, topic or thread reference even though individual messages are stored in different folders, or conversations with contacts had other contacts involved.
This is such new, leading technology, that no RFC has been drafted, let alone accepted, so Kolab 3.2 will be the platform we (co-)develop this technology.
- Message Annotations
The availability of message-level annotations are likely to be used in Kolab in the (near) future.
For example, you may or may not be aware of the fact that an appointment in a shared calendar is legible in full detail, to everyone the calendar is shared with. So how would you make the fact you have this meeting with the boss public (summary: Meeting with boss), but keep the details of the event (the agenda) secret? Well, you might encrypt the payload of the agenda, and store the decryption key in a private message annotation -- so that your web client, and mobile device, and desktop clients, can all read the full details, but no-one else can.
We're seeking your opinions and ideas for more implementations! Get engaged now.
- Full-Text Indexing
Where previously email's message body has had to be searched without an index for the message body, the full-text indexing feature to Cyrus IMAP 2.5 implements RFC 6203, IMAP4 extension for Fuzzy Search (using Xapian). This is relatively new technology for us, so Kolab 3.2 will be the platform on which we develop the client's capabilities to make full use of this feature.
- Cross-Folder Searches in the web client
Roundcube has developed the basic implementation of cross-folder searches. A very difficult feature to achieve, but important to many people (who all have too many mail folders). It still requires a little bit of work, but this feature is scheduled for inclusion with Kolab 3.2 nonetheless. It needs a little bit of work still, but it's soon to arrive in a YUM or APT repository near you.
Mind you that, combined with Full-Text Indexing, and perhaps also XCONVERSATIONS, the opportunities are limitless. Why not say out loud what you would like to have?
- Birthday Calendar
A feature requested so often we almost feel blue in the face, we now have a birthday calendar available in Kolab 3.2.
The birthday calendar will be an extra optional calendar for you to select, and displays the birthdays of all contacts (including those in the global address book).
- Collaborative Text- & Document Editing (scheduled)
Based on our file storage, and integrated in to the web client, we seek to provide you with bleeding edge, next-generation, WebODF-based technology to enable collaborative editing of text and documents. This technology is so new, and so unstable (currently), that we can only estimate that we need about a week's worth of development time before it is ready for consumption -- as such it is the properly caramelized onion for a French onion soup, no cheating by adding sugar is allowed ;-) That said, we won't actually be ready to release it next week, for we have our developers working on other stuff as well, and so once more we could not afford to postpone the release of Kolab 3.2 just for this feature. I would say... stay tuned!
- Two-Way IMAP Replication
You've never been able to run two active Cyrus IMAP servers has a high-availability cluster providing load-balancing as well -- well, now you can.
Two-way replication is what one might call eventually consistent though (a page I'm lending from the NoSQL book), meaning that hitting one server to mark a message as read to then hit the other server for a new folder status report does not guarantee the message you marked as read is immediately reported as having been marked as such. Your environment will have to adhere to specific topology deployment -- I'm sure Kolab Systems would be more than happy to sell you some consultancy on that.
So -- that's Kolab 3.2. I have to admit we're throwing nice, brand spanking new technology out there, and as such this is the release that is a full-featured groupware solution on the one hand, and a development platform for new exciting features as well.
PS: It's 2 AM, and packages are still building -- all 1600 of them. If you are travelling further, please check the monitors for the departure gate, which may have changed.