[ANN] Update streams for SqueakMap packages

Andreas Raab andreas.raab at gmx.de
Wed May 14 22:54:44 UTC 2003


Hi Guys,

After some discussion with Göran, Avi, and Daniel about how to manage
incremental development a little better, I've set up a small SM package
which allows you to provide and receive update streams for any package
hosted at SqueakMap (see
http://map2.squeakfoundation.org/sm/package/6aa919cb-3b7c-4c4f-93de-ca90c612
c6fe).

The essential idea here is to bring a well-known technology to SqueakMap
(rather than inventing a whole new set of tools - this may be done in the
context of Monticello). The update streams are intended for packages which
rapidly change and where providing a 'full' package any time something
changes is too bothersome or simply not possible.

It's pretty simple to use your own update stream, so here's the complete
how-to:

Step 1: Define your update stream location.
You need a directory which is accessible via http for download and via ftp
for upload. While not strictly necessary, I recommend having a separate
directory for every package since it will simplify your work in the
long-term.

Step 2: Annotate your SqueakMap package
I've been talking to Göran about including a few things in SM1.1 but as we
are still at 1.0 you will need to use a specific kind of annotation in your
package description (note: package DESCRIPTION not version comment). The
annotation needs to look like:
	[loadUpdatesAt: http://my.place.here/somedir/mypackage]
	[storeUpdatesAt: ftp://myName@my.place.here/upload-loc/mypackage]

For an example, check out the package description for this package or
Balloon3D.

Step 3: Update SM from the net
	Since SM caches some things you will probably have to update SM so
that it sees the annotations above. (don't forget this - I've got bitten by
this a couple of times!)

Step 4: Load the UpdateStreams package
	If you haven't yet then now is the time ;-)

Step 5: Open the 'Update Loader' (from world menu/open)
	Here you should see all the packages for which update streams have
defined. The package you annotated in step 2 should show up or else you've
got something wrong (did you forget step 3? ;-)

Step 6: Choose 'create update stream' from the context menu
	This will be the first real test of the upload url.
	NOTE: You may get an error saying that the server responded 'no such
file' which is perfectly reasonable. Just say 'OK' to proceed.

Step 7: Post a test update
	Once the update stream has been initialized you will be asked if you
want to post a test update. Say yes. The update is an empty update and will
ensure that all works just the way it should.
	You will be walked through the entire publishing process with a few
additional warnings here and there.
	Once complete the update loader should indicate '1 new' update for
you.

Step 8: Load updates
	Select your package and choose 'load updates'. This will test the
download process. If everything works out you should get the info that '1
new update was loaded'.

Step 9: Posting 'real' updates
	Make up a change set and, from the file list, choose 'broadcast as
update'. You will be prompted with the packages which have update streams
(as well as all the server groups for the Squeak image updates). Select the
package you want to send this update to and you will be taken through the
update process.

Step 10: Receiving 'real' updates
	Choose 'update list' from the Update loader to see if there are any
new updates for the packages you have. Then choose 'load updates' for the
package you want to update and you're all there.

That's really all there is to it. I've tested it with 3.4, 3.5, and 3.6 and
it seems to work pretty well so far. 

If there are any problems, let me know - I'll post an update ;-)

Cheers,
  - Andreas



More information about the Squeak-dev mailing list