[squeak-dev] Re: Testing Seaside in Squeak4.3alpha-11321

Chris Muller ma.chris.m at gmail.com
Fri Jun 3 19:09:34 UTC 2011


> What SqueakMap scripts lack and Metacello does pretty well is proper
> dependency handling. It's not enough to check if you have a given class in
> the system to decide if you have the proper version of the dependency loaded
> or not. E.g.: if I have some version of OCompletion loaded into my image and
> I want to load the latest OB, then I expect the loader script to update
> OCompletion to the minimal required version if my version is not sufficient.

Lacking for what use-case?  There are two use-cases which I've always
said are being handled by properly-written SqueakMap installer
scripts:

  1) Merge latest code of a package and all of its dependencies into my image.
  2) Load an exact version of a particular package as well as
exact-versions of all of its dependencies into my image.

At the end of the day, these are the two use-cases that matter for
most projectsand are handled fully by the SM installer scripts.

Just to be explicit, here is the loader script for the head release of Magma:

=======  Magma load script ========
"Merge the latest Ma client server code."
SMSqueakMap default
	installPackageNamed: 'Ma client server'
	version: 'head'.

"Merge the latest Magma client packages."
MCMcmUpdater updateFromRepositories: #('http://www.squeaksource.com/Magma').
===============================

It's a similar script for the dependent package, "Ma client server":

=======  Ma client server load script ========
"Merge latest MaBase code."
SMSqueakMap default
	installPackageNamed: 'MaBase'
	version: 'head'.

"Merge the latest Ma client server packages."
MCMcmUpdater updateFromRepositories:
#('http://www.squeaksource.com/MaClientServer').
===============================

and so on for MaBase.

Now, maybe there are some projects which want to maintain _multiple
branches_ and, therefore, another use-case is, 3) load the latest code
of branch XYZ into my image, but not the latest code from branch ABC.
Projects which need this are free to use Metacello, but that does not
mean one should not refer to these branches (as well as prior
versions) with scripts in the Catalog.

 - Chris



More information about the Squeak-dev mailing list