KDE PIM/Meetings/Osnabrueck 7

From KDE Community Wiki

Annual KDE PIM meeting in Osnabrueck 2009.

Date: Jan 09th (friday) to Jan 11th (sunday).

Location/Travel

Location: NEW office of Intevation GmbH (Neuer Graben 17, 49074 Osnabrück, Germany), http://www.intevation.de/travel.en.html

Hotel: http://www.dom-hotel-osnabrueck.de/index_en.php (as usual)

Agenda

Friday

All day: arrival

  • Evaluating the Akonadi migration in 4.2 or: the very last chance to stop Akonadi in 4.2 (Kevin, Volker)
  • KDE PIM runtime/apps split (Tom)
  • Discuss the fd.o situation (Cornelius)
  • Review Akonadi change notification (Stephen, Volker, Kevin, Tobias)

19:00 - 22:00 Dinner at "Chows Garten", Große Hamkenstr. 19

  • Free/Busy support (Brad, Will)
  • Consideration of moving mail output (i.e. kdepim/mailtransport functionality) to Akonadi (Brad, Will also curious)

Saturday

08:00 Breakfast

  • Presentation of the Akonadi on N810 project (Karim, Cédric, Romain, Audrey, Guillermo) slides
  • Static code analysis/license issues in KDE PIM (Bertjan) slides
  • Akonadi Promotion
  • KDE PIM on Windows/Mac OS
  • Group photo

Lunch

  • Porting KDE PIM to Akonadi - Planning for 4.3 and 4.4

19:00 Dinner at "Rampendahl", Hasestr. 35, http://www.rampendahl.de

  • Review Akonadi extensions currently developed in playground/pim (Stephen, Volker)

Sunday

08:00 Breakfast

  • Porting strategy for KABC/KCal based resources and applications (Kevin, Tobias)
    • Designing an Akonadi-based replacement for KABC::StdAddressbook
  • Needed Akonadi developments for 4.3 (Volker)
    • FS backend
    • RID FETCH
  • Review the distlist situation (Kevin, Tobias)
  • KMail porting strategy (Thomas, Till, Ingo, Volker, Stephen)
  • Web pages (pim.kde.org, akonadi-project.org, techbase, userbase)

Lunch

  • Bugzilla organization for Akonadi/KDE PIM (all)
  • Review Akonadi conflict detection (Stephen, Tobias, Volker)
    • detecting backend induced conflicts on the resource side
    • how to handle conflicts/GUI presentation
  • How to use Akonadi in your application/best practices/api dox review (Stephen)
  • Review of datastore.cpp in akonadi including possible refactoring and collectionMoved patch (Stephen, Volker)
  • Forcing Ingo to finally commit his Akonadi work from the last meeting (Volker) ;-)


All afternoon: departure

BOFs

N810

  • David
  • Thorsten

are trying to get the N810 kompile.

Static call graphs with egypt

  • Thorsten

Meeting Notes

Akonadi, part one

  • KResource -> Akonadi migration
    • disable the creation of KRes client side bridges, but leave the migration enabled as such.
  • Apps/Runtime split:
    • we will create a runtime subdirectory in kdepim containing runtime dependencies (akoandi agents, plugins, etc) which should be buildable separately, cf. kdebase
  • Akonadi MySQL dependency
    • Distributions need to put MySQL on KDE based install/liveCDs. It's size means there is less room for other KDE apps and other distro tools and dependencies.
    • The alternatives MySQL embedded and SQLite were rejected at proof of concept stage for different reasons: MySQL embedded does not handle transactions (doesn't have innoDB backend, which is the only one that supports real transactions), and is not as well supported by upstream for example the 64bit version is not well supported. SQLite is not fast enough for large amounts of data.
    • It might be possible to use Akonadi server with SQLite for example, the default will remain MySQL, but distros will possibly be able to use SQLite for CDs.
    • SQLite specific code still exists in kdesupport/akonadi/server, but needs to be updated as the schema may have changed since switching to use MySQL exclusively.
  • Review Akonadi change notification:
    • Adding ItemMoved and CollectionMoved and adding parent collection to {Collection,Item}Removed in a BC way.
    • Adding parent Collections to the slots itemChanged and collectionChanged was also discussed. The problem is that using a full path in a filesystem as a remoteId can be problematic if a collection higher in the heirarchy is renamed or moved. As a resolution, Items and Collections will both get a QStringList of ancestor collections and only use the filename or dir name as a remoteId instead of a full path. This is only of interest to Resources. Even some resources (eg with only one collection) will ignore it and use a full path.
    • If this gets built into Item and Collection, then this means that retrieveItem can remain BC and get this functionality anyway.
    • CollectionSync and ItemSync: Currently compare remoteIds. Will possibly need to be changed to also compare the heirarchy also. Remove assumption that no longer hold like remoteIds being unique over whole collection tree.
    • Ordering will remain in an attribute, and not be built into Collection. Ordering remains an application side configuration issue. Some aspects of this remain an open issue, such as ordering by applications before a remoteId gets generated for an item.
    • Adding ResourceBase::clearCache() to allow the resources to remove any previous cache content in case there configuration changed in a drastic ways. While this should mostly work currently already with the Item/CollectionSync stuff, there might be tricky corner cases if some remoteIds are reused.
  • Mailtransport with Exchange/Groupwise:
    • so far no agreement on an approach, several approaches discussed
    • mailtransport should not link against openchange etc.
    • use Ingo's outbox agent, items contain transport as attribute (or a separate outbox folder)
    • mailtransport could get an backend and dispatch mails to the exchange/groupwise resources that have the connection and account settings already
    • put mailtransport over dispatcher agent or other way around?
    • plugins for mailtransport instead all of the above, keeping the mime-level interface
    • depending on Akonadi and using items instead of mime objects
    • consider account setting duplications with resources
  • Invitations handling, Free/Busy handling, Delegation, (nested) distlists
    • same problem with exchange/groupwise as with mail sending, they use their own API for that
    • probably needs an abstraction layer
  • We want convenience API for the password handing, maybe based on Kopete's wallet password class, preferably built into KWallet or KConfigXT to deal with:
    • fallback to KConfig
    • password loading when wallet if opened by something else
    • notification when the password was loaded
    • async KConfigXT password support
  • KABC::StdAddressbook use-cases/replacements
    • insert/delete addressee: easily portable to jobs since result is usually ignored anyway
    • listing everything: usually not needed synchronously either, replace by item model
    • whoAmI(): usually needed synchronously, port to kpimidentities (which is sync since no Akonadi involved)
  • conflict handling
    • see discussion on kde-pim ml, it's largely what we came up here as well
    • before adding generic conflict handling code to libakonadi, we want to implement it in one application and resource first to confirm our design ideas.
  • multipart items and KABC::Addressee
    • there is no way to detect if an addressee object is incomplete (unlike with KMime, might need explicit API)
    • contact serializer plugin does not implement parts() and therefore always suppilies FullPart parts.
  • Akonadi server internal work
    • fix dataloss item/collection move/copy
    • fix change notification cross-resource moves
    • add change signal for collection moves
    • use changed parts parameter of itemChanged() (currently always emptry)
    • use the parts parameter of retrieveItem() (currently always empty)
    • remove the limitation that only resource can create top-level collections

Application Porting

  • kmail - biggest unit to be port
  • there are some plans for porting various components but no timelines.
    • pop
    • filtering
    • composer
    • mailtransport
    • header list
  • Apps currently using akonadi: mailody, kpilot
  • What resources exist for akonadi? Complete list is on akonadi-project.org(where?), but only vcardfile and icalfile resources are feature complete
  • kolab resource will be the biggest resource to write
  • imap resource: high performance imap library needed that supports all extensions. talking to pvhoof, maemo has a small fast imap lib already. Development of imap resource can be done in parallel with porting.
  • what do we need in 4.3. what can we achieve by 4.3? 6 month schedule, 4.3 will branch immediately before akademy
  • port kaddressbook and korganizer, everything but kmail for 4.3. replace kaddressbook with clean rewrite.
  • "We ported Kontact to Windows . We can do /anything/." TA
  • server-side search
    • limited api?
    • query language
    • operators

Web Site Meeting

Subject

  • web sites discussed:
    • techbase.kde.org
    • userbase.kde.org
    • community.kde.org - to be created
    • developer.kde.org
    • pim.kde.org
    • kontact.kde.org
    • wiki.kde.org

Participants

  • Cornelius
  • Ingo
  • Tom
  • Stephen
  • Thorsten

Summary

the community site
  • userbase.kde.org is for user questions like "how do I send a mail with kmail", techbase.kde.org is for technical questions like "how do I program a mail client". What is missing is a community web site for questions like "how do I create artwork for KDE PIM". This community web site should be a wiki. An idea is to create community.kde.org.
  • the to-be-created community page should have a structure like community.kde.org/PIM for the KDE PIM community. pim.kde.org should redirect there. If not "with slashes", the structure can be implemented using mediawiki categories.
  • the community site will at least hold events (like aKademy) and teams (like KDE PIM and the aKademy team)
  • it would be good to be able to have a different logo depending on what page realm you are in. E.g. you would get a KDE PIM logo for community.kde.org/PIM and a KDE GAMES logo for community.kde.org/GAMES.
  • this communities' correct name is KDE PIM, no hyphen, no dash. kdepim is the name of the KDE module.
redirects
  • wiki.kde.org is regarded as obsolete and ugly. It has been superseeded by techbase.kde.org and userbase.kde.org. wiki.kde.org should link to a web page that gives an overview to the visitor like "If you want to use KDE and have a question, go to userbase.kde.org. If you want to develop KDE, go to techbase.kde.org..."
  • developer.kde.org already links to techbase.kde.org. User pages like developer.kde.org/~username are not affected.
  • kontact.kde.org should redirect to userbase.kde.org/kontact
  • pim.kde.org should redirect to the new community wiki
translations
  • userbase.kde.org, no other site, must offer translations to other human languages than english. kontact.kde.org, the KDE PIM user page did not do this, but as KDE is shipped in other languages, the help should be available in those as well.
  • it could not be decided if the languages should get an own prefix (like de.userbase.kde.org), an own mediawiki namespace or a suffix like kmail_tutorial(german). So the situation stays as it is.

Todo

As outlined above, the following things should be done:

  • redirect wiki.kde.org to a site that links to userbase.kde.org and techbase.kde.org
  • redirect kontact.kde.org to userbase.kde.org/kontact
  • create a community wiki
  • redirect pim.kde.org to the community wiki
  • find a programmer who adapts mediawiki so the PIM pages (every module's pages) have their own logo

Please complete by adding your notes!

Blogs