473,397 Members | 1,949 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,397 software developers and data experts.

Ideas on self updating software?

*long post alert!*

Can anyone give me some pointers on writing "self-updating" python
programs? I have an application that is almost ready for beta
testing. I want to be able to fix any bugs and push the updates out.

I have a *very vague* idea of how to attack this. The client will
have an auto-update feature that will hit the webserver via xml-rpc,
asking for updates. The server responds, sending back any updated
modules.

Ok. My first idea is to have *versions* of software tagged somehow.
A table (software_update -- not a permanent name, all I can come up
with right now :-)) would exist with two columns:

version_number, updated_module

The first beta version of my software will be tagged 0.1. The first
load into my database would contain a row for each module. Assume I
only have 4 modules, named a, b, c and d:

The table (software_update) would contain the following rows:
0.1 a
0.1 b
0.1 c
0.1 d

Now, assume that later I update modules c, d and tag the module
verison 0.2. Now the table contains the following rows:
0.1 a
0.1 b
0.2 c
0.2 d

The idea is that the client sends the server its version. The server
queries software_update for all rows where version_number >
client_version_number. Then all modules are *pushed* down to the
client.

I realize that I'll have to worry about *duplicates* in revisions.
That is version 0.3 may also update module 'c'. I'll figure that out
later.

Okay, does this sound sound? =) Anyone have any other ideas on how
to tackle this?

jw
Jul 18 '05 #1
2 2898
Jaime Wyant wrote:
Can anyone give me some pointers on writing "self-updating" python
programs? I have an application that is almost ready for beta
testing. I want to be able to fix any bugs and push the updates out.


Keep it simple. Write a separate application, called the updater
that can download and overwrite the existing modules.

During startup the application that needs to be updated could check
for new versions and ask the user to run the updater
if necessary.

It might save you a lot of trouble. And don't fool around with
databases, just download everything each time, zip it up if it is
too big.

Istvan.
Jul 18 '05 #2
Jaime Wyant <pr***********@gmail.com> writes:
Can anyone give me some pointers on writing "self-updating" python
programs? I have an application that is almost ready for beta
testing. I want to be able to fix any bugs and push the updates out.
You can try rsync'ing the differences from the installed software to
your reference repository. Or you can 'cvs update' it, or use any other
version management system.
I realize that I'll have to worry about *duplicates* in revisions.
That is version 0.3 may also update module 'c'. I'll figure that out
later.
Keep things simple. You can version each module independently and
create one with your systems version that is incremented each time an
update is applied. So, this version module will be constantly increased
and will show its version to your users when they ask for the version
running -- remember to make it the last update, in case something
fails... -- and the other modules will be updated independently.

I would go for the CVS approach: each file is independently versioned
and the product version is not limited or bound by the file version.
Okay, does this sound sound? =) Anyone have any other ideas on how
to tackle this?


rsync seems to be the simpler approach... ;-)
But, just issuing a warning about a new version seems to be the best
thing, leave the updates for the user (actually, to another application
activated by the user).

--
Godoy. <go***@ieee.org>
Jul 18 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

14
by: David MacQuigg | last post by:
I am starting a new thread so we can avoid some of the non-productive argument following my earlier post "What is good about Prothon". At Mr. Hahn's request, I will avoid using the name "Prothon"...
4
by: ChaosKCW | last post by:
Hi Using Python 2.4 I am trying to procduce a generator which will return the results of dbi SQL statement using fetchmany for performance. So instead of fetching one record for each call, I...
7
by: John Bailo | last post by:
There's some articles about Smart Clients for .NET 2.0 but I am thinking of a simple method to have a smart client I am writing update itself. Question: 1) Say I create a web method that...
10
by: Rada Chirkova | last post by:
Hi, at NC State University, my students and I are working on a project called "self-organizing databases," please see description below. I would like to use an open-source database system for...
2
by: mark s | last post by:
How can I make a simple, self-updating calendar in a form without using any controls except textboxes *or* toggle buttons? -- name: Mark S. email: huskie_009@hotmail.com *** Sent via...
1
by: gaosul | last post by:
I am non-programming scientist and I am using a Program called Easyarticles from Synaptosoft Inc., which is based the database program Access. Unfortunately, the owner of this company has...
11
by: Marco Castro | last post by:
Is there someway to get an application to update itself? Right now I'm including a second executable that the main application calls whenever it sees a new version of itself. This works but it...
224
by: Jon Slaughter | last post by:
Sorry for all the cross posting but I'm interesting in getting a serious discussion about how usenet has become lately. Many people are moving away from usenet because of all the spam and cooks...
1
by: Tim Haughton | last post by:
What is the preferred method of implementing a self updating WPF app? Is it still the UAB? Cheers, Tim
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.