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 |
On Fri, Aug 20, 2010 at 12:47 PM, Stéphane Ducasse <[hidden email]> wrote: HI guys 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. _______________________________________________ Pharo-project mailing list [hidden email] 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 > [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 |
On Fri, Aug 20, 2010 at 3:54 PM, Stéphane Ducasse <[hidden email]> wrote:
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..
_______________________________________________ Pharo-project mailing list [hidden email] 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 <[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 |
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, _______________________________________________ Pharo-project mailing list [hidden email] 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 <[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 |
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, _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 |
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 |
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 |
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 |
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? 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 _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 |
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 |
Free forum by Nabble | Edit this page |