How can I load metacello without OB

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

How can I load metacello without OB

Stéphane Ducasse
HI guys

Gofer new
        squeaksource:  'PharoTaskForces';
        package: 'ConfigurationOfRPackage';
        load
       
       
ConfigurationOfRPackage project  load: #default

I thought that default would only load core since

there is

       
        package: 'Metacello-Core' with: [
                                spec includes: #('Metacello-MC' 'Metacello-Platform' ). ];
        package: 'Metacello-MC' with: [
                                spec requires: #('Metacello-Core' 'Gofer Core' ). ];
        package: 'Metacello-Platform' with: [
                                spec requires: #('Metacello-MC' ). ];

        spec group: 'default' with: #('Metacello-Core' );

but it loads OB so I'm confused.
And stuck because OB does not load in 1.2 so I lost one hour...... boring.

Stef


_______________________________________________
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: How can I load metacello without OB

Mariano Martinez Peck


On Fri, Aug 20, 2010 at 12:47 PM, Stéphane Ducasse <[hidden email]> wrote:
HI guys

Gofer new
       squeaksource:  'PharoTaskForces';
       package: 'ConfigurationOfRPackage';
       load


ConfigurationOfRPackage project  load: #default

I thought that default would only load core since

there is


       package: 'Metacello-Core' with: [
                               spec includes: #('Metacello-MC' 'Metacello-Platform' ). ];
       package: 'Metacello-MC' with: [
                               spec requires: #('Metacello-Core' 'Gofer Core' ). ];
       package: 'Metacello-Platform' with: [
                               spec requires: #('Metacello-MC' ). ];

       spec group: 'default' with: #('Metacello-Core' );

but it loads OB so I'm confused.

The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:

ensureMetacello
    Smalltalk at: #MetacelloProject ifAbsent: [
        Gofer new
                disableRepositoryErrors;
                url: 'http://seaside.gemstone.com/ss/metacello';
                package: 'ConfigurationOfMetacello';
                load.
        (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]

 
If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.

change that to #('default') and wala

BTW, I would use the latest recommended #ensureMetacello:

http://code.google.com/p/metacello/wiki/EnsureMetacello

cheers

mariano


And stuck because OB does not load in 1.2 so I lost one hour...... boring.

Stef


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


_______________________________________________
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: How can I load metacello without OB

Stéphane Ducasse
>
> The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:
>
> ensureMetacello
>     Smalltalk at: #MetacelloProject ifAbsent: [
>         Gofer new
>                 disableRepositoryErrors;
>                 url: 'http://seaside.gemstone.com/ss/metacello';
>                 package: 'ConfigurationOfMetacello';
>                 load.
>         (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]

I hate the fact that we should copy all the code around....
what a crap.

>
>  
> If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.
>
> change that to #('default') and wala
>
> BTW, I would use the latest recommended #ensureMetacello:
>
> http://code.google.com/p/metacello/wiki/EnsureMetacello
>
> cheers
>
> mariano
>
>
> And stuck because OB does not load in 1.2 so I lost one hour...... boring.
>
> Stef
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
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: How can I load metacello without OB

Mariano Martinez Peck


On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]> wrote:
>
> The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:
>
> ensureMetacello
>     Smalltalk at: #MetacelloProject ifAbsent: [
>         Gofer new
>                 disableRepositoryErrors;
>                 url: 'http://seaside.gemstone.com/ss/metacello';
>                 package: 'ConfigurationOfMetacello';
>                 load.
>         (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]

I hate the fact that we should copy all the code around....
what a crap.

This was discussed several, severaaaaal times. As I remember the problem was that otherwise you class depends on a base class that should be included in the image you are working on.
But I guess we don't have problem to add such base class in PharoCore...if we have Gofer..

 
>
>
> If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.
>
> change that to #('default') and wala
>
> BTW, I would use the latest recommended #ensureMetacello:
>
> http://code.google.com/p/metacello/wiki/EnsureMetacello
>
> cheers
>
> mariano
>
>
> And stuck because OB does not load in 1.2 so I lost one hour...... boring.
>
> Stef
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


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


_______________________________________________
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: How can I load metacello without OB

Tudor Girba
Indeed, now we could add this method in Gofer.

Cheers,
Doru


On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:

>
>
> On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]
> > wrote:
> >
> > The problem is in ConfigurationOfRPackage as in #ensureMetacello  
> is like this:
> >
> > ensureMetacello
> >     Smalltalk at: #MetacelloProject ifAbsent: [
> >         Gofer new
> >                 disableRepositoryErrors;
> >                 url: 'http://seaside.gemstone.com/ss/metacello';
> >                 package: 'ConfigurationOfMetacello';
> >                 load.
> >         (Smalltalk at: #ConfigurationOfMetacello) project  
> latestVersion load: #('default' 'UI') ]
>
> I hate the fact that we should copy all the code around....
> what a crap.
>
> This was discussed several, severaaaaal times. As I remember the  
> problem was that otherwise you class depends on a base class that  
> should be included in the image you are working on.
> But I guess we don't have problem to add such base class in  
> PharoCore...if we have Gofer..
>
>
> >
> >
> > If you see, it is loading #('default' 'UI')  of metacello..... UI -
> > OB.
> >
> > change that to #('default') and wala
> >
> > BTW, I would use the latest recommended #ensureMetacello:
> >
> > http://code.google.com/p/metacello/wiki/EnsureMetacello
> >
> > cheers
> >
> > mariano
> >
> >
> > And stuck because OB does not load in 1.2 so I lost one hour......  
> boring.
> >
> > Stef
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
www.tudorgirba.com

"Live like you mean it."


_______________________________________________
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: How can I load metacello without OB

Mariano Martinez Peck


On Fri, Aug 20, 2010 at 4:19 PM, Tudor Girba <[hidden email]> wrote:
Indeed, now we could add this method in Gofer.


I didn't understand. Which method ? why in Gofer?

 
Cheers,
Doru



On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:



On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]> wrote:
>
> The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:
>
> ensureMetacello
>     Smalltalk at: #MetacelloProject ifAbsent: [
>         Gofer new
>                 disableRepositoryErrors;
>                 url: 'http://seaside.gemstone.com/ss/metacello';
>                 package: 'ConfigurationOfMetacello';
>                 load.
>         (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]

I hate the fact that we should copy all the code around....
what a crap.

This was discussed several, severaaaaal times. As I remember the problem was that otherwise you class depends on a base class that should be included in the image you are working on.
But I guess we don't have problem to add such base class in PharoCore...if we have Gofer..


>
>
> If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.
>
> change that to #('default') and wala
>
> BTW, I would use the latest recommended #ensureMetacello:
>
> http://code.google.com/p/metacello/wiki/EnsureMetacello
>
> cheers
>
> mariano
>
>
> And stuck because OB does not load in 1.2 so I lost one hour...... boring.
>
> Stef
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


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

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

--
www.tudorgirba.com

"Live like you mean it."



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


_______________________________________________
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: How can I load metacello without OB

Tudor Girba
Gofer is the base class with which you can load everything else. So,  
why would it not make sense to have a utility method to load Metacello  
from Gofer?

Cheers,
Doru


On 20 Aug 2010, at 23:17, Mariano Martinez Peck wrote:

>
>
> On Fri, Aug 20, 2010 at 4:19 PM, Tudor Girba <[hidden email]>  
> wrote:
> Indeed, now we could add this method in Gofer.
>
>
> I didn't understand. Which method ? why in Gofer?
>
>
> Cheers,
> Doru
>
>
>
> On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:
>
>
>
> On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]
> > wrote:
> >
> > The problem is in ConfigurationOfRPackage as in #ensureMetacello  
> is like this:
> >
> > ensureMetacello
> >     Smalltalk at: #MetacelloProject ifAbsent: [
> >         Gofer new
> >                 disableRepositoryErrors;
> >                 url: 'http://seaside.gemstone.com/ss/metacello';
> >                 package: 'ConfigurationOfMetacello';
> >                 load.
> >         (Smalltalk at: #ConfigurationOfMetacello) project  
> latestVersion load: #('default' 'UI') ]
>
> I hate the fact that we should copy all the code around....
> what a crap.
>
> This was discussed several, severaaaaal times. As I remember the  
> problem was that otherwise you class depends on a base class that  
> should be included in the image you are working on.
> But I guess we don't have problem to add such base class in  
> PharoCore...if we have Gofer..
>
>
> >
> >
> > If you see, it is loading #('default' 'UI')  of metacello..... UI -
> > OB.
> >
> > change that to #('default') and wala
> >
> > BTW, I would use the latest recommended #ensureMetacello:
> >
> > http://code.google.com/p/metacello/wiki/EnsureMetacello
> >
> > cheers
> >
> > mariano
> >
> >
> > And stuck because OB does not load in 1.2 so I lost one hour......  
> boring.
> >
> > Stef
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Live like you mean it."
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
www.tudorgirba.com

"Every successful trip needs a suitable vehicle."





_______________________________________________
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: How can I load metacello without OB

Mariano Martinez Peck


On Mon, Aug 23, 2010 at 10:36 AM, Tudor Girba <[hidden email]> wrote:
Gofer is the base class with which you can load everything else. So, why would it not make sense to have a utility method to load Metacello from Gofer?


Maybe. But maybe the applications wants to decide how or what to load from Metacello. For example, in ConfigurationOfPharo I may want to bootstrap the whole Metacello (UI, tutorial, tests, etc) because I want them all for PharoDev. Others may just want the core. Of course, we can make Gofer to load the core, and I can put all the rest of the Metacello dependencies in a baseline of ConfigurationOfPharo rather than in #ensureMetacello. But still, maybe there are other problems, like versions. Maybe in a particular Conf you want an specific version of Metacello, or an specific repo (I don't know why, but suppose).

I think we can do a ensureMetacello delegated automatucally to gofer and to call it from ConfigurationOf. In addition, those who need special metacello packages or versions or whatever rather than the core (what will be done in Gofer), could be managed as any other dependency.

Dale what do you think?

Cheers

Mariano
 
Cheers,
Doru



On 20 Aug 2010, at 23:17, Mariano Martinez Peck wrote:



On Fri, Aug 20, 2010 at 4:19 PM, Tudor Girba <[hidden email]> wrote:
Indeed, now we could add this method in Gofer.


I didn't understand. Which method ? why in Gofer?


Cheers,
Doru



On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:



On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]> wrote:
>
> The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:
>
> ensureMetacello
>     Smalltalk at: #MetacelloProject ifAbsent: [
>         Gofer new
>                 disableRepositoryErrors;
>                 url: 'http://seaside.gemstone.com/ss/metacello';
>                 package: 'ConfigurationOfMetacello';
>                 load.
>         (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]

I hate the fact that we should copy all the code around....
what a crap.

This was discussed several, severaaaaal times. As I remember the problem was that otherwise you class depends on a base class that should be included in the image you are working on.
But I guess we don't have problem to add such base class in PharoCore...if we have Gofer..


>
>
> If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.
>
> change that to #('default') and wala
>
> BTW, I would use the latest recommended #ensureMetacello:
>
> http://code.google.com/p/metacello/wiki/EnsureMetacello
>
> cheers
>
> mariano
>
>
> And stuck because OB does not load in 1.2 so I lost one hour...... boring.
>
> Stef
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


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

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

--
www.tudorgirba.com

"Live like you mean it."



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

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

--
www.tudorgirba.com

"Every successful trip needs a suitable vehicle."






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


_______________________________________________
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: How can I load metacello without OB

Stéphane Ducasse
In reply to this post by Tudor Girba
yes this would be cool

Stef

On Aug 23, 2010, at 10:36 AM, Tudor Girba wrote:

> Gofer is the base class with which you can load everything else. So, why would it not make sense to have a utility method to load Metacello from Gofer?
>
> Cheers,
> Doru
>
>
> On 20 Aug 2010, at 23:17, Mariano Martinez Peck wrote:
>
>>
>>
>> On Fri, Aug 20, 2010 at 4:19 PM, Tudor Girba <[hidden email]> wrote:
>> Indeed, now we could add this method in Gofer.
>>
>>
>> I didn't understand. Which method ? why in Gofer?
>>
>>
>> Cheers,
>> Doru
>>
>>
>>
>> On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:
>>
>>
>>
>> On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]> wrote:
>> >
>> > The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:
>> >
>> > ensureMetacello
>> >     Smalltalk at: #MetacelloProject ifAbsent: [
>> >         Gofer new
>> >                 disableRepositoryErrors;
>> >                 url: 'http://seaside.gemstone.com/ss/metacello';
>> >                 package: 'ConfigurationOfMetacello';
>> >                 load.
>> >         (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]
>>
>> I hate the fact that we should copy all the code around....
>> what a crap.
>>
>> This was discussed several, severaaaaal times. As I remember the problem was that otherwise you class depends on a base class that should be included in the image you are working on.
>> But I guess we don't have problem to add such base class in PharoCore...if we have Gofer..
>>
>>
>> >
>> >
>> > If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.
>> >
>> > change that to #('default') and wala
>> >
>> > BTW, I would use the latest recommended #ensureMetacello:
>> >
>> > http://code.google.com/p/metacello/wiki/EnsureMetacello
>> >
>> > cheers
>> >
>> > mariano
>> >
>> >
>> > And stuck because OB does not load in 1.2 so I lost one hour...... boring.
>> >
>> > Stef
>> >
>> >
>> > _______________________________________________
>> > Pharo-project mailing list
>> > [hidden email]
>> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> >
>> > _______________________________________________
>> > Pharo-project mailing list
>> > [hidden email]
>> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> --
>> www.tudorgirba.com
>>
>> "Live like you mean it."
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Every successful trip needs a suitable vehicle."
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
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: How can I load metacello without OB

Stéphane Ducasse
In reply to this post by Mariano Martinez Peck
can be a good solution mariano

On Aug 23, 2010, at 10:43 AM, Mariano Martinez Peck wrote:

>
>
> On Mon, Aug 23, 2010 at 10:36 AM, Tudor Girba <[hidden email]> wrote:
> Gofer is the base class with which you can load everything else. So, why would it not make sense to have a utility method to load Metacello from Gofer?
>
>
> Maybe. But maybe the applications wants to decide how or what to load from Metacello. For example, in ConfigurationOfPharo I may want to bootstrap the whole Metacello (UI, tutorial, tests, etc) because I want them all for PharoDev. Others may just want the core. Of course, we can make Gofer to load the core, and I can put all the rest of the Metacello dependencies in a baseline of ConfigurationOfPharo rather than in #ensureMetacello. But still, maybe there are other problems, like versions. Maybe in a particular Conf you want an specific version of Metacello, or an specific repo (I don't know why, but suppose).
>
> I think we can do a ensureMetacello delegated automatucally to gofer and to call it from ConfigurationOf. In addition, those who need special metacello packages or versions or whatever rather than the core (what will be done in Gofer), could be managed as any other dependency.
>
> Dale what do you think?
>
> Cheers
>
> Mariano
>  
> Cheers,
> Doru
>
>
>
> On 20 Aug 2010, at 23:17, Mariano Martinez Peck wrote:
>
>
>
> On Fri, Aug 20, 2010 at 4:19 PM, Tudor Girba <[hidden email]> wrote:
> Indeed, now we could add this method in Gofer.
>
>
> I didn't understand. Which method ? why in Gofer?
>
>
> Cheers,
> Doru
>
>
>
> On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:
>
>
>
> On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]> wrote:
> >
> > The problem is in ConfigurationOfRPackage as in #ensureMetacello  is like this:
> >
> > ensureMetacello
> >     Smalltalk at: #MetacelloProject ifAbsent: [
> >         Gofer new
> >                 disableRepositoryErrors;
> >                 url: 'http://seaside.gemstone.com/ss/metacello';
> >                 package: 'ConfigurationOfMetacello';
> >                 load.
> >         (Smalltalk at: #ConfigurationOfMetacello) project latestVersion load: #('default' 'UI') ]
>
> I hate the fact that we should copy all the code around....
> what a crap.
>
> This was discussed several, severaaaaal times. As I remember the problem was that otherwise you class depends on a base class that should be included in the image you are working on.
> But I guess we don't have problem to add such base class in PharoCore...if we have Gofer..
>
>
> >
> >
> > If you see, it is loading #('default' 'UI')  of metacello..... UI -> OB.
> >
> > change that to #('default') and wala
> >
> > BTW, I would use the latest recommended #ensureMetacello:
> >
> > http://code.google.com/p/metacello/wiki/EnsureMetacello
> >
> > cheers
> >
> > mariano
> >
> >
> > And stuck because OB does not load in 1.2 so I lost one hour...... boring.
> >
> > Stef
> >
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Live like you mean it."
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Every successful trip needs a suitable vehicle."
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
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: How can I load metacello without OB

Dale Henrichs
In reply to this post by Tudor Girba
Is Gofer preloaded in Squeak?

The #ensureMetacello is intended to work on all platforms. For earlier
versions of Pharo, gofer had to be loaded before Metacello could be
loaded and if Gofer isn't preloaded in Squeak, then we still have that
problem.

I guess I should say that _I_ have that problem, because I am interested
in configurations that can be used with any Smalltalk that supports
Monticello:)

Dale

Tudor Girba wrote:

> Indeed, now we could add this method in Gofer.
>
> Cheers,
> Doru
>
>
> On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:
>
>>
>> On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]
>>> wrote:
>>>
>>> The problem is in ConfigurationOfRPackage as in #ensureMetacello  
>> is like this:
>>> ensureMetacello
>>>     Smalltalk at: #MetacelloProject ifAbsent: [
>>>         Gofer new
>>>                 disableRepositoryErrors;
>>>                 url: 'http://seaside.gemstone.com/ss/metacello';
>>>                 package: 'ConfigurationOfMetacello';
>>>                 load.
>>>         (Smalltalk at: #ConfigurationOfMetacello) project  
>> latestVersion load: #('default' 'UI') ]
>>
>> I hate the fact that we should copy all the code around....
>> what a crap.
>>
>> This was discussed several, severaaaaal times. As I remember the  
>> problem was that otherwise you class depends on a base class that  
>> should be included in the image you are working on.
>> But I guess we don't have problem to add such base class in  
>> PharoCore...if we have Gofer..
>>
>>
>>>
>>> If you see, it is loading #('default' 'UI')  of metacello..... UI -
>>> OB.
>>>
>>> change that to #('default') and wala
>>>
>>> BTW, I would use the latest recommended #ensureMetacello:
>>>
>>> http://code.google.com/p/metacello/wiki/EnsureMetacello
>>>
>>> cheers
>>>
>>> mariano
>>>
>>>
>>> And stuck because OB does not load in 1.2 so I lost one hour......  
>> boring.
>>> Stef
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Live like you mean it."
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
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: How can I load metacello without OB

Stéphane Ducasse
may be can fork metacello?


> Is Gofer preloaded in Squeak?
>
> The #ensureMetacello is intended to work on all platforms. For earlier versions of Pharo, gofer had to be loaded before Metacello could be loaded and if Gofer isn't preloaded in Squeak, then we still have that problem.
>
> I guess I should say that _I_ have that problem, because I am interested in configurations that can be used with any Smalltalk that supports Monticello:)
>
> Dale
>
> Tudor Girba wrote:
>> Indeed, now we could add this method in Gofer.
>> Cheers,
>> Doru
>> On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:
>>>
>>> On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]
>>>> wrote:
>>>>
>>>> The problem is in ConfigurationOfRPackage as in #ensureMetacello  
>>> is like this:
>>>> ensureMetacello
>>>>    Smalltalk at: #MetacelloProject ifAbsent: [
>>>>        Gofer new
>>>>                disableRepositoryErrors;
>>>>                url: 'http://seaside.gemstone.com/ss/metacello';
>>>>                package: 'ConfigurationOfMetacello';
>>>>                load.
>>>>        (Smalltalk at: #ConfigurationOfMetacello) project  
>>> latestVersion load: #('default' 'UI') ]
>>>
>>> I hate the fact that we should copy all the code around....
>>> what a crap.
>>>
>>> This was discussed several, severaaaaal times. As I remember the  problem was that otherwise you class depends on a base class that  should be included in the image you are working on.
>>> But I guess we don't have problem to add such base class in  PharoCore...if we have Gofer..
>>>
>>>
>>>>
>>>> If you see, it is loading #('default' 'UI')  of metacello..... UI - OB.
>>>>
>>>> change that to #('default') and wala
>>>>
>>>> BTW, I would use the latest recommended #ensureMetacello:
>>>>
>>>> http://code.google.com/p/metacello/wiki/EnsureMetacello
>>>>
>>>> cheers
>>>>
>>>> mariano
>>>>
>>>>
>>>> And stuck because OB does not load in 1.2 so I lost one hour......  
>>> boring.
>>>> Stef
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> --
>> www.tudorgirba.com
>> "Live like you mean it."
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
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: How can I load metacello without OB

Mariano Martinez Peck
In reply to this post by Dale Henrichs


On Mon, Aug 23, 2010 at 6:32 PM, Dale Henrichs <[hidden email]> wrote:
Is Gofer preloaded in Squeak?

The #ensureMetacello is intended to work on all platforms. For earlier versions of Pharo, gofer had to be loaded before Metacello could be loaded and if Gofer isn't preloaded in Squeak, then we still have that problem.

I guess I should say that _I_ have that problem, because I am interested in configurations that can be used with any Smalltalk that supports Monticello:)


I want to say a couple of things:

0) Objective? Don't need to write #ensureMetacello in each conf as it is 99% times the same and we don't want to update each conf to the latest ensureMetacello that is in the wiki

1) I don't know if Gofer works or is preloaded in Squeak. But what I really think is that if Squeak wants to "officially" supports Metacello, then they should be ready to integrate things. Ok, maybe not a complete package like Gofer, but at least some messages or something that would be of help.

2) What about providing a solution that works for different cases. For example, the following come to my mind (of course, hacky, but you can make it better for sure):

- we can creat Object>>ensureMetacello  in squeak, phaor, gemstone. Okokoko, puting those methods in Object sucks..but if you have a better idea :)

Then, in Pharo we can implement it this way:

Object >> ensureMetacello
       Gofer ensureMetacelloCore


Gofer >> ensureMetacelloCore

        "Bootstrap Gofer (if necessary), load latest mcz file for ConfigurationOfMetacello (using old
         Gofer API), then load the latest version of Metacello itself."

        Smalltalk at: #MetacelloProject ifAbsent: [ | error |
                "list of repositories to try, in case primary repository is not accessible"
                (Array
                        with: 'http://www.squeaksource.com/MetacelloRepository'
                        with: 'http://seaside.gemstone.com/ss/metacello') do: [:repositoryUrl |
                                ([
                                        Smalltalk at: #Gofer ifAbsent: [
                                        "Current version of Gofer from which to bootstrap - as of 1.0-beta.21"
                                                self bootstrapPackage: 'Gofer-Core-lr.115' from: repositoryUrl ].
                                        Smalltalk at: #Gofer ifPresent: [:goferClass | | gofer |
                                                gofer := goferClass new
                                                        url: repositoryUrl;
                                                        yourself.
                                                [ gofer addPackage: 'ConfigurationOfMetacello' ] on: Warning do: [:ex | ex resume ].
                                                gofer load ]]
                                                        on: Error
                                                        do: [ :ex |
                                                                error := ex.
                                                                Transcript
                                                                        cr;
                                                                        show: 'failed ensureMetacello: ';
                                                                        show: ex description printString;
                                                                        show: '...retrying'.
                                                                "try again"
                                                                ex return: nil ]) ~~ nil
                                        ifTrue: [
                                                "load 'default' group of Metacello"
                                                (Smalltalk at: #ConfigurationOfMetacello) perform: #load.
                                                ^self ]].
                "shouldn't get here unless the load failed ... throw an error"
                self error: 'retry with alternate repository failed: ', error description printString ]

 
here we can even remove the ifFalse if Gofer is not present...since in Pharo it is present.

So...in Pharo, if you have specified ensureMetacello in your Conf...then perfect. That one will be use. If you don't want to implement it and let it as default (like 99% of the cases), self ensureMetacello would be object, which will delegate to Gofer, who will load the Metacello Core.

In Squeak, it can be as it is now. They can use they own ensureMetacello (the difference here is that they HAVE to implement such method as they don't have it in they own image).
Maybe they can even implement ensureMetacello in object using Installer or whatever they have in the core to load monticello packages.

If #ensureMetacello has to be updated we only need to change Gofer>>ensureMetacello and not all the confs.

Those who need to load a different Metacello version, different groups, or from different repo, they just implement #ensureMetacello in their OWN conf and that's all. For example, I can do this in ConfigurationOfPharo as I need not only core, but UI and tests.

Now that I am thinking it...my "idea" is outside Metacello. The problem is that if someone writes a conf, without #ensureMetacello, it will load fine in Pharo but will fail in Squeak.

what do you think?

cheers

Mariano

Dale


Tudor Girba wrote:
Indeed, now we could add this method in Gofer.

Cheers,
Doru


On 20 Aug 2010, at 16:01, Mariano Martinez Peck wrote:


On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]
wrote:

The problem is in ConfigurationOfRPackage as in #ensureMetacello  
is like this:
ensureMetacello
   Smalltalk at: #MetacelloProject ifAbsent: [
       Gofer new
               disableRepositoryErrors;
               url: 'http://seaside.gemstone.com/ss/metacello';
               package: 'ConfigurationOfMetacello';
               load.
       (Smalltalk at: #ConfigurationOfMetacello) project  
latestVersion load: #('default' 'UI') ]

I hate the fact that we should copy all the code around....
what a crap.

This was discussed several, severaaaaal times. As I remember the  problem was that otherwise you class depends on a base class that  should be included in the image you are working on.
But I guess we don't have problem to add such base class in  PharoCore...if we have Gofer..



If you see, it is loading #('default' 'UI')  of metacello..... UI - OB.

change that to #('default') and wala

BTW, I would use the latest recommended #ensureMetacello:

http://code.google.com/p/metacello/wiki/EnsureMetacello

cheers

mariano


And stuck because OB does not load in 1.2 so I lost one hour......  
boring.
Stef


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

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

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

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

--
www.tudorgirba.com

"Live like you mean it."


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


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


_______________________________________________
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: How can I load metacello without OB

Dale Henrichs
In reply to this post by Stéphane Ducasse
Stéphane Ducasse wrote:
> may be can fork metacello?
>
>

:) Actually you'd be forking the configurations, not Metacello

Dale

_______________________________________________
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: How can I load metacello without OB

Dale Henrichs
In reply to this post by Mariano Martinez Peck
In the beginning, Metacello had an abstract class for configurations.
but it became a chicken and egg problem (you had to get Metacello loaded
  into the image before you could work with a configuration). The
current scheme was invented to get around that particular problem.

Adding a method to Object only works if Squeak adds the method. If
changes are to be made to the base. If changes are going to be made to
the base then an abstract class should be added and be done with.

I guess it is worth mentioning that the ConfigurationOf classes are
really just smart versions of XML ... In other words all of the
information in a configuration can be represented in a text file ...
using Smalltalk means that every image has a built in configuration file
editor and a built in configuration file compiler. Using Smalltalk means
that there Monticello repositories that can be used to share and
distribute configurations...

Are we reaching the point where our effort should go into creating tools
for building/managing/storing configuration files? Which would require
that some bootstrapping code be loaded into each of the Smalltalks for
Metacello support...

I mention this because I think that there will be pain involved in
changing the "format" of Metacello configurations. Right now, Metacello
is basically self-contained and non-intrusive at the cost of a somewhat
ugly configuration creation process...

Should we consider the fact that if we are going to experience pain,
maybe it should be the "last pain." In other words, lets make a change
that is aimed at the "final format" for Metacello configurations rather
than an intermediate format that will be used for awhile and then
changed again...

Dale


Mariano Martinez Peck wrote:

>
>
> On Mon, Aug 23, 2010 at 6:32 PM, Dale Henrichs <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Is Gofer preloaded in Squeak?
>
>     The #ensureMetacello is intended to work on all platforms. For
>     earlier versions of Pharo, gofer had to be loaded before Metacello
>     could be loaded and if Gofer isn't preloaded in Squeak, then we
>     still have that problem.
>
>     I guess I should say that _I_ have that problem, because I am
>     interested in configurations that can be used with any Smalltalk
>     that supports Monticello:)
>
>
> I want to say a couple of things:
>
> 0) Objective? Don't need to write #ensureMetacello in each conf as it is
> 99% times the same and we don't want to update each conf to the latest
> ensureMetacello that is in the wiki
>
> 1) I don't know if Gofer works or is preloaded in Squeak. But what I
> really think is that if Squeak wants to "officially" supports Metacello,
> then they should be ready to integrate things. Ok, maybe not a complete
> package like Gofer, but at least some messages or something that would
> be of help.
>
> 2) What about providing a solution that works for different cases. For
> example, the following come to my mind (of course, hacky, but you can
> make it better for sure):
>
> - we can creat Object>>ensureMetacello  in squeak, phaor, gemstone.
> Okokoko, puting those methods in Object sucks..but if you have a better
> idea :)
>
> Then, in Pharo we can implement it this way:
>
> Object >> ensureMetacello
>        Gofer ensureMetacelloCore
>
>
> Gofer >> ensureMetacelloCore
>
>         "Bootstrap Gofer (if necessary), load latest mcz file for
> ConfigurationOfMetacello (using old
>          Gofer API), then load the latest version of Metacello itself."
>
>         Smalltalk at: #MetacelloProject ifAbsent: [ | error |
>                 "list of repositories to try, in case primary repository
> is not accessible"
>                 (Array
>                         with:
> 'http://www.squeaksource.com/MetacelloRepository'
>                         with:
> 'http://seaside.gemstone.com/ss/metacello') do: [:repositoryUrl |
>                                 ([
>                                         Smalltalk at: #Gofer ifAbsent: [
>                                         "Current version of Gofer from
> which to bootstrap - as of 1.0-beta.21"
>                                                 self bootstrapPackage:
> 'Gofer-Core-lr.115' from: repositoryUrl ].
>                                         Smalltalk at: #Gofer ifPresent:
> [:goferClass | | gofer |
>                                                 gofer := goferClass new
>                                                         url: repositoryUrl;
>                                                         yourself.
>                                                 [ gofer addPackage:
> 'ConfigurationOfMetacello' ] on: Warning do: [:ex | ex resume ].
>                                                 gofer load ]]
>                                                         on: Error
>                                                         do: [ :ex |
>                                                                 error := ex.
>                                                                 Transcript
>                                                                         cr;
>                                                                        
> show: 'failed ensureMetacello: ';
>                                                                        
> show: ex description printString;
>                                                                        
> show: '...retrying'.
>                                                                 "try again"
>                                                                 ex
> return: nil ]) ~~ nil
>                                         ifTrue: [
>                                                 "load 'default' group of
> Metacello"
>                                                 (Smalltalk at:
> #ConfigurationOfMetacello) perform: #load.
>                                                 ^self ]].
>                 "shouldn't get here unless the load failed ... throw an
> error"
>                 self error: 'retry with alternate repository failed: ',
> error description printString ]
>
>  
> here we can even remove the ifFalse if Gofer is not present...since in
> Pharo it is present.
>
> So...in Pharo, if you have specified ensureMetacello in your Conf...then
> perfect. That one will be use. If you don't want to implement it and let
> it as default (like 99% of the cases), self ensureMetacello would be
> object, which will delegate to Gofer, who will load the Metacello Core.
>
> In Squeak, it can be as it is now. They can use they own ensureMetacello
> (the difference here is that they HAVE to implement such method as they
> don't have it in they own image).
> Maybe they can even implement ensureMetacello in object using Installer
> or whatever they have in the core to load monticello packages.
>
> If #ensureMetacello has to be updated we only need to change
> Gofer>>ensureMetacello and not all the confs.
>
> Those who need to load a different Metacello version, different groups,
> or from different repo, they just implement #ensureMetacello in their
> OWN conf and that's all. For example, I can do this in
> ConfigurationOfPharo as I need not only core, but UI and tests.
>
> Now that I am thinking it...my "idea" is outside Metacello. The problem
> is that if someone writes a conf, without #ensureMetacello, it will load
> fine in Pharo but will fail in Squeak.
>
> what do you think?

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