Web update library in python?
Diez B. Roggisch
deets at nospam.web.de
Tue Nov 20 12:17:10 CET 2007
Jorgen Bodde wrote:
> Hi A.T.Hofkamp,
> Using svn still requires the people wanting to offer updates to have a
> svn server installed, or use one of the svn services available and
> that is simply too limiting.
> I will explain a bit more where I will use this for. I am writing a
> tool that takes a repository (e.g. a bunch of files with some XML to
> tie it together) and generate something else based upon the user's
> input configuration.
> The 'repositories' can be created by anyone who likes to share their
> code templates, and let the end user configure this template and
> create a customized code base of it, on which they can code their
> entire app. My tool supports incremental configuration which means if
> there are updates to this repository, the user simply has to click
> configure/generate again and merge the changes into their working
> To provide others with a web update functionality from inside my tool,
> all they should have to do is put a file online, containing a snapshot
> (or delta snapshot files) of the repository that can be used. So all
> they do is either click "UPDATE" or "DOWNLOAD" if the repository is
> not yet present. For the maintainer of the repository it should be as
> simple as making a snapshot of their directory and out comes a ZIP
> file that can be put online for others to update from.
> SVN is wonderful in resolving issues, but it requires everyone to
> either use a service like berlios / sourceforge or be fortunate that
> they have a SVN server set up somewhere. What I want, looks like a
> plain down to earth update mechanism which is a bit more standardized
> and it would be nice if there was already something like this called
> PyWebUpdate, or PyUpdater.
> For my tool it's key that the learning and usage curve is not very
> steep. I can imagine on a web site you are simply instructed to enter
> an url like "http://www.somesite.com/repository/framework" inside my
> tool, press DOWNLOAD / UPDATE and it will install it for you.
> I guess where you can compare it with, is what Eclipse uses to update
> or install their plugins ... This is not exactly re-inventing the
> wheel as the majority of the users cannot use SVN (because they have
> no place to store their repositories).
> I really thought about SVN but I would not like end-users to be
> bothered with maintaining or installing SVN or a SVN server, and have
> intermediate .svn local files inside every directory ;-)
> I hope this is a bit more clear,
You won't come far with this. Sorry to say so, but the limitations you put
on yourself (whilst understandably so) are to much.
The reason is simply that without any server-side mechanism that at _least_
allows for file-locking (something plain HTTP doesn't, nor does FTP), you
can't possibly make this work, as different concurrent requests of users
will end up corrupting the data.
SVN works through Apache via HTTP. I REALLY believe you will spare yourself
_mucho_ troubles utilizing that.
More information about the Python-list