Testing Seaside in Squeak4.3alpha-11321

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Testing Seaside in Squeak4.3alpha-11321

Dale Henrichs


----- Original Message -----
| From: "Levente Uzonyi" <[hidden email]>
| To: "Chris Muller" <[hidden email]>
| Cc: "The general-purpose Squeak developers list" <[hidden email]>
| Sent: Friday, June 3, 2011 9:49:46 AM
| Subject: Re: [squeak-dev] Re: Testing Seaside in Squeak4.3alpha-11321
|
| On Fri, 3 Jun 2011, Chris Muller wrote:
|
<snip>
| So the simple solution is to be explicit and change the installer
| script
| from loading ConfigurationOfOmniBrowser, to load
| ConfigurationOfOmniBrowser-xyz.123. The same configuration should be
| able
| to load OB into Squeak 4.1, 4.2, head, etc.

Levente,

I have been toying with the idea of making it possible to specify the version of the configuration along with the version of the package in Metacello, for exactly the reasons you are describing ...

Dale

Reply | Threaded
Open this post in threaded view
|

Re: Testing Seaside in Squeak4.3alpha-11321

Chris Muller-4
In reply to this post by Levente Uzonyi-2
> 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

12