PIM/Akonadi/Roadmap

From KDE Community Wiki
< PIM‎ | Akonadi

Roadmap

The following list contains the things which need to be done for Akonadi.

Note: The person noted in the "Contact" column is not necessarily the one implementing that feature, but the one who can tell you what to do and how to help, i.e. you can also contribute to those tasks ;-)

There is also a more detailed page about bugs and missing features of things that are currently ported here.

KDE 4.1 / Akonadi 1.0

Urgent tasks that need to be finished for the KDE 4.1 release (May 19th):

Status Item Description Contact
DONE Item streaming in ItemSync/ResourceBase As discussed in Osnabrueck
DONE Payload serialization format versioning see below

[email protected]

DONE API for additional item parts As discussed in Osnabruck
DONE Infrastructure for showing additional dialogs from agents/resources As discussed in Osnabrueck
DONE Allow to limit ItemFetchJob to current cache content Prevents search index feeder agents from downloading all remote data
DONE Fix API for item/collection modifications See Osnabrueck meeting notes for details
DONE Plugin Versioning For serializer plugins, also check using Qt plugin stuff instead of the libkdepim plugin framework
DONE Tray app small app to control the server and have a something that can report errors
DONE Backup support Dump & Restore database contents, also useful when upgrading to a newer database version
DONE Akonadi Artwork Icon for the tray app

KDE 4.2 / Akonadi 1.1

That's the stuff we want to have in 4.2, very roughly ordered by priority. Releases are scheduled for early January 2009.

Status Item Description Contact
DONE Server error reporting Helpful error message when the server cannot be started or if there is some other problem communicating with it.
DONE KResource migration tool For KABC and KCal resources, setting up Akonadi <-> KResource bridges where needed
DONE KResource bridges Basically finished, needs more testing
DONE Distribution Lists Serializer Plugin and resource support
DONE Complete iCal resource error handling, robustness, legacy formats, file montitoring
DONE Complete vCard resource same as iCal + binary legacy format
DONE Item size Needed by Mailody
DONE LINK/UNLINK commands Managing item references in virtual collections
DONE Akonadi Testrunner Running tests in a self contained Akonadi setup
DONE Remote file support for iCal/vCard resources Replaces net/remote KRes resources
DONE Solid integration Switch online/offline state in ResourceBase automatically

KDE 4.3 / Akonadi 1.2

Stuff that went into KDE 4.3 and Akonadi server 1.2.

Status Item Description Contact
DONE Fix unit tests Make unittests work without destroying the production database
DONE Filesystem Backend Store content data in files instead of the database, transfer filehandles instead of data to the client
DONE IMAP resource
DONE Kolab proxy resource
DONE RID based operations Item/collection retrieval and modification based on remote identifiers
DONE Microblog Support Type library, serializer plugin, identi.ca/twitter resources
DONE ResourceBase::collectionsRetrievalDone is missing I'm working around by calling collectionsRetrievedIncremental() with empty collection lists

KDE 4.4 / Akonadi 1.3

The following is being worked on for KDE 4.4 and Akonadi server 1.3.

Status Item Description Contact
DONE Port KAddressBook Replace with KContactManager
DONE Resource testing framework Automated, shareable tests for resources
DONE Collection statistics for sub-trees Provide a CollectionStatus object covering the full sub-tree in the model, allowing accumulated unread counts etc.
DONE Favorite Folder Model see current KMail
DONE Batch jobs for modifying/deleting collections/items it would be great to have jobs which perform operations on several entities in one go
DONE Collection streaming support in ResourceBase/CollectionSync Similar to what is available for items already
DONE MBox resource

KDE 4.5 / Akonadi 1.4

Stuff that is planned for inclusion in 4.5, partly already available in the akonadi-ports branch.

Status Item Description Contact
DONE Account creation wizard as discussed in Berlin, see below
DONE Subtype identification See discussion on kde-pim mailinglist
DONE Share mail flag code Standard actions, standard flag enum/constants, Nepomuk interaction

KDE 4.6 /Akonadi 1.5

Status Item Description Contact
DONE Port KOrganizer Port from KResource to Akonadi
DONE KMail port KMail using Akonadi
DONE Remote Search Delegating searches to resources, see below
DONE KResource Akonadi bridge for applications using KCal or KABC
DONE Akonadi KResource bridge for data accessed through KCal or KABC resources
DONE MBOX Resource
DONE Extend IMAP Resource
DONE POP3 Resource
DONE Agenda view KOrganizer agenda view based on Akonadi
DONE Month view KOrganizer month view based on Akonadi
DONE Timeline view KOrganizer timeline view based on Akonadi

KDE 4.7 / Akonadi 1.6

bugfixes and optimizations only

KDE 4.8 / Akonadi 1.7

Status Item Description Contact
DONE Multi-Instance Support Ability to run more than one Akonadi instance on the same D-Bus session
DONE Mail Filter Agent

KDE 4.9 / Akonadi 1.8

bugfixes and optimizations only

KDE 4.10 / Akonadi 1.9

bugfixes and optimizations only

KDE 4.11 / Akonadi 1.10

Status Item Description Contact
DONE Batch Notifications

KDE 4.12 / Akonadi 1.11

Status Item Description Contact
IN PROGRESS Server-Side Change notification filtering
TO DO Server-Side Change recording <Dan>

Post KDE 4.12 / Akonadi 1.11

This stuff is currently not considered for 4.5 due to lack of resources. Of course it will be added nevertheless if someone implements it. The list is completely unsorted.

Status Item Description Contact
TO DO Error reporting Akonadi::Job basically has only one error code: Unknown <Tobias>
IN PROGRESS Port KNotes File resource, serializer plugin, KNotes application, Kontact plugin
TO DO Batch job to retrieve a set of items from Akonadi Those items don't belong to the same collection, rather they are located in different collections
TO DO CollectionFetchJob/ItemFetchJob should be able to retrieve entities by flags/mimetype

This is problematic with change notifications, as they have to know about the filtering with the \Seen flag as well. This type of filtering would be possible with full Nepomuk interface though. We don't want yet another query language here. The plan is to fix the nepomuk agent and use that as semi-public interface for now.

TO DO Sync collection tree after creating setting up a resource see AgentInstanceCreateJob
TO DO Support standard commands for QUndo framework
TO DO Conflict detection in resources See Osnabrueck meeting notes for details
TO DO Action framework see below
IN PROGRESS Fix API docs The libakonadi move as well as the huge API changes following it broke lots of the docs technical and content-wise, see below
TO DO Alternative for Akonadi::ResourceBase Not using the scheduler to avoid the serialization of operations, see RSS resource. (This will get very complicated. Maybe use a proxy ResourceBase for this, which is thread-pooled?)


Resources, Agents and others

Status Item Description Contact
TO DO Expire Agent
IN PROGRESS RSS Resource in akregator_port branch (Details)
TO DO History resource