Update from server on project base...

Alejandro Fernandez casco at darmstadt.gmd.de
Wed Jan 31 19:23:52 UTC 2001


Hi all,
  sorry to bother you with this possibly simple matter, but I need your advice.
I am running a Swiki server and some days ago I needed to update it with patches. My problem appeared when I discovered I was running a striped image, and I found no way to file-in the fix.  I therefore though  it would be cool to have for closed applications an update mechanism like the one we have for squeak. I played a while this morning and figure out one way (very primitive) to extend the update mechanism to work on a
per project base. However, I heard that dynamic project loading is one of the features that will be present in the next release. I am wondering whether incremental update will also be there? That would finally solve my problems :)
Any thoughts?
Regards
-casco

Alejandro Fernandez wrote:

> Hi, I think I have got something running. I found a problem with the current
> implementation of the update mechanism given that it is implemented depending
> on global variables (all using class methods). The name of the current
> version, for example, is maintained globally. Therefore it is not possible to
> have different packages that update from different servers using different
> versions.
> What I did was to implement the updating behavior as instance behavior in a
> new class called "UpdateBookkeeper". There is an instance of this class for
> each project holding information about the version name and the update
> servers.
> In the current implementation, most of the code will be duplicated between
> this class and Utilities (that is the one that currently manages updates).
> However, I tried the new stuff for updating Squeak and it also works,
> therefore it could be possible to just remove the update behavior in class
> Utilities.
>
> I haven't found the code they use at Disney to set up the initial values for
> these global variables therefore I had no way to figure out what is the best
> way to do it. The process would be now to inspect the Bookkeeper object and
> set the values manually.
>
> In concrete, what one needs to do is:
> 1- Create a new project and enter it.
> 2- Inspect "Project current updateBookkeeper"
> 3- Set the value of the variable "updateUrlLists" to something of the form:
>
> OrderedCollection with arrays of the form
> #('Swiki Public Updates' #('http://www.darmstadt.gmd.de/~casco/squeak/'))
> where each  arrays represents a pair Server name, Array of server URLS.
>
> 4- Set the value of the variable version to the version identifier of your
> package/system/project. In this case it could be 'com47swiki12'
>
> 5- Evaluate "Project current updateBookkeeper updateFromServer"
>
> That should be it.
>
> Now we need a server somewhere  (like the squeak one) with a folder named
> "updates" containing the updates and a the file named 'updates.list'. I could
> set up one here, if you want, but someone will have to send me all the updates
> (You could use the settings in the example to try the files I have in our
> server. It only has the patch for the append bug).
>
> I am attaching the changeset, and example files for the "updates" folder.
> Note that the server names must have the full URL of the update directory
> excluding 'update'.
>
> I could not figure out how Je77 packaged the pre-packaged swikis therefore I
> could not see if updating works in this case. Any suggestions?
>
> Regards,
> casco
>





More information about the Squeak-dev mailing list