PIM/Akonadi/PortingStatus
This page lists various pieces that are being ported to Akonadi. The intent of the page is to give a list of features and bugs.
Since many of those pieces are complete rewrites, this page lists the features that were present in the old implementation. Those need to be ported to the new Akonadi-based implementation. The list of needed features probably will grow during development and testing, as will the bug list It also lists optional features, which would be nice to have, but are not present in the old implementation Also some bugs are listed.
There is also an extremely outdated todo list at PIM/Akonadi
If you have implemented a feature or fixed a bug, please strike the item out.
Bigger Stuff
Akregator Port
Assigned to: Frank
New page: PIM/Akregator_port
Old page: PIM/RSS_framework_for_Akonadi
Branches used now:
kdepim/akregator_port
contains akregator2 (akonadi ported version of akregator)
kdepimlibs/akregator_port
contains krss (library shared among rss resources)
kdepim-runtime/akregator_port
contains krsslocal (resource for local storage of rss subscriptions)
More details: blog post 1 blog post 2
Bugs
bugs are listed in PIM/Akregator_port and in the KDE bugzilla: Product Akregator, Component akonadi-port
Status
20120403: The porting started again!
KContactManager
Assigned to: Tobias, Sebastian
Bugs
- After creating a contact group, it doesn't show up in the left pane. Should it?
- Editing contact groups: Should use auto-completion, drag&drop and a "Select..." button (similar to KMail's recipient picker)
- Editing contact groups: Gives me error message that I didn't define a name, when I only entered a mail address. Note that most people don't know the syntax for this, which is "name <mail>".
- "All Contacts" should be expanded and selected by default
- Crashes when clicking on "Reload" on "All Contacts"
- Deleting a contact group (and possibly a contact as well) leaves a funny empty space in the middle pane
- Switching between "All Contacts" and my addressbook folder here has a delay of > 1s, with about 150 contacts
- Ctrl+A should trigger select all, not add addressbook
- In the editor, the "Coordinates" panel is completely empty
- In the properties dialog of an address book, the "Cache" tab is way too complicated for normal users
- Changing the name of an addressbook in the properties dialog earses the name and the icon
- The name of the default addressbook is "std.vcf"
Needed Features
- Display additional columns in the list of contacts
- LDAP
- Crypto page in the editor, like in KAddressbook
- Settings Dialog (at least it needs to be able to be disabled from the Kontact settings dialog)
- Remove KAddressbook and the KAddressbook Kontact plugin
- Port all users of the former KAddressbook D-Bus interface
- Find and remove all references to KAddressbook in the kdepim directory
MBOX
Assigned to: Bertjan
Needed features
- [DONE] Implement purging of deleted messages
- [DONE] Port the resource to SingleFileResource
- [DONE] Implement itemChanged()
- [DONE] Fix the MBox locking code.
- [IN PROGRESS] Find out if the file has changed since the previous time it was loaded (SingleFileResource problem?)
Other
- [IN PROGRESS] Unit tests
POP3
Assigned to: Thomas
Bugs
- Possible mail duplication
Needed Features
- Config dialog (Igor is working on this)
- Default inbox (->LocalFolders)
- Filter on server (depends on the filter framework)
- Migration of old KMail accounts
- Abort request
- Precommands
Optional Features
- Delete on server (bug 31114)
IMAP
Assigned to: Kevin
Needed Features
- Sieve Settings in the config UI
- Support for namespaces
Kolab
Assigned to: Andris
KMail Reader
Assigned to: Andris
Notes
Needs to be ported away from KMMessage and mimelib to KMime.
Needed Features
- Loading attachments on demand when viewing and saving them
- Displaying text and image attachments inline, depending on setting (attachment strategy)
- Different header styles
- MIME part formatters (invitations, vcards, diffs etc)
- Context menu actions (shared with the message list)
- Source viewer
- MIME part tree viewer
- Separate reader main window
- Viewing only one selected MIME part / MIME sub-tree (e.g. encapsulated messages)
- Separate reader window marks the message as read after some time
- Asynchronity (reader should not block when displaying multi-megabyte mail)
- Fallback and override options for the charset encoding
- Crypto
Optional Features
- New styles based on on Grantlee. Steve says he'll eventually look at that.
- Port away from KPGP to libkleo
KMail Composer (non-GUI)
Assigned to: Constantin (gsoc)
Notes
Needs to be ported from KMMessage and mimelib to KMime.
Needed Features
- Crypto
- Attachments
- Multipart/Alternative (HTML)
- Inline images
- Asynchronity (should not block on long composing tasks, like crypto)
- All kind of weird charset and encoding stuff
- Custom MIME headers from the settings
- Compose as draft and compose as sendable message mode
- Unit tests. This stuff has been very brittle in the past
Optional Features
- The composer and the composer GUI both keep a "reference message" around, which is IMHO complicated and weird. Get rid of that through refactoring
KMail Folder List
Assigned to: Kevin
Notes
The current KMail folder list is unfortunately not model/view based. The new folder list should probably be based on existing Akonadi models and views.
Needed Features
- Sort by drag & drop or automatic (controlled by setting)
- Drag & drop support for copying and moving folders and messages
- Context menu with all old actions
- Total, Unread and Size column: Collapsing sums things up, unread count can be displayed with the folder name if column is hidden
- Default icons for IMAP root collections, drafts, templates, inbox etc (can be partly handled by new LocalFolders class I guess)
- Configurable item size
- Favorite folder view
- Restoring of expanded/collapsed state (and last selected folder?) after restart
- Optional quick filter edit
- Fancy tooltips
- Folder properties dialog with all the old stuff in it
- Folder selection dialog (used for the "jump to" function, among others)
Optional Features
- Right-clicking without selecting
- Multi selection for deleting multiple folders at once and a combined properties dialog
KMail Message List
Assigned to: Kevin
Notes
Talk to Olivier Trichet (nive), he is in the process of porting KNode to the message list framework.
The message list is fairly well abstracted into KMail-specific parts and generic parts. For porting to Akonadi, basically only the storage model needs to be rewritten, the model that does the actual work of threading and grouping can be left untouched
Needed Features
- Fast loading of the message list. This can be tricky, the many indirections of Akonadi might make it too slow
- Only the headers should be fetched, not the complete message
- Setting stati and tags of mails should work
Optional Features
- Very long term: Separate threading into an own agent and store threading information as attributes
Mail Dispatcher Agent & Outbox interface
Assigned to: Constantin (gsoc)
Notes
No big needed features added below, AFAIK everything is already implemented.
Needed Features
Abort requests for agentsIntegration into KMail(more to do when the message list view is ported to Akonadi)- retry sending and "send queued"
- move-to-sent-mail-collection (blocker: intra-resource moves)
- Polishing
- API Review
Optional Features
- Displaying the progress and status per-item in the message list with a special outbox theme would be very cool
- Sending by due date
KOrganizer Agenda View
Assigned to: Sebastian
KOrganizer Month View
KOrganizer Timeline View
KOrganizer Todo View
Notes
Already model-view based in old KOrganizer
KResource Bridges & Migration
Assigned to: Kevin
- KOrganizer doesn't have any resource by default for new users (unit test for this exists)
- Kontact is *very* crashy in the summary and todo list
- Hierarchical todo don't work anymore
Needed Features
- Unit tests (->Thomas)
Filtering System
Assigned to: Szymon
Needed Features
- Pluggable filter actions and rules
- Nice GUI editor
- All filter actions and rules from old KMail should be implemented
- Library should be usable outside of the agent, e.g. for POP3 on-server filtering.
- Manual and automatic filtering
- Filtering should be possible on incomplete mail (headers only). When a filter rule or action detects that it needs the complete body, that should be fetched on demand
- Don't re-upload the mail when no filter action changed the mail (important for IMAP)
- Filtering should be invisible to clients
- Not all new items should trigger automatic filtering -> We might need a flag to explicitly make items filterable, otherwise items get filtered when they were manually added by the user
- Filtering must not lose messages
- Automated tests. Filtering was *very* brittle in the past, causing duplicate and lost messages
- Migration of old filters
Optional Features
- Make the sieve script editor for IMAP servers an actual GUI editor
- Maybe filter rules can be re-used for searching?
Search
Notes
Nobody really knows how this should be done (if one does, please explain here how it should work!). There are server-side searches (IMAP and LDAP) and client side searches possible.
Probably should use Nepomuk.
Needed Features
- At least local searches should be possible, like in current KMail. There should also be a search window like before.
- Virtual search folders
Migration
Needed Features
- Migrate KMail accounts to Akonadi resources. The Akonadi resources should support all options of the old account pages. (-> Jon Armond)
- Migrate KMail status flags and tags from the index files
- Ability to have a mixed mbox/maildir tree
- Migrate the dimap cache (urgh: unsynced messages!)
Smaller Stuff
IMAP Load on Demand
Assigned to: Andris, Kevin, Volker
Notes
Related to the reader implementation. Might need changes in the mail serializer, KMime, the IMAP resource, the server(?)
Needed Features
- Should be possible to fetch messages without fetching the big attachments.
- When saving attachments, fetch them on demand.
- Attachments inside signatures should not be fetched on demand
Optional Features
- Disconnected IMAP with attachment load on demand (headers and message text cached, but not big attachments)
- Bonus points for zero-copy streaming when saving IMAP attachments to disk
Progress Reporting
Assigned to: Constantin
Notes
The progress of the agents should be hooked up into the progress manager of libkdepim. -> AgentProgressMonitor
Needed Features
Tracking progress and status textsAbort requests
Local Folders
Assigned to: Constantin (gsoc)
Needed Features
- Inbox, drafts and templates
- Move to kdepimlibs/akonadi/kmime
- Set standard
itemsicons for the collections, like in KMail
Optional Features
- Option for volatile outbox (not stored on disk)
- Option for no sent-mail collection
Akonadi Resource-based Mail Transport
Assigned to: Constantin
Needed Features
- Re-design (TransportResource is probably not needed; its job can be accomplished in ResourceBase with a signal and a D-Bus adaptor. (?))
- List transport-enabled Akonadi resources directly in transport type selector, and configure them on demand
- Scrap the wizard. Since Akonadi resources can't be configured with an embeddable widget / kpart (yet?), we'll have to stick to dialogs anyway.
KMailCVT replacement
Notes
Ideally, KMailCVT should be rewritten to allow export as well, in addition to import. Also, KMailCVT could use Akonadi resources for the job, then we would need one resource per supported import/export type. This would also give us nice backup schemes, like exporting the IMAP mails to an mbox.