So, for a while now there has been an item on the Preview roadmap to handle data migration. This means that when users install new versions of Chandler (ie: 0.7.1 or 0.8) they have the ability to migrate all their data to the new version. You may have seen this listed on a planning page or in previous discussion described as "dump and reload" or "installer work". We haven't talked about it for a while so I thought it was worthwhile to give an update on where we are.

For the past couple of milestones, we have had some partial solutions in place, with the ability to save and restore settings. This restores all shared data but users still have to manually export and re-import any non-shared calendar data. Currently people use a combination of techniques ie: stamping all their tasks as events exporting then re-importing. We need something more end-to-end for Preview that handles all the data types and doesn't require users to piece together a bunch of different work-flows. PPD has an outstanding task to write up a more formal spec for the end user experience we want to have when people install new versions of the app. In order to do this, we first wanted to understand some of the details around how installers work so we can spec out something taking into account any technical limitations.

So Bear, Mimi and I met last week to discuss how installers work on all the various platforms. The meeting was fairly brief but complete notes of the meeting are available here http://wiki.osafoundation.org/ Journal/InstallersDiscussion20070118.

In summary, we came away with the following conclusions/proposal....

+ Since installers work different on all the various platforms, it's probably NOT a good strategy to develop sophisticated installers that prompt the user through a series of steps in order to migrate their data. + Typically Windows installers have much more flexibility. We can detect that the user has a previous version installed and prompt them to migrate through a series of wizard-like dialogs. + Right now, for the Mac, we simply replace the existing executable. We would have to write something custom in order to simulate the installer type wizard.
        + Linux is similar to the Mac - we replace the existing executable.
+ We can certainly write custom installer program for the Mac or Linux but this is not very customary and considerable work.

+ Instead of using the installers, we came up with the following alternative proposal... + We can check for a previous repository and version of Chandler when the application starts up. + Today we already do some detection on startup ie: we know there is a repository from a previous version of Chandler. + The easiest scenario is to have the user manually dump out the data from the old version of Chandler and manually reload the data to the new version using menus. + We can prompt the user that they are running a new version and they should do this. + Possibly we can look at automating one of these steps but at a minimum a manual dump and reload would be good enough for Preview.

+ Some questions/issues we are working through....
+ There is still an issue when a user installs a new version and replaces the old one. They might not have dumped out their data. In the worst case, we might have to instruct them to reinstall the previous version and then backup their data. There are likely alternatives to consider ie: prompt to backup when you quit the app. + Should we also explore the effort required to potentially open up a previous version of the repository and dump into the new one? + What happens when you dump the data - ie: pre-defined file name and location?
        + Can we handle settings as well as data ie: accounts, preferences etc?
        + How often to we anticipate the schema to change after Preview?

As a next action, Mimi has started putting together some work-flows which describe the user experience....

************************************************************************ *************************************** In Preview, we would like to consolidate the following functionality into a single workflow:
+ Restore shares
+ Save and restore settings
+ Backup and Restore

MANUAL Workflow
1. Go to File menu and select 'Back-up data'
2. Chandler translates user's data into EIM and saves it as a .txt file somewhere it knows about.
3. User installs new version of Chandler
4. User goes to File menu and selects 'Restore data'

AUTO-MAGIC RESTORE Workflow
1. Go to File menu and select 'Back-up data'
2. Chandler translates user's data into EIM and saves it as a .txt file somewhere it knows about.
3. User installs new version of Chandler
4. On install, new Chandler detects that this is a version upgrade for the user 5. New Chandler finds user's data in EIM format and imports it into new version of Chandler

POTENTIAL UPGRADES TO THIS WORKFLOW
1. User is given a choice as to what data they want to restore (which collections) 2. The Back-up portion happens automatically before a new version of Chandler overwrites the previous version.

************************************************************************ *****************************************

Questions and comments welcome.

Sheila


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design

Reply via email to