[squeak-dev] Seaside, Squeak4.4, SqueakMap and Metacello, or Why Software Configuration Management is Important (war: Re: [Seaside] New catalog entry for Seaside 3.0.3)

Dale Henrichs dhenrich at vmware.com
Thu Mar 21 17:12:11 UTC 2013



----- Original Message -----
| From: "Chris Muller" <asqueaker at gmail.com>
| To: "The general-purpose Squeak developers list" <squeak-dev at lists.squeakfoundation.org>
| Sent: Thursday, March 21, 2013 9:33:49 AM
| Subject: Re: [squeak-dev] Seaside, Squeak4.4, SqueakMap and Metacello, or Why	Software Configuration Management is
| Important (war: Re: [Seaside] New	catalog entry for Seaside 3.0.3)
| 
| 
| Do Metacello configurations declare which specific release of Squeak
| that configuration is for?  If so, then I think it is nearly
| equivalent to what SqueakMap offers in terms of the promise of a
| stable configuration that will work for years to come.  If not, then I
| think that is a significant shortcoming to using Metacello to meet my
| requirement.  One could make a fixed-configuration that works for
| Squeak 4.4 today, but will someone remember that fixed-config is for
| Squeak 4.4, 5 years from now when Squeak 5.5 is the current?  Or is it
| back to trolling through the mailing lists to figure it out?


Chris,

In Metacello you define versions of a project. For each version you specify the list of mcz files that make up the version and that list is qualified by platform. 

So each version includes a specification of which platform versions are supported.

When you load version 3.0.7 of a project, you should get the same functionality without regard which platform you are using .... 

A configuration contains the entire version history for a project ... so 5 years from now, if you try to load version 3.0.7 into Squeak4.4 it will load correctly (assuming that version 3.0.7 works in Squeak4.4 today) ... 

The GLASS configuration that I use for Metacello allows me to use a single configuration that loads the correct code in GemStone/S 2.4.4.1 (from 3 years ago ... I started the Metacello project only 4 years ago) and GemStone/S 3.2 (a version that will be released this summer).

Metacello configurations are self-contained (and distributed). Metacello doesn't rely on a centralized data base of dependencies. 

Metacello configurations are cross-platform: the same configuration can be used to load a particular version of a project on any platform that supports Metacello/Monticello...

Metacello is not magical. If developers don't maintain a configuration so that it works on all of the "supported" platforms then it will not work ... Maintenance activities for Squeak and Seaside has fallen off and the configuration for Squeak has degraded ... 

Tobias has picked up the ball and is getting Seaside running on the newer versions of Squeak and as he figures out the formula, he records the information in the configuration ... this is how Metacello is _supposed_ to work:

  Developers with expertise on how things get loaded specify the dependencies 
  and load order in a configuration for others to use.

Dale 


More information about the Squeak-dev mailing list