[Seaside] New structure for Seaside30, Magritte2, and Pier2 Metacello configurations

Dale Henrichs dhenrich at vmware.com
Sun Jun 27 17:54:34 UTC 2010


I am looking for a little feedback on the changes that I have made to 
the latest configurations of Seaside30, Magritte2, and Pier2. I have new 
versions for each of these configurations queued up for release 
(#development blessing), but before releasing them I'd like to hear if 
the changes I've made will cause trouble for folks using Magritte2 
and/or Pier2 in their applications.

In the past, when you referenced Seaside30 from a configuration, the 
entire Seaside3.0 release would be loaded, including development tools, 
examples, both adaptors (on Squeak/Pharo and GemStone)...basically the 
whole kitchen sink.

With the 3.0.0-alpha5.15 release I've defined several groups for 
Seaside3.0 (with feedback from the Seaside devs:): Base, Base Tests, 
Development and Development Tests. I will also add a One-click group to 
shdow the one-click release. Without going into too much detail, the 
Base group defines the set of packages that are needed for a production 
release, while the Development group defines the set of packages that 
are useful in development (on top of the Base).

To see how these new groups work out, I have created new versions of the 
configurations for Magritte2 and Pier2 that reference the Base group 
(plus any other packages that were needed) instead of bringing in the 
entire Seaside3.0 release...This is the big change. After loading the 
Magritte2 or Pier2 configuration you will need to load from the 
Seaside30 configuration any and all packages that you may need for your 
own application.

I haven't released the changes yet, but if you are curious or concerned 
you can try out the releases ahead of time ... depending upon feedback I 
may go with a different scheme.

In a fresh image, you can see what will be loaded for production by 
executing one or more of the following expressions (note you need to get 
the latest version of each of the configs from the SqueakSource 
MetacelloRepository...oh and for best results use Metacello 1.0-beta.27.1):

   (ConfigurationOfMagritte2 project version: '2.0.5') load.
   (ConfigurationOfPier2 project version: '2.0.6') load.
   (ConfigurationOfPierAddOns2 project version: '2.0.6') load.

Once you've loaded one of these configs, there will be no development 
tools nor any adaptors so at a minimum you'll need to load one of the 
following depending upon which adaptor you want to use:

   "All platforms"
   (ConfigurationOfSeaside30 project version: '3.0.0-alpha5.15')
     load: #('Seaside-Adaptors-Swazoo').
   "Squeak and Pharo"
   (ConfigurationOfSeaside30 project version: '3.0.0-alpha5.15')
     load: #('Seaside-Adaptors-Comanche').
   "GemStone"
   (ConfigurationOfSeaside30 project version: '3.0.0-alpha5.15')
     load: #('Seaside-Adaptors-FastCGI').

If you want to load in the Seaside development environment then you 
would evaluate the following expression:

   (ConfigurationOfSeaside30 project version: '3.0.0-alpha5.15')
     load: #('Development').

So at this point you can see the direction I'm going with this ... the 
Magritte2 and Pier2 configurations are currently aimed at loading the 
bare minimum needed for functionality from Seaside3.0 for Magritte2 and 
Pier2 with the idea that you'd load the additional functionality that 
you want by dealing directly with Seaside30 configuration (like loading 
adaptors and development)...

Pier2 already depends upon the following javascript packages:

    'Javascript-Core' 'Prototype-Core' 'Scriptaculous-Core' 'JQuery-UI'

but if you're currently using Magritte2 and javascript, then you'll need 
to explicitly load the javascript package(s) that you are using.

There are other ways that the configs could be structured. This approach 
minimizes the coupling between the Seaside3.0 and Magritte2/Pier2 
configurations, which I think is a good thing.

I've taken the bare minimum step: loading what is required... it would 
be reasonable to add 'Dev' groups to both Magritte2 and Pier2 that would 
bring in Seaside30 dev support on the other hand, I don't think it is 
reasonable to add support for loading the various Adaptors to Magritte2 
and Pier2, so if you're going to have to deal with the Seaside30 config 
directly anyway why bother with adding dev groups ...

Anyway this is what _I_ think and I am interested in what you folks think...

For GemStone folks ... the answer is yes, Magritte2 and Pier2 have been 
ported to GemStone/S 64 2.4 finally:). If you've been working with 
Seaside3.0 already, you can load the Magritte2/Pier2/PierAddOns2 configs 
into a fresh 1.0-beta.8....otherwise I'll ask you to wait until I 
announcement.

Dale


More information about the seaside mailing list