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

Dale Henrichs dhenrich at vmware.com
Mon Jun 28 18:25:26 UTC 2010


Yes that's what I was thinking. I plan on updating the Seaside config 
and workspace ... but I wanted to make sure I wasn't headed off in some 
wild direction first:)

I think that the minimum is to have a deployment group that loads just 
what is needed ...

Development becomes a stickier issue, because it isn't always clear what 
should be included ... I think that with Metacello, one can be very 
explicit about what pieces one wants to load...it would be nice to have 
a minimal development group that adds just what is needed to do 
development (i.e., trying to debug a sticky production problem you'd 
like to load only what you need and getting examples and a bunch of 
other stuff isn't something you'd want to load into a production 
environment ... ).

I think that one can leverage groups in Metacello which means that in an 
application one can afford to use _more_ mcz files...providing fine 
granularity on what can be loaded (even down to the level of a class per 
mcz file for things like independent components)...I wouldn't think that 
everything should be reduced to that fine of a granularity...but there 
are advantages to breaking things up into smaller loadable chunks...


Mariano Martinez Peck wrote:
> Hi Dale. I didn't test it, but from the theorical point of view, I 
> really like it. I hope other people too. I think we have to take 
> advantage of Metacello features to do this kind of stuff.
> It is very interesting to have two groups: one for the core (and 
> probably deployment) and one for development.
> If you do this changes, please update the workspace of 
> ConfigurationOfSeaside explaining this :) 
> (sorry if you already did it)
> Cheers
> mariano
> On Sun, Jun 27, 2010 at 7:54 PM, Dale Henrichs <dhenrich at vmware.com 
> <mailto:dhenrich at vmware.com>> wrote:
>     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
>     _______________________________________________
>     seaside mailing list
>     seaside at lists.squeakfoundation.org
>     <mailto:seaside at lists.squeakfoundation.org>
>     http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

More information about the seaside mailing list