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

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

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

Mariano Martinez Peck
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 <[hidden email]> 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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

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

Dale Henrichs
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 <[hidden email]
> <mailto:[hidden email]>> 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
>     [hidden email]
>     <mailto:[hidden email]>
>     http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project