[squeak-dev] MCMcmUpdater update map name

David T. Lewis lewis at mail.msen.com
Wed Apr 29 03:32:44 UTC 2015


In MCMcmUpdater, the UpdateMapName is initialized from a preference. This
is 'update.spur' for the Spur image, and 'update' otherwise. This supports
the parallel update streams for Spur and non-Spur images.

A side effect is that certain packages (e.g. head branch for OSProcess)
cannot be loaded from SqueakMap because the loader does this:

	MCMcmUpdater updateFromRepositories: #('http://www.squeaksource.com/OSProcess')

which does not work when UpdateMapName is set to 'update.spur' because the
OSProcess repository has only update maps named 'update' (and there would be
no difference between Spur and non-Spur anyway).

MCMcmUpdater is a collection of class-side methods, and this is making me
think that it may be time to have it be instance based, so that different
updaters (one for OSProcess, another for Squeak trunk) could know what update
map files to look for.

I am not entirely clear on how the update stream (or streams?) for trunk
will work after we move to the Spur image in 5.0/4.6, but it seems desirable
that an external package (OSProcess, VMMaker, others) should be able to
specify the name of its own update maps independent of the Squeak trunk
update preferences.

How should this work? Does it make sense to move the logic for MCMcmUpdater
into instance side methods so that more than one instance of MCMcmUpdater
can exist?

Or maybe it is sufficient to find a way to implement this:

    MCMcmUpdater class>>updateFromRepositories:updateMapName:

so that a SqueakMap package loader could override the default preferences
for trunk?

Dave


More information about the Squeak-dev mailing list