Hi Dale. Something looks broken with #record:
Gofer it url: 'http://ss3.gemstone.com/ss/MarianoBuilder'; package: 'MarianoBuilder'; load. ((Smalltalk at: #ConfigurationOfMariano) project version: #bleedingEdge) record: 'BaseImage' throws 'No version found for ''1.3'' of ConfigurationOfShout' but the class ConfigurationOfShout was not even loaded. And if I do #load instead of #record then it seems to work. Maybe this is related to what Nick Ager asked? Thanks -- Mariano http://marianopeck.wordpress.com |
Mariano,
This one appears to be different, so I'd like to try to reproduce it ... where can I find ConfiguraitonOfMariano? ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Tuesday, February 21, 2012 1:59:33 AM | Subject: [Metacello] Something is broken with #record | | Hi Dale. Something looks broken with #record: | | Gofer it | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | package: 'MarianoBuilder'; | load. | | ((Smalltalk at: #ConfigurationOfMariano) project version: | #bleedingEdge) record: 'BaseImage' | | throws 'No version found for ''1.3'' of ConfigurationOfShout' but the | class ConfigurationOfShout was not even loaded. | | And if I do #load instead of #record then it seems to work. | | Maybe this is related to what Nick Ager asked? | | Thanks | | -- | Mariano | http://marianopeck.wordpress.com | | |
On Tue, Feb 21, 2012 at 7:55 PM, Dale Henrichs <[hidden email]> wrote: Mariano, Hi dale. In the beginning of this email: Gofer it url: 'http://ss3.gemstone.com/ss/MarianoBuilder'; package: 'MarianoBuilder'; load. that package contains the ConfigurationOfMariano. You have to then evaluate: ((Smalltalk at: #ConfigurationOfMariano) project version: #bleedingEdge) record: 'BaseImage' Hope it is a metacello bug and I am not loosing your time ;) cheers
-- Mariano http://marianopeck.wordpress.com |
Ah ... okay... I expected to see a package named ConfigurationOfMariano ...
I'll take it for a spin... It's never a waste of time to track things that aren't working as expeted ... it is either a bug in the implementation or your expectations:) Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Tuesday, February 21, 2012 11:44:16 AM | Subject: Re: [Metacello] Something is broken with #record | | | | | On Tue, Feb 21, 2012 at 7:55 PM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | This one appears to be different, so I'd like to try to reproduce it | ... where can I find ConfiguraitonOfMariano? | | | | | | Hi dale. In the beginning of this email: | | Gofer it | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | package: 'MarianoBuilder'; | load. | | that package contains the ConfigurationOfMariano. You have to then | evaluate: | | ((Smalltalk at: #ConfigurationOfMariano) project version: | #bleedingEdge) record: 'BaseImage' | | Hope it is a metacello bug and I am not loosing your time ;) | | cheers | | | | | | ----- Original Message ----- | | From: "Mariano Martinez Peck" < [hidden email] > | | To: [hidden email] | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | Subject: [Metacello] Something is broken with #record | | | | Hi Dale. Something looks broken with #record: | | | | Gofer it | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | package: 'MarianoBuilder'; | | load. | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | #bleedingEdge) record: 'BaseImage' | | | | throws 'No version found for ''1.3'' of ConfigurationOfShout' but | | the | | class ConfigurationOfShout was not even loaded. | | | | And if I do #load instead of #record then it seems to work. | | | | Maybe this is related to what Nick Ager asked? | | | | Thanks | | | | -- | | Mariano | | http://marianopeck.wordpress.com | | | | | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
In reply to this post by Mariano Martinez Peck
Mariano,
Is this still an issue? I think it might have gotten lost in the shuffle... Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Tuesday, February 21, 2012 1:59:33 AM | Subject: [Metacello] Something is broken with #record | | Hi Dale. Something looks broken with #record: | | Gofer it | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | package: 'MarianoBuilder'; | load. | | ((Smalltalk at: #ConfigurationOfMariano) project version: | #bleedingEdge) record: 'BaseImage' | | throws 'No version found for ''1.3'' of ConfigurationOfShout' but the | class ConfigurationOfShout was not even loaded. | | And if I do #load instead of #record then it seems to work. | | Maybe this is related to what Nick Ager asked? | | Thanks | | -- | Mariano | http://marianopeck.wordpress.com | | |
On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs <[hidden email]> wrote: Mariano, Yes, it is. And I am totally lost. Gofer it url: 'http://ss3.gemstone.com/ss/MarianoBuilder'; package: 'MarianoBuilder'; load. ((Smalltalk at: #ConfigurationOfMariano) project version: #bleedingEdge) record: 'BaseImage' throws a problem of a version not being found for Shout..... weird, becuase it does not happens with #load: Moreover, this SAME load has another problem... beucase I was using #record: to find the original problem and I found the problem with the #record: Now the original problem is when I use #load: ((Smalltalk at: #ConfigurationOfMariano) project version: #bleedingEdge) load: 'BaseImage' throws ANOTHER error becaue the group 'release' is not found. But...it is seraching/fetching baseline 4.0 of Nautilus, which is incorrect, since it should be loading 4.2. This is the issue I mentioned in a separate thread. If you see ConfigurationOfMariano: spec project: 'NautilusWithRBAndOCompletion' with: [ spec className: 'ConfigurationOfNautilus'; file: 'ConfigurationOfNautilus'; versionString: #stable; loads: 'release'; repository: 'http://ss3.gemstone.com/ss/Nautilus' ]. spec group: 'BaseImage' with: #( 'NautilusWithRBAndOCompletion' ). And ConfigurationOfNautilus : stable: spec <symbolicVersion: #stable> spec for: #'common' version: '4.04'. and version404: spec <version: '4.04' imports: #('4.2-baseline' )> Thanks for any help... I need to fix this :( I think it might have gotten lost in the shuffle... -- Mariano http://marianopeck.wordpress.com |
On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck <[hidden email]> wrote:
sorry, I mean this one: ((Smalltalk at: #ConfigurationOfMariano) project version: #bleedingEdge) load: 'MareaImage' And I am using the latest Pharo 1.4 from Jenkins. Thanks
-- Mariano http://marianopeck.wordpress.com |
Mariano,
I first tried your load in a Pharo1.3 image and #record: worked fine ... Now you are using Pharo1.4 and are having a problem with Shout, so I looked at the Shout configuration and see that there is no #stable version defined for Shout ... I assume that that is the root cause of your problem, but I will dig a little deeper ... I figured I'd let you know this much while I go about getting myself a Pharo1.4 environment to work with... Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Sunday, February 26, 2012 2:18:15 PM | Subject: Re: [Metacello] Something is broken with #record | | | | | On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck < | [hidden email] > wrote: | | | | | | | On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | Is this still an issue? | | Yes, it is. And I am totally lost. | | | Gofer it | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | package: 'MarianoBuilder'; | load. | | ((Smalltalk at: #ConfigurationOfMariano) project version: | #bleedingEdge) record: 'BaseImage' | | throws a problem of a version not being found for Shout..... weird, | becuase it does not happens with #load: | | Moreover, this SAME load has another problem... beucase I was using | #record: to find the original problem and I found the problem with | the #record: | Now the original problem is when I use #load: | | ((Smalltalk at: #ConfigurationOfMariano) project version: | #bleedingEdge) load: 'BaseImage' | | | | sorry, I mean this one: | | ((Smalltalk at: #ConfigurationOfMariano) project version: | #bleedingEdge) load: 'MareaImage' | | And I am using the latest Pharo 1.4 from Jenkins. | | Thanks | | | | | | | throws ANOTHER error becaue the group 'release' is not found. | But...it is seraching/fetching baseline 4.0 of Nautilus, which is | incorrect, since it should be loading 4.2. This is the issue I | mentioned in a separate thread. If you see ConfigurationOfMariano: | | spec project: 'NautilusWithRBAndOCompletion' with: [ | spec | className: 'ConfigurationOfNautilus'; | file: 'ConfigurationOfNautilus'; | versionString: #stable; | loads: 'release'; | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | spec group: 'BaseImage' with: #( 'NautilusWithRBAndOCompletion' ). | | | And ConfigurationOfNautilus : | | stable: spec | <symbolicVersion: #stable> | | spec for: #'common' version: '4.04'. | | and | | version404: spec | <version: '4.04' imports: #('4.2-baseline' )> | | | Thanks for any help... I need to fix this :( | | | | | | I think it might have gotten lost in the shuffle... | | | Dale | | ----- Original Message ----- | | From: "Mariano Martinez Peck" < [hidden email] > | | To: [hidden email] | | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | Subject: [Metacello] Something is broken with #record | | | | | | Hi Dale. Something looks broken with #record: | | | | Gofer it | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | package: 'MarianoBuilder'; | | load. | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | #bleedingEdge) record: 'BaseImage' | | | | throws 'No version found for ''1.3'' of ConfigurationOfShout' but | | the | | class ConfigurationOfShout was not even loaded. | | | | And if I do #load instead of #record then it seems to work. | | | | Maybe this is related to what Nick Ager asked? | | | | Thanks | | | | -- | | Mariano | | http://marianopeck.wordpress.com | | | | | | | | -- | Mariano | http://marianopeck.wordpress.com | | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
Mariano,
It's not related to #stable ... still digging... Dale ----- Original Message ----- | From: "Dale Henrichs" <[hidden email]> | To: [hidden email] | Sent: Monday, February 27, 2012 9:55:03 AM | Subject: Re: [Metacello] Something is broken with #record | | Mariano, | | I first tried your load in a Pharo1.3 image and #record: worked fine | ... Now you are using Pharo1.4 and are having a problem with Shout, | so I looked at the Shout configuration and see that there is no | #stable version defined for Shout ... I assume that that is the root | cause of your problem, but I will dig a little deeper ... I figured | I'd let you know this much while I go about getting myself a | Pharo1.4 environment to work with... | | Dale | | ----- Original Message ----- | | From: "Mariano Martinez Peck" <[hidden email]> | | To: [hidden email] | | Sent: Sunday, February 26, 2012 2:18:15 PM | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | | | On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck < | | [hidden email] > wrote: | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs < | | [hidden email] | | > wrote: | | | | | | Mariano, | | | | Is this still an issue? | | | | Yes, it is. And I am totally lost. | | | | | | Gofer it | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | package: 'MarianoBuilder'; | | load. | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | #bleedingEdge) record: 'BaseImage' | | | | throws a problem of a version not being found for Shout..... weird, | | becuase it does not happens with #load: | | | | Moreover, this SAME load has another problem... beucase I was using | | #record: to find the original problem and I found the problem with | | the #record: | | Now the original problem is when I use #load: | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | #bleedingEdge) load: 'BaseImage' | | | | | | | | sorry, I mean this one: | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | #bleedingEdge) load: 'MareaImage' | | | | And I am using the latest Pharo 1.4 from Jenkins. | | | | Thanks | | | | | | | | | | | | | | throws ANOTHER error becaue the group 'release' is not found. | | But...it is seraching/fetching baseline 4.0 of Nautilus, which is | | incorrect, since it should be loading 4.2. This is the issue I | | mentioned in a separate thread. If you see ConfigurationOfMariano: | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | | spec | | className: 'ConfigurationOfNautilus'; | | file: 'ConfigurationOfNautilus'; | | versionString: #stable; | | loads: 'release'; | | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | | | spec group: 'BaseImage' with: #( 'NautilusWithRBAndOCompletion' ). | | | | | | And ConfigurationOfNautilus : | | | | stable: spec | | <symbolicVersion: #stable> | | | | spec for: #'common' version: '4.04'. | | | | and | | | | version404: spec | | <version: '4.04' imports: #('4.2-baseline' )> | | | | | | Thanks for any help... I need to fix this :( | | | | | | | | | | | | I think it might have gotten lost in the shuffle... | | | | | | Dale | | | | ----- Original Message ----- | | | From: "Mariano Martinez Peck" < [hidden email] > | | | To: [hidden email] | | | | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | | Subject: [Metacello] Something is broken with #record | | | | | | | | | | Hi Dale. Something looks broken with #record: | | | | | | Gofer it | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | package: 'MarianoBuilder'; | | | load. | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | #bleedingEdge) record: 'BaseImage' | | | | | | throws 'No version found for ''1.3'' of ConfigurationOfShout' but | | | the | | | class ConfigurationOfShout was not even loaded. | | | | | | And if I do #load instead of #record then it seems to work. | | | | | | Maybe this is related to what Nick Ager asked? | | | | | | Thanks | | | | | | -- | | | Mariano | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | -- | | Mariano | | http://marianopeck.wordpress.com | | | | | | | | | | -- | | Mariano | | http://marianopeck.wordpress.com | | | | | |
Mariano,
You are hitting " Issue 163: MetacellMCProjectSpec>>ensureProjectLoaded doesn't honor cacheRepository: or overrideRepository:"[1]. During record: there is a code path where we need to load a configuration (so that version 1.3 can be resolved) but we want to skip the load of packages ... unfortunately we're skipping both... I've got a fix in 1.0-beta.32 which is in development and it would take a bit of work to tease out the fix, but it involves some restructuring... Presumably you can work around the problem by using Gofer to explicitly load ConfigurationOfShout? Dale [1] http://code.google.com/p/metacello/issues/detail?id=163 ----- Original Message ----- | From: "Dale Henrichs" <[hidden email]> | To: [hidden email] | Sent: Monday, February 27, 2012 11:00:23 AM | Subject: Re: [Metacello] Something is broken with #record | | Mariano, | | It's not related to #stable ... still digging... | | Dale | | ----- Original Message ----- | | From: "Dale Henrichs" <[hidden email]> | | To: [hidden email] | | Sent: Monday, February 27, 2012 9:55:03 AM | | Subject: Re: [Metacello] Something is broken with #record | | | | Mariano, | | | | I first tried your load in a Pharo1.3 image and #record: worked | | fine | | ... Now you are using Pharo1.4 and are having a problem with Shout, | | so I looked at the Shout configuration and see that there is no | | #stable version defined for Shout ... I assume that that is the | | root | | cause of your problem, but I will dig a little deeper ... I figured | | I'd let you know this much while I go about getting myself a | | Pharo1.4 environment to work with... | | | | Dale | | | | ----- Original Message ----- | | | From: "Mariano Martinez Peck" <[hidden email]> | | | To: [hidden email] | | | Sent: Sunday, February 26, 2012 2:18:15 PM | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck < | | | [hidden email] > wrote: | | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs < | | | [hidden email] | | | > wrote: | | | | | | | | | Mariano, | | | | | | Is this still an issue? | | | | | | Yes, it is. And I am totally lost. | | | | | | | | | Gofer it | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | package: 'MarianoBuilder'; | | | load. | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | #bleedingEdge) record: 'BaseImage' | | | | | | throws a problem of a version not being found for Shout..... | | | weird, | | | becuase it does not happens with #load: | | | | | | Moreover, this SAME load has another problem... beucase I was | | | using | | | #record: to find the original problem and I found the problem | | | with | | | the #record: | | | Now the original problem is when I use #load: | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | #bleedingEdge) load: 'BaseImage' | | | | | | | | | | | | sorry, I mean this one: | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | #bleedingEdge) load: 'MareaImage' | | | | | | And I am using the latest Pharo 1.4 from Jenkins. | | | | | | Thanks | | | | | | | | | | | | | | | | | | | | | throws ANOTHER error becaue the group 'release' is not found. | | | But...it is seraching/fetching baseline 4.0 of Nautilus, which is | | | incorrect, since it should be loading 4.2. This is the issue I | | | mentioned in a separate thread. If you see | | | ConfigurationOfMariano: | | | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | | | spec | | | className: 'ConfigurationOfNautilus'; | | | file: 'ConfigurationOfNautilus'; | | | versionString: #stable; | | | loads: 'release'; | | | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | | | | | spec group: 'BaseImage' with: #( 'NautilusWithRBAndOCompletion' | | | ). | | | | | | | | | And ConfigurationOfNautilus : | | | | | | stable: spec | | | <symbolicVersion: #stable> | | | | | | spec for: #'common' version: '4.04'. | | | | | | and | | | | | | version404: spec | | | <version: '4.04' imports: #('4.2-baseline' )> | | | | | | | | | Thanks for any help... I need to fix this :( | | | | | | | | | | | | | | | | | | I think it might have gotten lost in the shuffle... | | | | | | | | | Dale | | | | | | ----- Original Message ----- | | | | From: "Mariano Martinez Peck" < [hidden email] > | | | | To: [hidden email] | | | | | | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | | | Subject: [Metacello] Something is broken with #record | | | | | | | | | | | | | | Hi Dale. Something looks broken with #record: | | | | | | | | Gofer it | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | package: 'MarianoBuilder'; | | | | load. | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | throws 'No version found for ''1.3'' of ConfigurationOfShout' | | | | but | | | | the | | | | class ConfigurationOfShout was not even loaded. | | | | | | | | And if I do #load instead of #record then it seems to work. | | | | | | | | Maybe this is related to what Nick Ager asked? | | | | | | | | Thanks | | | | | | | | -- | | | | Mariano | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | -- | | | Mariano | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | -- | | | Mariano | | | http://marianopeck.wordpress.com | | | | | | | | | |
Mariano,
I've loaded Metacello 1.0-beta.32 into a Pharo 1.4 image to verify that the bugfix I have does indeed address your problem and I ran into another issue that kicks in _after_ the ConfigurationOfShout is loaded into the image. In the following project reference spec you are asking to load 'release' from ConfigurationOfNautilus and there is not package/group/project named 'release': spec project: 'NautilusWithRBAndOCompletion' with: [ spec className: 'ConfigurationOfNautilus'; file: 'ConfigurationOfNautilus'; versionString: #stable; loads: 'release'; repository: 'http://ss3.gemstone.com/ss/Nautilus' ]. But I did make it past the ConfigurationOfShout load:) Dale ----- Original Message ----- | From: "Dale Henrichs" <[hidden email]> | To: [hidden email] | Sent: Monday, February 27, 2012 11:55:50 AM | Subject: Re: [Metacello] Something is broken with #record | | Mariano, | | You are hitting " Issue 163: | MetacellMCProjectSpec>>ensureProjectLoaded doesn't honor | cacheRepository: or overrideRepository:"[1]. During record: there is | a code path where we need to load a configuration (so that version | 1.3 can be resolved) but we want to skip the load of packages ... | unfortunately we're skipping both... | | I've got a fix in 1.0-beta.32 which is in development and it would | take a bit of work to tease out the fix, but it involves some | restructuring... | | Presumably you can work around the problem by using Gofer to | explicitly load ConfigurationOfShout? | | Dale | | [1] http://code.google.com/p/metacello/issues/detail?id=163 | | ----- Original Message ----- | | From: "Dale Henrichs" <[hidden email]> | | To: [hidden email] | | Sent: Monday, February 27, 2012 11:00:23 AM | | Subject: Re: [Metacello] Something is broken with #record | | | | Mariano, | | | | It's not related to #stable ... still digging... | | | | Dale | | | | ----- Original Message ----- | | | From: "Dale Henrichs" <[hidden email]> | | | To: [hidden email] | | | Sent: Monday, February 27, 2012 9:55:03 AM | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | Mariano, | | | | | | I first tried your load in a Pharo1.3 image and #record: worked | | | fine | | | ... Now you are using Pharo1.4 and are having a problem with | | | Shout, | | | so I looked at the Shout configuration and see that there is no | | | #stable version defined for Shout ... I assume that that is the | | | root | | | cause of your problem, but I will dig a little deeper ... I | | | figured | | | I'd let you know this much while I go about getting myself a | | | Pharo1.4 environment to work with... | | | | | | Dale | | | | | | ----- Original Message ----- | | | | From: "Mariano Martinez Peck" <[hidden email]> | | | | To: [hidden email] | | | | Sent: Sunday, February 26, 2012 2:18:15 PM | | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck < | | | | [hidden email] > wrote: | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs < | | | | [hidden email] | | | | > wrote: | | | | | | | | | | | | Mariano, | | | | | | | | Is this still an issue? | | | | | | | | Yes, it is. And I am totally lost. | | | | | | | | | | | | Gofer it | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | package: 'MarianoBuilder'; | | | | load. | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | throws a problem of a version not being found for Shout..... | | | | weird, | | | | becuase it does not happens with #load: | | | | | | | | Moreover, this SAME load has another problem... beucase I was | | | | using | | | | #record: to find the original problem and I found the problem | | | | with | | | | the #record: | | | | Now the original problem is when I use #load: | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | #bleedingEdge) load: 'BaseImage' | | | | | | | | | | | | | | | | sorry, I mean this one: | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | #bleedingEdge) load: 'MareaImage' | | | | | | | | And I am using the latest Pharo 1.4 from Jenkins. | | | | | | | | Thanks | | | | | | | | | | | | | | | | | | | | | | | | | | | | throws ANOTHER error becaue the group 'release' is not found. | | | | But...it is seraching/fetching baseline 4.0 of Nautilus, which | | | | is | | | | incorrect, since it should be loading 4.2. This is the issue I | | | | mentioned in a separate thread. If you see | | | | ConfigurationOfMariano: | | | | | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | | | | spec | | | | className: 'ConfigurationOfNautilus'; | | | | file: 'ConfigurationOfNautilus'; | | | | versionString: #stable; | | | | loads: 'release'; | | | | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | | | | | | | spec group: 'BaseImage' with: #( 'NautilusWithRBAndOCompletion' | | | | ). | | | | | | | | | | | | And ConfigurationOfNautilus : | | | | | | | | stable: spec | | | | <symbolicVersion: #stable> | | | | | | | | spec for: #'common' version: '4.04'. | | | | | | | | and | | | | | | | | version404: spec | | | | <version: '4.04' imports: #('4.2-baseline' )> | | | | | | | | | | | | Thanks for any help... I need to fix this :( | | | | | | | | | | | | | | | | | | | | | | | | I think it might have gotten lost in the shuffle... | | | | | | | | | | | | Dale | | | | | | | | ----- Original Message ----- | | | | | From: "Mariano Martinez Peck" < [hidden email] > | | | | | To: [hidden email] | | | | | | | | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | | | | Subject: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | | | | Hi Dale. Something looks broken with #record: | | | | | | | | | | Gofer it | | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | | package: 'MarianoBuilder'; | | | | | load. | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | | | throws 'No version found for ''1.3'' of ConfigurationOfShout' | | | | | but | | | | | the | | | | | class ConfigurationOfShout was not even loaded. | | | | | | | | | | And if I do #load instead of #record then it seems to work. | | | | | | | | | | Maybe this is related to what Nick Ager asked? | | | | | | | | | | Thanks | | | | | | | | | | -- | | | | | Mariano | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | | | | -- | | | | Mariano | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | -- | | | | Mariano | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | |
On Mon, Feb 27, 2012 at 9:10 PM, Dale Henrichs <[hidden email]> wrote: Mariano, Excellent. and I ran into another issue that kicks in _after_ the ConfigurationOfShout is loaded into the image. Hi DAle. Yes, there IS a group called 'release', but the problem is the one I told you previously in this email: I don't know why, Metacello is loading baseline 4.0, instead of 4.2. It should load 4.2 because it is the stable one. And 'release' group is new and it was defined in 4.2, and that's why the problem.
:)
-- Mariano http://marianopeck.wordpress.com |
okey dokey ...I'll look some more:0
Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Monday, February 27, 2012 12:28:10 PM | Subject: Re: [Metacello] Something is broken with #record | | | | | On Mon, Feb 27, 2012 at 9:10 PM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | I've loaded Metacello 1.0-beta.32 into a Pharo 1.4 image to verify | that the bugfix I have does indeed address your problem | | Excellent. | | | and I ran into another issue that kicks in _after_ the | ConfigurationOfShout is loaded into the image. | | In the following project reference spec you are asking to load | 'release' from ConfigurationOfNautilus and there is not | package/group/project named 'release': | | | | | Hi DAle. Yes, there IS a group called 'release', but the problem is | the one I told you previously in this email: I don't know why, | Metacello is loading baseline 4.0, instead of 4.2. It should load | 4.2 because it is the stable one. And 'release' group is new and it | was defined in 4.2, and that's why the problem. | | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | spec | className: 'ConfigurationOfNautilus'; | file: 'ConfigurationOfNautilus'; | versionString: #stable; | loads: 'release'; | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | But I did make it past the ConfigurationOfShout load:) | | | :) | | | | | Dale | | ----- Original Message ----- | | From: "Dale Henrichs" < [hidden email] > | | To: [hidden email] | | | | Sent: Monday, February 27, 2012 11:55:50 AM | | Subject: Re: [Metacello] Something is broken with #record | | | | Mariano, | | | | You are hitting " Issue 163: | | MetacellMCProjectSpec>>ensureProjectLoaded doesn't honor | | cacheRepository: or overrideRepository:"[1]. During record: there | | is | | a code path where we need to load a configuration (so that version | | 1.3 can be resolved) but we want to skip the load of packages ... | | unfortunately we're skipping both... | | | | I've got a fix in 1.0-beta.32 which is in development and it would | | take a bit of work to tease out the fix, but it involves some | | restructuring... | | | | Presumably you can work around the problem by using Gofer to | | explicitly load ConfigurationOfShout? | | | | Dale | | | | [1] http://code.google.com/p/metacello/issues/detail?id=163 | | | | ----- Original Message ----- | | | From: "Dale Henrichs" < [hidden email] > | | | To: [hidden email] | | | Sent: Monday, February 27, 2012 11:00:23 AM | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | Mariano, | | | | | | It's not related to #stable ... still digging... | | | | | | Dale | | | | | | ----- Original Message ----- | | | | From: "Dale Henrichs" < [hidden email] > | | | | To: [hidden email] | | | | Sent: Monday, February 27, 2012 9:55:03 AM | | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | Mariano, | | | | | | | | I first tried your load in a Pharo1.3 image and #record: worked | | | | fine | | | | ... Now you are using Pharo1.4 and are having a problem with | | | | Shout, | | | | so I looked at the Shout configuration and see that there is no | | | | #stable version defined for Shout ... I assume that that is the | | | | root | | | | cause of your problem, but I will dig a little deeper ... I | | | | figured | | | | I'd let you know this much while I go about getting myself a | | | | Pharo1.4 environment to work with... | | | | | | | | Dale | | | | | | | | ----- Original Message ----- | | | | | From: "Mariano Martinez Peck" < [hidden email] > | | | | | To: [hidden email] | | | | | Sent: Sunday, February 26, 2012 2:18:15 PM | | | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck < | | | | | [hidden email] > wrote: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs < | | | | | [hidden email] | | | | | > wrote: | | | | | | | | | | | | | | | Mariano, | | | | | | | | | | Is this still an issue? | | | | | | | | | | Yes, it is. And I am totally lost. | | | | | | | | | | | | | | | Gofer it | | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | | package: 'MarianoBuilder'; | | | | | load. | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | | | throws a problem of a version not being found for Shout..... | | | | | weird, | | | | | becuase it does not happens with #load: | | | | | | | | | | Moreover, this SAME load has another problem... beucase I was | | | | | using | | | | | #record: to find the original problem and I found the problem | | | | | with | | | | | the #record: | | | | | Now the original problem is when I use #load: | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) load: 'BaseImage' | | | | | | | | | | | | | | | | | | | | sorry, I mean this one: | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) load: 'MareaImage' | | | | | | | | | | And I am using the latest Pharo 1.4 from Jenkins. | | | | | | | | | | Thanks | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | throws ANOTHER error becaue the group 'release' is not found. | | | | | But...it is seraching/fetching baseline 4.0 of Nautilus, | | | | | which | | | | | is | | | | | incorrect, since it should be loading 4.2. This is the issue | | | | | I | | | | | mentioned in a separate thread. If you see | | | | | ConfigurationOfMariano: | | | | | | | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | | | | | spec | | | | | className: 'ConfigurationOfNautilus'; | | | | | file: 'ConfigurationOfNautilus'; | | | | | versionString: #stable; | | | | | loads: 'release'; | | | | | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | | | | | | | | | spec group: 'BaseImage' with: #( | | | | | 'NautilusWithRBAndOCompletion' | | | | | ). | | | | | | | | | | | | | | | And ConfigurationOfNautilus : | | | | | | | | | | stable: spec | | | | | <symbolicVersion: #stable> | | | | | | | | | | spec for: #'common' version: '4.04'. | | | | | | | | | | and | | | | | | | | | | version404: spec | | | | | <version: '4.04' imports: #('4.2-baseline' )> | | | | | | | | | | | | | | | Thanks for any help... I need to fix this :( | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think it might have gotten lost in the shuffle... | | | | | | | | | | | | | | | Dale | | | | | | | | | | ----- Original Message ----- | | | | | | From: "Mariano Martinez Peck" < [hidden email] > | | | | | | To: [hidden email] | | | | | | | | | | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | | | | | Subject: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | | | | | | | | Hi Dale. Something looks broken with #record: | | | | | | | | | | | | Gofer it | | | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | | | package: 'MarianoBuilder'; | | | | | | load. | | | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | | | | | throws 'No version found for ''1.3'' of | | | | | | ConfigurationOfShout' | | | | | | but | | | | | | the | | | | | | class ConfigurationOfShout was not even loaded. | | | | | | | | | | | | And if I do #load instead of #record then it seems to work. | | | | | | | | | | | | Maybe this is related to what Nick Ager asked? | | | | | | | | | | | | Thanks | | | | | | | | | | | | -- | | | | | | Mariano | | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- | | | | | Mariano | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | | | -- | | | | | Mariano | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
In reply to this post by Mariano Martinez Peck
Mariano,
The problem lies in the evaluation of the following: '4.04' asMetacelloVersionNumber versionString which returns '4-04'. In order to order versions, Metacello parses[1] the versionString and produces a MetacelloVersionNumber. In this particular case the version parser did not recognize '04' as a number and treats it as a String, hence the '-' separator instead of the '.' separator in the printString of the MetacelloVersionNumber. It is important to note that each section between '.' are independently parsed as numbers, so version strings are not decimal numbers (this point is not called out in the version format page). Strings always sort less than numbers so version 4.0 sorts later than 4-04. This is important because Metacello won't load an EARLIER version of a project and Metacello thinks that the current version of Nautilus is 4.0 ... Metacello thinks that current version 4.0 of Nautilus because the package Refactoring-Environment-lr.9 will be brought in by Grease and that matches the 4.0 spec ... BTW, the version parsing algorithm was chosen so that number arguments would sort correctly, i.e.: 4.10 sorts after 4.4 There is no need to include leading 0's like there is if the comparisons were done based on string sort order. I changed the pragma version404: to the following: <version: '4.4' imports: #('4.2-baseline' )> and the #stable symbolic version definition to the following: spec for: #'common' version: '4.4'. and now according to record, version 4.4 of Nautilus will be loaded ... I think the only bug is that the validator did not give you (or me) a clue as to what might be going on. So I will add a check to the validator that compares the versionString to the version printString and issue a critical warning when there is a mismatch ... Thanks for your patience with me, while I stumbled and bumbled around this bug ... Dale [1] http://code.google.com/p/metacello/wiki/VersionFormat ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Monday, February 27, 2012 12:28:10 PM | Subject: Re: [Metacello] Something is broken with #record | | | | | On Mon, Feb 27, 2012 at 9:10 PM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | I've loaded Metacello 1.0-beta.32 into a Pharo 1.4 image to verify | that the bugfix I have does indeed address your problem | | Excellent. | | | and I ran into another issue that kicks in _after_ the | ConfigurationOfShout is loaded into the image. | | In the following project reference spec you are asking to load | 'release' from ConfigurationOfNautilus and there is not | package/group/project named 'release': | | | | | Hi DAle. Yes, there IS a group called 'release', but the problem is | the one I told you previously in this email: I don't know why, | Metacello is loading baseline 4.0, instead of 4.2. It should load | 4.2 because it is the stable one. And 'release' group is new and it | was defined in 4.2, and that's why the problem. | | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | spec | className: 'ConfigurationOfNautilus'; | file: 'ConfigurationOfNautilus'; | versionString: #stable; | loads: 'release'; | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | But I did make it past the ConfigurationOfShout load:) | | | :) | | | | | Dale | | ----- Original Message ----- | | From: "Dale Henrichs" < [hidden email] > | | To: [hidden email] | | | | Sent: Monday, February 27, 2012 11:55:50 AM | | Subject: Re: [Metacello] Something is broken with #record | | | | Mariano, | | | | You are hitting " Issue 163: | | MetacellMCProjectSpec>>ensureProjectLoaded doesn't honor | | cacheRepository: or overrideRepository:"[1]. During record: there | | is | | a code path where we need to load a configuration (so that version | | 1.3 can be resolved) but we want to skip the load of packages ... | | unfortunately we're skipping both... | | | | I've got a fix in 1.0-beta.32 which is in development and it would | | take a bit of work to tease out the fix, but it involves some | | restructuring... | | | | Presumably you can work around the problem by using Gofer to | | explicitly load ConfigurationOfShout? | | | | Dale | | | | [1] http://code.google.com/p/metacello/issues/detail?id=163 | | | | ----- Original Message ----- | | | From: "Dale Henrichs" < [hidden email] > | | | To: [hidden email] | | | Sent: Monday, February 27, 2012 11:00:23 AM | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | Mariano, | | | | | | It's not related to #stable ... still digging... | | | | | | Dale | | | | | | ----- Original Message ----- | | | | From: "Dale Henrichs" < [hidden email] > | | | | To: [hidden email] | | | | Sent: Monday, February 27, 2012 9:55:03 AM | | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | Mariano, | | | | | | | | I first tried your load in a Pharo1.3 image and #record: worked | | | | fine | | | | ... Now you are using Pharo1.4 and are having a problem with | | | | Shout, | | | | so I looked at the Shout configuration and see that there is no | | | | #stable version defined for Shout ... I assume that that is the | | | | root | | | | cause of your problem, but I will dig a little deeper ... I | | | | figured | | | | I'd let you know this much while I go about getting myself a | | | | Pharo1.4 environment to work with... | | | | | | | | Dale | | | | | | | | ----- Original Message ----- | | | | | From: "Mariano Martinez Peck" < [hidden email] > | | | | | To: [hidden email] | | | | | Sent: Sunday, February 26, 2012 2:18:15 PM | | | | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 10:44 PM, Mariano Martinez Peck < | | | | | [hidden email] > wrote: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Sun, Feb 26, 2012 at 8:02 PM, Dale Henrichs < | | | | | [hidden email] | | | | | > wrote: | | | | | | | | | | | | | | | Mariano, | | | | | | | | | | Is this still an issue? | | | | | | | | | | Yes, it is. And I am totally lost. | | | | | | | | | | | | | | | Gofer it | | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | | package: 'MarianoBuilder'; | | | | | load. | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | | | throws a problem of a version not being found for Shout..... | | | | | weird, | | | | | becuase it does not happens with #load: | | | | | | | | | | Moreover, this SAME load has another problem... beucase I was | | | | | using | | | | | #record: to find the original problem and I found the problem | | | | | with | | | | | the #record: | | | | | Now the original problem is when I use #load: | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) load: 'BaseImage' | | | | | | | | | | | | | | | | | | | | sorry, I mean this one: | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | #bleedingEdge) load: 'MareaImage' | | | | | | | | | | And I am using the latest Pharo 1.4 from Jenkins. | | | | | | | | | | Thanks | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | throws ANOTHER error becaue the group 'release' is not found. | | | | | But...it is seraching/fetching baseline 4.0 of Nautilus, | | | | | which | | | | | is | | | | | incorrect, since it should be loading 4.2. This is the issue | | | | | I | | | | | mentioned in a separate thread. If you see | | | | | ConfigurationOfMariano: | | | | | | | | | | spec project: 'NautilusWithRBAndOCompletion' with: [ | | | | | spec | | | | | className: 'ConfigurationOfNautilus'; | | | | | file: 'ConfigurationOfNautilus'; | | | | | versionString: #stable; | | | | | loads: 'release'; | | | | | repository: ' http://ss3.gemstone.com/ss/Nautilus ' ]. | | | | | | | | | | spec group: 'BaseImage' with: #( | | | | | 'NautilusWithRBAndOCompletion' | | | | | ). | | | | | | | | | | | | | | | And ConfigurationOfNautilus : | | | | | | | | | | stable: spec | | | | | <symbolicVersion: #stable> | | | | | | | | | | spec for: #'common' version: '4.04'. | | | | | | | | | | and | | | | | | | | | | version404: spec | | | | | <version: '4.04' imports: #('4.2-baseline' )> | | | | | | | | | | | | | | | Thanks for any help... I need to fix this :( | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think it might have gotten lost in the shuffle... | | | | | | | | | | | | | | | Dale | | | | | | | | | | ----- Original Message ----- | | | | | | From: "Mariano Martinez Peck" < [hidden email] > | | | | | | To: [hidden email] | | | | | | | | | | | Sent: Tuesday, February 21, 2012 1:59:33 AM | | | | | | Subject: [Metacello] Something is broken with #record | | | | | | | | | | | | | | | | | | | | | | Hi Dale. Something looks broken with #record: | | | | | | | | | | | | Gofer it | | | | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | | | | package: 'MarianoBuilder'; | | | | | | load. | | | | | | | | | | | | ((Smalltalk at: #ConfigurationOfMariano) project version: | | | | | | #bleedingEdge) record: 'BaseImage' | | | | | | | | | | | | throws 'No version found for ''1.3'' of | | | | | | ConfigurationOfShout' | | | | | | but | | | | | | the | | | | | | class ConfigurationOfShout was not even loaded. | | | | | | | | | | | | And if I do #load instead of #record then it seems to work. | | | | | | | | | | | | Maybe this is related to what Nick Ager asked? | | | | | | | | | | | | Thanks | | | | | | | | | | | | -- | | | | | | Mariano | | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- | | | | | Mariano | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | | | -- | | | | | Mariano | | | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | | | | | | | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
On Tue, Feb 28, 2012 at 1:26 AM, Dale Henrichs <[hidden email]> wrote: Mariano, Hi Dale, thanks for digging more :) I don't understand why Metacello has to think. Why Metacello would need to guess which version I say? In my case, I am explicitly saying that I want #stable and #stable says that this is 4.04. So you don't need to guess anything, just pick up that version. So I am missing something... BTW, the version parsing algorithm was chosen so that number arguments would sort correctly, i.e.: Ok, good. Thanks for your patience with me, while I stumbled and bumbled around this bug ... No problem, thanks for the help. I was really getting crazy because I didn't understand what was happening and moreover I have very very few time to digg into it right now :( At least I am happy that both problems were bugs or something that could be improved, so you got something :) Dale -- Mariano http://marianopeck.wordpress.com |
----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Cc: "Benjamin Van Ryseghem" <[hidden email]> | Sent: Tuesday, February 28, 2012 1:03:32 AM | Subject: Re: [Metacello] Something is broken with #record | | | | | On Tue, Feb 28, 2012 at 1:26 AM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | The problem lies in the evaluation of the following: | | '4.04' asMetacelloVersionNumber versionString | | which returns '4-04'. | | In order to order versions, Metacello parses[1] the versionString and | produces a MetacelloVersionNumber. In this particular case the | version parser did not recognize '04' as a number and treats it as a | String, hence the '-' separator instead of the '.' separator in the | printString of the MetacelloVersionNumber. It is important to note | that each section between '.' are independently parsed as numbers, | so version strings are not decimal numbers (this point is not called | out in the version format page). Strings always sort less than | numbers so version 4.0 sorts later than 4-04. | | This is important because Metacello won't load an EARLIER version of | a project and Metacello thinks that the current version of Nautilus | is 4.0 ... | | Metacello thinks that current version 4.0 of Nautilus because the | package Refactoring-Environment-lr.9 will be brought in by Grease | and that matches the 4.0 spec ... | | | | Hi Dale, thanks for digging more :) I don't understand why Metacello | has to think. Why Metacello would need to guess which version I say? | In my case, I am explicitly saying that I want #stable and #stable | says that this is 4.04. So you don't need to guess anything, just | pick up that version. So I am missing something... It's related to sort order ... Metacello will not downgrade a loaded version ... if I allowed Metacello to downgrade loaded versions I think that Metacello would have never gotten off the ground:) In order for developers to talk about "the latest version" there has to be a sort order[1]. Metacello first determines what version is loaded then decides if the version that you are requesting is later or earlier than the current version ... In your case because 4-04 sorts earlier than 4.0, Metacello decided that the current version was later than the one you were requesting ... so the problem lies in the string used to name the version... BTW, when we start using Metacello scripting API and git, Metacello will be getting out of the business of guessing the loaded version .... Dale |
On Tue, Feb 28, 2012 at 10:12 PM, Dale Henrichs <[hidden email]> wrote: Thanks
grrr in those cases I wish we could talk face by face with a beer between...what a pity ESUG is only once a year... Anyway, sorry but I still don't understand. "Metacello first determines what version is loaded" I have nothing loaded in advance when I evaluate the ConfigurationOfMariano. So there shouldn't be any Nautilus loaded. It is a clean image. "then decides if the version that you are requesting is later or earlier than the current version " ok...even if I don't have Nautilus loaded, say that I have it. Why would you let the loaded version (if it is newer) than the one I am EXPLICITLY telling you to load? It is not that I am using #latestVersion or something like that. I am telling Metacello to load '4.4'. So, even if I had '4.5' already loaded, should't it load '4.4' without problems? In your case because 4-04 sorts earlier than 4.0, Metacello decided that the current version was later than the one you were requesting ... so the problem lies in the string used to name the version... I still don't get it. If I SAY metacello to load #stable, and stable loads version 4.4 I don't see why there should be any sort. There should be none. Just take that very same string and search it in the pragma. So yes, I still missing something ;) sorry but I want to understand. Thanks for your patient. BTW, when we start using Metacello scripting API and git, Metacello will be getting out of the business of guessing the loaded version .... I would like to know in which scenarios it is necessary to guess the loaded version. -- Mariano http://marianopeck.wordpress.com |
----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Tuesday, February 28, 2012 1:29:08 PM | Subject: Re: [Metacello] Something is broken with #record | | | | | On Tue, Feb 28, 2012 at 10:12 PM, Dale Henrichs < [hidden email] | > wrote: | | | | | | ----- Original Message ----- | | From: "Mariano Martinez Peck" < [hidden email] > | | To: [hidden email] | | | Cc: "Benjamin Van Ryseghem" < [hidden email] > | | Sent: Tuesday, February 28, 2012 1:03:32 AM | | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | | | | | On Tue, Feb 28, 2012 at 1:26 AM, Dale Henrichs < | | [hidden email] | | > wrote: | | | | | | Mariano, | | | | The problem lies in the evaluation of the following: | | | | '4.04' asMetacelloVersionNumber versionString | | | | which returns '4-04'. | | | | In order to order versions, Metacello parses[1] the versionString | | and | | produces a MetacelloVersionNumber. In this particular case the | | version parser did not recognize '04' as a number and treats it as | | a | | String, hence the '-' separator instead of the '.' separator in the | | printString of the MetacelloVersionNumber. It is important to note | | that each section between '.' are independently parsed as numbers, | | so version strings are not decimal numbers (this point is not | | called | | out in the version format page). Strings always sort less than | | numbers so version 4.0 sorts later than 4-04. | | | | This is important because Metacello won't load an EARLIER version | | of | | a project and Metacello thinks that the current version of Nautilus | | is 4.0 ... | | | | Metacello thinks that current version 4.0 of Nautilus because the | | package Refactoring-Environment-lr.9 will be brought in by Grease | | and that matches the 4.0 spec ... | | | | | | | | Hi Dale, thanks for digging more :) I don't understand why | | Metacello | | has to think. Why Metacello would need to guess which version I | | say? | | In my case, I am explicitly saying that I want #stable and #stable | | says that this is 4.04. So you don't need to guess anything, just | | pick up that version. So I am missing something... | | It's related to sort order ... Metacello will not downgrade a loaded | version ... if I allowed Metacello to downgrade loaded versions I | think that Metacello would have never gotten off the ground:) | | In order for developers to talk about "the latest version" there has | to be a sort order[1]. Metacello first determines what version is | loaded then decides if the version that you are requesting is later | or earlier than the current version ... | | | grrr in those cases I wish we could talk face by face with a beer | between...what a pity ESUG is only once a year... Anyway, sorry but | I still don't understand. Yeah it is so much more fun to argue/talk over a white board:) | "Metacello first determines what version is loaded" I have nothing | loaded in advance when I evaluate the ConfigurationOfMariano. Right, but you are loading the required projects and those projects are being loaded before you get to Nautilus ... There is one package that is involved... something to do with the refactoring browser if I recall that is loaded by another one of the projects and is "shared" by Nautilus .... | So | there shouldn't be any Nautilus loaded. It is a clean image. | "then decides if the version that you are requesting is later or | earlier than the current version " ok...even if I don't have | Nautilus loaded, say that I have it. Why would you let the loaded | version (if it is newer) than the one I am EXPLICITLY telling you to | load? this is where the misunderstanding lies ... metacello thinks that the version you are EXPLICITLY requesting is older than the currently loaded version ... rule number 1 for metacello is that it will not downgrade a loaded version ... if you have already loaded a later version of a project Metacello WILL NOT DOWNGRADE that project. The error occurs because of the "incorrect" version string ... you think that 4.04 is later than 4.0, but Metacello thinks that 4-04 is earlier than 4.0 and will not downgrade the version of the project ... BTW, technically you are not explicitly loading the #stable version ... If you evaluate this expression: (ConfigurationOfNautilus project version: #stable) load Metacello will downgrade the project because you are explicitly donwgrading ... In your case you have a project reference that requests the #stable version and that is the condition where Metacello follows rule number 1 ... do not downgrade... | It is not that I am using #latestVersion or something like | that. I am telling Metacello to load '4.4'. So, even if I had '4.5' | already loaded, should't it load '4.4' without problems? I am telling you that the algorithm that Metacello follows (and has followed since the very beginning) is that version 4.4 will not be automatically loaded via project reference if 4.5 is the current version ... Very few people (if anyone) has noticed that Metacello has this rule, because in most cases, if you were given the choice you would say ... yes please upgrade my project version and no please don't downgrade my project version ... If you really want an older version loaded explicitly loading the old version via ConfigurationOF would do as you ask ... The reason for doing this has to do with the fact that a project like Magritte specific version 3.0.1 of Seaside ... when Seaside3.0.2 came out, I didn't want folks who hasd already explicitly upgraded to Seaside3.0.2 have Seaside downgraded to version 3.0.1 when Magritte was loaded ... that would have wreaked havoc all over the place ... Dale |
so? I don't see why loading a project/package (like refactoring browser) which is shared with Nautilus would cause to load Nautilus.
Ok, I wasn't aware of that. The error occurs because of the "incorrect" version string ... you think that 4.04 is later than 4.0, but Metacello thinks that 4-04 is earlier than 4.0 and will not downgrade the version of the project ... So (ConfigurationOfNautilus project version: #stable) load will downgrade but having a project reference that does exactly the same (using #stable in the #versionString:) will NOT downgrade? that's new to me too hahaha
Ok, now I understand. Still, I don't understand in my particular case who loads Nautilus apart from ConfigurationOfMariano.
me!!! ;) because in most cases, if you were given the choice you would say ... yes please upgrade my project version and no please don't downgrade my project version ... If you really want an older version loaded explicitly loading the old version via ConfigurationOF would do as you ask ... yes, but then I have to be careful that no other guy will bring a new version because otherwise it will be updated. The reason for doing this has to do with the fact that a project like Magritte specific version 3.0.1 of Seaside ... when Seaside3.0.2 came out, I didn't want folks who hasd already explicitly upgraded to Seaside3.0.2 have Seaside downgraded to version 3.0.1 when Magritte was loaded ... that would have wreaked havoc all over the place ... ok, I see.
-- Mariano http://marianopeck.wordpress.com |
----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Tuesday, February 28, 2012 1:59:50 PM | Subject: Re: [Metacello] Something is broken with #record | | | | | | | | "Metacello first determines what version is loaded" I have nothing | | loaded in advance when I evaluate the ConfigurationOfMariano. | | Right, but you are loading the required projects and those projects | are being loaded before you get to Nautilus ... There is one package | that is involved... something to do with the refactoring browser if | I recall that is loaded by another one of the projects and is | "shared" by Nautilus .... | | | so? I don't see why loading a project/package (like refactoring | browser) which is shared with Nautilus would cause to load Nautilus. | | | | | | So | | there shouldn't be any Nautilus loaded. It is a clean image. | | "then decides if the version that you are requesting is later or | | earlier than the current version " ok...even if I don't have | | Nautilus loaded, say that I have it. Why would you let the loaded | | version (if it is newer) than the one I am EXPLICITLY telling you | | to | | load? | | this is where the misunderstanding lies ... metacello thinks that the | version you are EXPLICITLY requesting is older than the currently | loaded version ... rule number 1 for metacello is that it will not | downgrade a loaded version ... if you have already loaded a later | version of a project Metacello WILL NOT DOWNGRADE that project. | | | | Ok, I wasn't aware of that. | | | The error occurs because of the "incorrect" version string ... you | think that 4.04 is later than 4.0, but Metacello thinks that 4-04 is | earlier than 4.0 and will not downgrade the version of the project | ... | | BTW, technically you are not explicitly loading the #stable version | ... | | If you evaluate this expression: | | (ConfigurationOfNautilus project version: #stable) load | | Metacello will downgrade the project because you are explicitly | donwgrading ... | | | So (ConfigurationOfNautilus project version: #stable) load will | downgrade but having a project reference that does exactly the same | (using #stable in the #versionString:) will NOT downgrade? that's | new to me too hahaha | | | | | In your case you have a project reference that requests the #stable | version and that is the condition where Metacello follows rule | number 1 ... do not downgrade... | | | | It is not that I am using #latestVersion or something like | | that. I am telling Metacello to load '4.4'. So, even if I had '4.5' | | already loaded, should't it load '4.4' without problems? | | I am telling you that the algorithm that Metacello follows (and has | followed since the very beginning) is that version 4.4 will not be | automatically loaded via project reference if 4.5 is the current | version ... | | | Ok, now I understand. Still, I don't understand in my particular case | who loads Nautilus apart from ConfigurationOfMariano. | | | | Very few people (if anyone) has noticed that Metacello has this rule, | | me!!! ;) Yes and I'm glad it was you:) | | | because in most cases, if you were given the choice you would say ... | yes please upgrade my project version and no please don't downgrade | my project version ... If you really want an older version loaded | explicitly loading the old version via ConfigurationOF would do as | you ask ... | | | | yes, but then I have to be careful that no other guy will bring a new | version because otherwise it will be updated. In 1.0-beta.32, I have changed the sematics of #stable a bit ... I haven't released this yet because I need to consider the consequences...but the feature is that the #stable version is treated specially (again only for project refs): - if the project is not already loaded, load the version specified by #stable - if the project is present do not upgrade or downgrade ... #stable is supposed to be used when there is a loose coupling...so a loose coupling should not cause an upgrade ... I think that in the latter stages of the pharo 1.3 development cycle a certain class of bugs involving OB were caused by the "automatic upgrade of #stable projects"...Again if you explicitly load #stable the upgrade will be performed ... I mention this because I think that you are referring to exactly that problem ... | | | The reason for doing this has to do with the fact that a project like | Magritte specific version 3.0.1 of Seaside ... when Seaside3.0.2 | came out, I didn't want folks who hasd already explicitly upgraded | to Seaside3.0.2 have Seaside downgraded to version 3.0.1 when | Magritte was loaded ... that would have wreaked havoc all over the | place ... | | | ok, I see. | | | | Dale | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
Free forum by Nabble | Edit this page |