[squeak-dev] Re: About unloading of packages in the most recent Squeak 4.1 trunk

Bert Freudenberg bert at freudenbergs.de
Thu Aug 26 09:25:47 UTC 2010


On 26.08.2010, at 08:13, Hannes Hirzel wrote:

> The comment of class MCMUpdater is currently
> 
> <citation>
> MCMcmUpdater provides utility methods for updating Monticello packages
> from Monticello configurations.
> 
> When Monticello configurations are stored in a repository,
> MCMcmUpdater acts as an update stream. It first ensures that each
> configuration map has been loaded in sequence, then updates the last
> configuration map to the most recent version for each specified
> package, and finally loads these versions to produce a fully updated
> configuration.
> </citation>
> 
> 
> This class went through a small though important change (see
> discussion in this thread). It  should inform people who have not
> followed it.
> 
> In addition I'd like to have the class comment to give more details so
> that a non-specialist in version control / update mechanism issues can
> understand it.
> 
> My two questions:
> 
> 1) Is it correct to say that MCMUpdater  handles each Monticello
> package so-to-say as having its own update stream? I mean the
> succession of Monticello mcz files?

Stating it that way would not be helpful IMHO.

> 2) Which object is meant here by 'configuration map'?

The update configuration loaded from the repository (e.g. "update-xy.42.mcm")

> I'd like to add to the comment.
> 
> <proposalForAddition>
> MCMUpdater maintains in the variable 'SkipPackages' list of packages
> it no longer updates because they have been unloaded for example by
> Smalltalk unloadAllKnownPackages.
> </proposalForAddition>

... or because the user does not want them to be updated for some other reason. Being unloaded is just one. I'd rather say that you can prevent packages from being loaded or updated by adding their name to the SkipPackages list.

> And we need a description of the class variables
> 
> DefaultUpdateURL

String: the URL of the default repository to update from (MCMUpdater can be used with multiple repos, this one is used when you click the "Update Squeak" menu entry)

> LastUpdateMap

Dictionary of Integer: version number of the latest loaded update map per repository. An update will start from the first config map newer than that.

> SkipPackages

Set of Strings: names of packages to not update (empty by default)

> UpdateMissingPackages

Boolean: if true (default), new packages in the update config map will be loaded unless they are in SkipPackages. If false, packages not currently loaded are always ignored (which may lead to inconsistencies - use at your own risk).

- Bert -





More information about the Squeak-dev mailing list