Metacello questions

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

Metacello questions

Torsten Bergmann
>Does that mean the documentation is just wrong then?

I would see/interpret it like this: With the baseline you describe a set of packages (structure/dependencies) that form your app/project (MyApp). Beside the usual loading of a version:

 (ConfigurationOfMyApp project version: '1.0') load

it is possible to load also a baseline - this would load all the latest
Monticello package versions of any package described in this baseline:

 (ConfigurationOfMyApp project version: '1.0-baseline') load

Note that in the baseline you dont say anything about the Monticello package
version to use/load.

In a baseline you can also define a dependency on another project (that
provides a config too, for instance ConfigurationOfMyFoo).

Now you have two options:

   a) dont say anything about the version of "ConfigurationOfMyFoo" in the baseline
       => this should load the latest version of Foo's Metacello configuration then,
          so you get the latest version of "Foo" when loading the baseline of MyApp

   b) you note/give a default version for "ConfigurationOfMyFoo" in the baseline
       => then this specific version of "Foo" is loaded when you load the baseline for MyApp.
          I think you can override the version specified in the baseline in
          a #versionXXX of MyApp if required

Loading baselines is usefull if you work in a team. If you work on the
same baseline you can just load it to be up to date with the latest
commits of the other team members.

If your dependencies, load order, set of packages/pre-projects change then
you typically create a new baseline.

But it is more often the case that you just create new versions based on
a baseline. In a versionXXX you pin/mark the Metacello version of all
packages/projects version that fit/work together to form this version.

Maybe Dale is able to correct me if I'm wrong.

Thanks
Torsten



--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

_______________________________________________
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 questions

Dale
Andreas,

You have bumped into a bug in Metacello 1.0-beta.26. I discovered the bug a couple of weeks ago while using Metacello in GLASS so the bug is fixed in Metacello 1.0-beta.26.1. 1.0-beta.26.1 is under development (#development blessing) so is not loaded by #latestVersion. I am a couple of days away from releasing 1.0-beta.26.1 but if you want to try it out, you can explicitly load 1.0-beta.26.1 with this expression:

  (ConfigurationOfMetacello project version: '1.0-beta.26.1') load

The bug was triggered because ConfigurationOfWebClient uses an #atomic load and ConfigurationOfHelpBrowser uses #linear loads ... the help browser packages were missed in the transition.

The default configuration template sets the loadType to #linear, so you hit this specifically because you didn't use the template, which relates to your other questions so I'll answer them in another letter.

Dale
----- "Andreas Raab" <[hidden email]> wrote:

| On 5/6/2010 10:29 AM, Dale wrote:
| > The documentation is correct and your understanding is correct ...
| at the
| > moment I'm not exactly sure why the Help System is not loaded in
| your case
| > ... if you could share your complete config, what version of Squeak
| you are
| > working with and the expression you use to load (privately if you
| want), I
| > might be able to figure out the answer to your question...
|
| Tried both on Squeak 4.1 and Pharo 1.0 with the same results. Here is
|
| the script for Squeak:
|
| (Installer repository: 'http://seaside.gemstone.com/ss/metacello)
| install: 'ConfigurationOfMetacello'.
| (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load.
|
| (Installer repository:
| 'http://www.squeaksource.com/MetacelloRepository)
| install: 'ConfigurationOfWebClient'.
| (Smalltalk at: #ConfigurationOfWebClient) project latestVersion load.
|
|
| Again, the strange thing is that it 'fetches' the right files but
| doesn't load them.
|
| Cheers,
|    - Andreas

_______________________________________________
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 questions

Mariano Martinez Peck
In reply to this post by Torsten Bergmann
My advice is not to specify versions in a project reference.

If you have a baseline and in such baseline you reference a project, for example:

"this piece of code is inside a baselind"
   project: 'UI Support' with: [                                                  
                               "One or more of the following attributes may be defined or changed"
                               spec
                                       "Name of config class (i.e., ConfigurationOfXXX)"
                                       className: 'ConfigurationOfUI';
                                       "Version of project to be loaded. if theversionString is not specified, then the latest version of the project is used."
                                       versionString: '1.0';


Then, DO NOT PUT versionString: there. So:


"this piece of code is inside a baselind"
   project: 'UI Support' with: [                                                  
                               "One or more of the following attributes may be defined or changed"
                               spec
                                       "Name of config class (i.e., ConfigurationOfXXX)"
                                       className: 'ConfigurationOfUI';
                                       "Version of project to be loaded. if theversionString is not specified, then the latest version of the project is used."
                                       file: 'XXX'.


And in a version method that has THAT basline, you write:

spec
       project: 'UISupport' with: '1.0'.


In summary, don't put version information in baselines, only in version methods. That's just my advice.

Cheers

Mariano


On Thu, May 6, 2010 at 10:13 PM, Torsten Bergmann <[hidden email]> wrote:
>Does that mean the documentation is just wrong then?

I would see/interpret it like this: With the baseline you describe a set of packages (structure/dependencies) that form your app/project (MyApp). Beside the usual loading of a version:

 (ConfigurationOfMyApp project version: '1.0') load

it is possible to load also a baseline - this would load all the latest
Monticello package versions of any package described in this baseline:

 (ConfigurationOfMyApp project version: '1.0-baseline') load

Note that in the baseline you dont say anything about the Monticello package
version to use/load.

In a baseline you can also define a dependency on another project (that
provides a config too, for instance ConfigurationOfMyFoo).

Now you have two options:

  a) dont say anything about the version of "ConfigurationOfMyFoo" in the baseline
      => this should load the latest version of Foo's Metacello configuration then,
         so you get the latest version of "Foo" when loading the baseline of MyApp

  b) you note/give a default version for "ConfigurationOfMyFoo" in the baseline
      => then this specific version of "Foo" is loaded when you load the baseline for MyApp.
         I think you can override the version specified in the baseline in
         a #versionXXX of MyApp if required

Loading baselines is usefull if you work in a team. If you work on the
same baseline you can just load it to be up to date with the latest
commits of the other team members.

If your dependencies, load order, set of packages/pre-projects change then
you typically create a new baseline.

But it is more often the case that you just create new versions based on
a baseline. In a versionXXX you pin/mark the Metacello version of all
packages/projects version that fit/work together to form this version.

Maybe Dale is able to correct me if I'm wrong.

Thanks
Torsten



--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

_______________________________________________
Pharo-project mailing list


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