Auto Updates [Was Re: External functions]

Trevor DeVore lists at mangomultimedia.com
Tue Feb 5 10:02:07 EST 2008


On Feb 4, 2008, at 6:08 PM, Neal Campbell wrote:

> Has anyone looked into writing an external for Sparkle for OS X? I
> have used it with other languages and its pretty slick, albeit OS X
> only.

Hi Neal,

I looked at Sparkle a number of months ago while doing some work on  
auto updating. It seems to be a great solution as lots of OS X  
developers are using it. I'm not sure that wrapping up Sparkle in an  
external is the ideal approach though since Revolution is cross- 
platform. As I understand it, Sparkle basically:

* Provides a call that will check for updates.
* If an update exists the dmg, zip, etc. of the .app is downloaded,  
the app quits, the update is installed and the app is relaunched.

The components to do the same thing in Rev (probably) exist in each of  
the auto updaters that some of us are using individually. We just need  
a generalized solution that can plug into any application.

The fact that OS X uses application bundles for applications is  
beneficial here since Sparkle can completely wipe out the app and  
replace it, never worrying if some user file is being erased.

On Windows the application folder is not as protected and I know I  
have customers that have stored files in my application's folder  
before. Even if people shouldn't store files in an application folder  
it is probably bad if their files disappear because they updated your  
application.

If this concern is to be taken into account when providing a general  
auto updater then you need to decide if the auto updater tries to keep  
the application folder contents in sync. It is easy enough to install  
updated files each time and even add additional files to the  
installation folder. It is more difficult if you wanted to remove  
files during an update (i.e. you moved all stacks in stack file B into  
stack file A and no longer need stack file B). I imagine this is  
pretty rare during minor updates of a major version and having a file  
that isn't being used in the application folder probably wouldn't be  
the end of the world.

Can anyone think of a reason why it would be bad? Is the reason bad  
enough that the auto updater should be able to wipe out files that are  
no longer needed?

I'm asking these questions because the lack of tools in Revolution for  
providing basic functionality that almost all applications need (or  
that users expect) is something Jerry and I have discussed quite a  
bit. I think that for Revolution to truly deliver on the promise of  
rapid application development a true end-to-end solution needs to be  
available.

Revolution is great for laying out your GUI and coding your  
application. As you have to make decisions about how to organize your  
application files on disk it can be confusing the first few times  
around. When you add your first library it can be confusing as to  
where to put it and how to initialize it. Determining where to store  
preferences on each OS can be time consuming. There are lots of little  
decisions like this that Revolution developers are making again and  
again until they come up with a formalized method. Our time could be  
better spent and we are looking at ways to improve the situation.

Regards,

-- 
Trevor DeVore
Blue Mango Learning Systems
www.bluemangolearning.com    -    www.screensteps.com




More information about the use-livecode mailing list