[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
Mariano,
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...
Dale
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