Re: auto-upgradable application

From: Dave Brueck (dave_at_pythonapocrypha.com)
Date: 11/05/03


Date: Wed, 5 Nov 2003 10:43:46 -0700
To: "python-list" <python-list@python.org>


> The endless request from my partners to fix the bugs or add new
> features already solved on the new version was really annoying.
>
> So, I was thinking about adding an auto update feature to my app, if
> anybody knows about any package for these purpose would be great.
>
> If not at least I'll write a very basic script (different 'exe' on the
> distribution) that checks for a a new version (on an intranet/internet
> location), if so and no update to the main core is done (the Python or
> wxPython libraries) then update the changes or display a message to
> update to the latest version for main core update.
>
> Do you have a better idea?

No, that approach works pretty well. At my company I created a build process
that spits out the installer, the "full update" and the "incremental"
update. New users always download and install using the installer. Our app
is a networked app already, and part of the message that periodically comes
back from the server (client talks over XMLRPC to a Zope server) is info on
the latest version number and download locations.

If the client detects that it is out of date, it looks at the version info
to see if it is eligible for the incremental update and downloads it,
otherwise it downloads the full update (both are just zip files - full
update is about 4 MB, incremental is usually around 1MB. If your users are
all on a LAN then it's probably not worth the extra effort to distinguish
between full and incremental IMO). Once the update has been downloaded the
GUI prompts the user to see if they'd like to install it right away or wait.
When the installation is kicked off, a tiny separate program waits for the
main app to shutdown, unpacks the new files, and then relaunches the app.

One last thing that you probably don't need is that the client reports to
the server its version. This lets you keep track of how many users are still
on an old version, but in our scenario we also use it so that the server can
send back a "you're too old and must upgrade!" message so that the
client-server protocol can gracefully evolve over time.

-Dave



Relevant Pages

  • Re: RESOLVED - Re: Memory Read Error.
    ... XQDS has an update to X-Setup (it's actually just a fix for the current ... What was the problem is in the download load site that I ... go to the app and follow these steps: ... Right Click on the installer app, ...
    (microsoft.public.windows.inetexplorer.ie6.browser)
  • WSE2.0
    ... I am building an installer to deploy a client App which uses WSE, ... I don't want to deploy WSE runtime everytime app is upgraded. ...
    (microsoft.public.dotnet.framework.webservices.enhancements)
  • WSE Runtime Installation Check!
    ... I am building an installer to deploy a client App which uses WSE, ... I don't want to deploy WSE runtime everytime app is upgraded. ...
    (microsoft.public.dotnet.framework.webservices)
  • Re: .NET haters ought to get a kick out of this
    ... couple of controls and the installer and you're closer to 2 meg. ... that Karl ran the app without the framework installed and then said it ... app and a 4 meg Hello World app in today's terms. ... need to download a vast collection of support files, ...
    (microsoft.public.vb.general.discussion)
  • Re: Desktop multi-plataform ruby app
    ... I want to develop a desktop app that runs in either linux or windows. ... *)download the one click installer ... *)download and install the qtruby gem ...
    (comp.lang.ruby)