On Tuesday 21 April 2009 00:29:48 ianseeks wrote:
Thats great news. Its something that should be have been inbuilt from the beginning where a new version interrogates the existing rc files and imports all useable config data to the new one and ignores the old and no longer used config bits from the file.
This has existed in KDE since at least KDE 2 days. There is a mechanism that converts configs on version update. In the simplest version it allows for config keys to be renamed, but a developer also has the flexibility to pipe config files through a bash, python or perl script with all the flexibility that entails. Have a look at any significant KDE config file, like kmailrc - you will see lines like this at the top: [$Version] update_info=kmail.upd:1,kmail.upd:4,kmail.upd:5,kmail.upd:6,kmail.upd:7,kmail.upd:8,kmail.upd:9,kmail.upd:3.1- update-identities,kmail.upd:3.1-use-identity-uoids,kmail.upd:3.2-update-loop- on-goto-unread-settings,kmail.upd:3.1.4-dont-use-U OID-0-for-any-identity,kmail.upd:3.2-misc,kmail.upd:3.2-moves,kmail.upd:3.3- use-ID-for-accounts,kmail.upd:3.3-misc,kmail.upd:3.3b1- misc,kmail.upd:3.4,kmail.upd:3.4a,kmail.upd:3.4b,kmail.upd:3.4.1,kmail.upd:3.5.4,kmail.upd:3.5.7- imap-flag -migration-2 This shows which update scripts have already been run on this file, giving "at most once" semantics. The update scripts and control files (.upd) are in /usr/share/kde4/apps/kconf_update/ The reason extra work is necessary for seamless KDE 3 to KDE 4 PIM is mainly because the email dist lists can now be stored on a groupware server, so a file-mangling update system is not sufficient. But filter update problems may need extra work in the kconf_update scripts, so let me know if you have any.
This would be a big advance in user friendliness. What would also be a good thing is a ".kontact" folder that has subfolder links to all the elements of how kontact is configured so you can do an easy single line rsync backup of the .kontact folder instead multiple lines and it would also make upgrades to newer versions a lot simpler.
Generally we work on the .kde level, since the schema by which all KDE apps store there config and data is (supposedly) well known. But I might include a section on how this works in the KDE admin workshop in the upcoming openSUSE Community Week. Will