[Chandler-dev] Issues with exporting Chandler data

Grant Baillie grant at osafoundation.org
Mon Apr 21 11:57:22 PDT 2008


Hi, all

So, I've been working through a couple of bugs related to export, and  
have three proposals I'd like to run by people before checking them  
in. If you have objections, or improvements, speak up sometime today  
or forever hold your peace :).

1. This first is a user behaviour thing:

Currently, the app exports your data when you quit. The first time  
this takes longer than 15 seconds, a dialog appears asking you whether  
you want to do this every time or not. I'm proposing that we replace  
this dialog (and the somewhat complex code to create and manage it)  
with a checkbox in the export progress dialog that says "Always export  
my data when I quit Chandler."

2. The second is an implementation issue:

The existing code does an open() on the path to backup.chex, and  
writes the data directly to that file. Unfortunately, this means that  
your data can get erased, or left in an unusable, incomplete state if  
Chandler or the OS crashes, or even if you Cancel the progress dialog.  
I have a patch that deals with this by writing all the data into an in- 
memory buffer, and then writes that out to disk.

This means extra memory usage, but seems better than trying to deal  
with platform-dependent issues that you get when writing to a  
temporary file, and renaming it to the path you want. I Googled around  
some for ways of doing this in python, but didn't find anything  
useful. Does anyone know of something better?

3. Jeffrey proposed in Bug 12001 that we attach the application's  
schema version to the backup.chex filename, i.e. we would start  
writing out to backup_484.chex on trunk. I'm not totally convinced  
this is necessary if #2 is fixed, it might be handy to have a backup  
backup.chex for cases when people upgrade to a version that has  
broken .chex export for some reason. Any opinions?

--Grant



More information about the chandler-dev mailing list