metacello question

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

metacello question

wernerk
Hi,
in a Configuration i have this baseline:
baseline10: spec
        <version: '1.0-baseline'>
        spec for: #'common' do: [
                spec blessing: #'baseline'.
                spec
                         project: 'Nile' with: [

                                 spec
                                         className: 'ConfigurationOfNile';
                                         versionString: #bleedingEdge;
                                          loads: #('Core Tests' );
                                         repository:
'http://www.squeaksource.com/MetacelloRepository' ].
                spec repository: '/home/user/PharoFiles/package-cache'.
                spec
                        package: 'Pattern' with: [spec requires: 'Nile'];
                        package: 'Pattern-Tests' with: [spec requires: 'Pattern'.]  ].

in the method version10 i have this:
spec package: 'Pattern' with: 'Pattern-WernerKassens.14';

now i remove the package 'Pattern' and do a load with the configuration.
no complaints by the configuration. but there is no  package 'Pattern'
visible in the browser. i open the monticello browser and there is a
dirty package 'Pattern'. i open a browser on this package via the
monticello browser and 'Pattern' is completely empty. but in the
monticello browser the package shows the repository
/home/user/PharoFiles/package-cache exactly as written in the baseline.
i open that repository and of course can load 'Pattern' as expected .
where did i go wrong?
werner

Reply | Threaded
Open this post in threaded view
|

Re: metacello question

Paul DeBruicker
Depending on how you load your configuration you might need a line in the baseline that says:

spec group: 'Core' with:#('Pattern').



Then try

(ConfigurationOfPattern project) latestVersion load


or if you've defined #stable:

ConfigurationOfPattern load



Also in your version10 method do you define what version of Nile you want to load?

Reply | Threaded
Open this post in threaded view
|

Re: metacello question

wernerk
i tried spec group: 'Core' with:#('Pattern') with
(ConfigurationOfPattern project) latestVersion load
and with load:'Core'
with the same result.
i did not define a version for Nile in version10, but that should not
make a difference for my problem, as there is a definition in the
baseline, right?
werner

Reply | Threaded
Open this post in threaded view
|

Re: metacello question

Mariano Martinez Peck
In reply to this post by wernerk


On Wed, Jul 6, 2011 at 3:57 PM, Werner Kassens <[hidden email]> wrote:
Hi,
in a Configuration i have this baseline:
baseline10: spec
       <version: '1.0-baseline'>
       spec for: #'common' do: [
               spec blessing: #'baseline'.
               spec
                       project: 'Nile' with: [

                               spec
                                       className: 'ConfigurationOfNile';
                                       versionString: #bleedingEdge;
                                        loads: #('Core Tests' );
                                       repository:
'http://www.squeaksource.com/MetacelloRepository' ].
               spec repository: '/home/user/PharoFiles/package-cache'.
               spec
                       package: 'Pattern' with: [spec requires: 'Nile'];
                       package: 'Pattern-Tests' with: [spec requires: 'Pattern'.]  ].

in the method version10 i have this:
spec package: 'Pattern' with: 'Pattern-WernerKassens.14';




Hi. You scenario looks a little tricky.
Why did you use package-cache as the repository? is that what you really want?  I would try to use another local Monticello repository (directory) and it will probably work as you expect.

 
now i remove the package 'Pattern' and do a load with the configuration. no complaints by the configuration. but there is no  package 'Pattern' visible in the browser.

this is becasue (I guess) when you remove the package Pattern from the image, it is still present in package-cache, which is (by chance) the repository  that you specified, hence, it is found ;)

 
i open the monticello browser and there is a dirty package 'Pattern'. i open a browser on this package via the monticello browser and 'Pattern' is completely empty. but in the monticello browser the package shows the repository /home/user/PharoFiles/package-cache exactly as written in the baseline. i open that repository and of course can load 'Pattern' as expected .
where did i go wrong?

not sure. I cc'ed Metacello mailing list.

Cheers

--
Mariano
http://marianopeck.wordpress.com

Reply | Threaded
Open this post in threaded view
|

Re: metacello question

wernerk
Hi Mariano,
thanks, you found the problem. Remove category in the browser does not
really remove the package; if i open monticello an empty package is
still there. if i remove it in monticello the configuration works as
advertised <g>.
werner

Reply | Threaded
Open this post in threaded view
|

Re: metacello question

Dale Henrichs
In reply to this post by wernerk
Werner,

I was away on vacation last week and didn't see your question ....

If I were to guess, I would say that when you "removed package Pattern" it was not actually removed from the system (perhaps you just removed the class instead of unloading the package?) The package still existing is very suspicious... Metacello will not usually load on top of a dirty package, so when you tried again, the package Pattern was not reloaded ...

Metacello will dump information about skipping dirty packages into the Transcript ....

Dale

----- Original Message -----
| From: "Werner Kassens" <[hidden email]>
| To: "A friendly place where any question about pharo is welcome" <[hidden email]>
| Sent: Wednesday, July 6, 2011 6:57:06 AM
| Subject: [Pharo-users] metacello question
|
| Hi,
| in a Configuration i have this baseline:
| baseline10: spec
| <version: '1.0-baseline'>
| spec for: #'common' do: [
| spec blessing: #'baseline'.
| spec
|                          project: 'Nile' with: [
|
|                                  spec
|                                          className:
|                                          'ConfigurationOfNile';
|                                          versionString:
|                                          #bleedingEdge;
|                                           loads: #('Core Tests' );
|                                          repository:
| 'http://www.squeaksource.com/MetacelloRepository' ].
| spec repository: '/home/user/PharoFiles/package-cache'.
| spec
| package: 'Pattern' with: [spec requires: 'Nile'];
| package: 'Pattern-Tests' with: [spec requires: 'Pattern'.]  ].
|
| in the method version10 i have this:
| spec package: 'Pattern' with: 'Pattern-WernerKassens.14';
|
| now i remove the package 'Pattern' and do a load with the
| configuration.
| no complaints by the configuration. but there is no  package
| 'Pattern'
| visible in the browser. i open the monticello browser and there is a
| dirty package 'Pattern'. i open a browser on this package via the
| monticello browser and 'Pattern' is completely empty. but in the
| monticello browser the package shows the repository
| /home/user/PharoFiles/package-cache exactly as written in the
| baseline.
| i open that repository and of course can load 'Pattern' as expected .
| where did i go wrong?
| werner
|
|

Reply | Threaded
Open this post in threaded view
|

Re: metacello question

wernerk
Dale Henrichs a écrit :
> If I were to guess, I would say that when you "removed package Pattern" it was not actually removed from the system ...

Hi Dale,
yes that was the problem, i used 'Remove category' in the browser. after
removing the package in monticello, everything worked.
thanks
werner