[Pharo-project] How can I load metacello without OB
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
On Fri, Aug 20, 2010 at 12:47 PM, Stéphane Ducasse < stephane.ducasse@inria.fr> 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <stephane.ducasse@inria.fr
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <stephane.ducasse@inria.fr
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com "Live like you mean it."
On Fri, Aug 20, 2010 at 4:19 PM, Tudor Girba <tudor.girba@gmail.com> 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 < stephane.ducasse@inria.fr> 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <tudor.girba@gmail.com> 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 <stephane.ducasse@inria.fr
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com "Every successful trip needs a suitable vehicle."
On Mon, Aug 23, 2010 at 10:36 AM, Tudor Girba <tudor.girba@gmail.com> 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 <tudor.girba@gmail.com> 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 < stephane.ducasse@inria.fr> 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <tudor.girba@gmail.com> 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 <tudor.girba@gmail.com> 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 <stephane.ducasse@inria.fr> 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <tudor.girba@gmail.com> 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 <stephane.ducasse@inria.fr> 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <stephane.ducasse@inria.fr
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <stephane.ducasse@inria.fr
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com "Live like you mean it." _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On Mon, Aug 23, 2010 at 6:32 PM, Dale Henrichs <dhenrich@vmware.com> 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 < stephane.ducasse@inria.fr
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- www.tudorgirba.com
"Live like you mean it."
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
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 <dhenrich@vmware.com <mailto:dhenrich@vmware.com>> 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?
participants (4)
-
Dale Henrichs -
Mariano Martinez Peck -
Stéphane Ducasse -
Tudor Girba