[Kde-pim] The road to KMail/Akonadi (was: multiple selection and hitting assert in KMMainWidget::slotMsgPopup)
Ingo Klöcker
kloecker at kde.org
Sat Dec 13 16:43:27 GMT 2008
On Saturday 13 December 2008, Szymon Tomasz Stefanek wrote:
> On Saturday 13 December 2008, Thomas McGuire wrote:
> > Typical KMail crash. The msg was deleted via unGet() behind our
> > back and became invalid. Fixed in r896262.
>
> After 4.2 I strongly suggest planning an attack to the KMFolder &
> KMMessage part of KMail. This is also a step in the KMail breakdown
> plan for the akonadi port.
>
> We must assume that we have not enough work power for doing all this
> in a short period of time so we should plan carefully a sequence of
> small, compatible moves that can be done directly on trunk (and that
> would help a lot keeping the branches synchronized) or in small
> temporary branches.
>
> Some sketch ideas (please comment, expand, flame on...):
>
> - move the whole storage part into a source subfolder: KMFolder,
> KMMessage and anything that is more low level. This can be done
> in a rather painless trunk move.
> A good idea would be to move it even one level deeper.
> Say subfolder "storage/core".
Please no subfolders. It's a PITA to navigate between different
subfolders. Also I don't see the point in different folders unless you
want to create a separate library.
> - Develop a reference counted abstraction layer for the storage
> (and place it in subfolder "storage"):
>
> - Wrap KMFolder in a shared reference counted KMail::Folder class.
>
> - Wrap KMMessage and KMMsgBase (both!) in a KMail::Message object.
> The Message object should be shared, reference counted and
> keep a reference to the folder, in some way.
> This will be probably a tricky part since complex (and sometimes
> weird) things happen in the current source at this level. Support
> from experienced KMail developers will be probably needed.
>
> This step can be possibly done without touching much stuff
> in the existing source: it would be just a new layer wrapping some
> classes.
Is this really necessary? Won't we throw this stuff away as soon as we
switch to Akonadi? If yes, then why do it in the first place?
> - Move all the outside components to use the layer above instead of
> the original storage classes. This will be probably a large work
> to be splitted in small chunks for every subcomponent that needs
> to be ported.
>
> - When everything of the above is done (and it will take its time)
> think about attaching the akonadi storage layer in place of (or
> in parallel to?) the KMFolder / KMMessage machinery...
> (subfolder "storage/akonadi")
I think this is a waste of developer resources. Furthermore, I think we
need a much more radical approach.
A lot of the functionality currently built into KMail will be outsourced
to Akonadi resources (mbox, maildir, POP3, IMAP) and Akonadi agents
(e.g. filtering, expiry, threading(?), sending). The composer should
become a standalone application talking directly with Akonadi and the
sending agent. The reader should become a KPart and/or a standalone
application talking directly with Akonadi. This leaves us with a folder
view, a message list and a "bit" of glue code that needs to be ported
to Akonadi.
With this in mind I propose to start a whole new extragear project
KMail2 consisting of all of the above parts and re-using many of the
concepts and as much of the code from KMail1 as possible. The
development of this project will be completely based on Akonadi and
KMime and it will take as long as it takes. To free as much developer
resources as necessary development of KMail1 will be halted, i.e.
KMail1 will enter permanent maintenance mode.
The advantages of this approach are:
- KMail1 will always be as usable and as stable as it is now (resp. more
stable since we will still fix the most serious bugs).
- We can fully concentrate on Akonadi without having to jump through
several loops just to re-use/refactor the current code and keep it
stable.
- We have all the time of the world.
- We will not be bound to freezes of KDE, so that we can run full-steam
all the time.
- We don't need to have all of KMail1's more esoteric features in the
first release.
I guess we should decide which way to go during the Osnabrück meeting in
January.
Regards,
Ingo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20081213/ba936c0e/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list