Sorry, I couldn't come up with a better subject. I am having a problem. To reproduce: take a pharo image. I took the last one from here: https://ci.lille.inria.fr/pharo/view/Nautilus/job/Nautilus-Release/70/
Then I evaluated: Gofer it url: 'http://ss3.gemstone.com/ss/MarianoBuilder'; package: 'MarianoBuilder'; load. (ConfigurationOfMariano project version: '1.0-baseline') load: 'Fuel' And that fails saying: 'Could not resolve: Keymapping-Tools-Spec [Keymapping-Tools-Spec-BenjaminVanRyseghem.1] in /Users/mariano/Pharo/imagenes/Nautilus1.4/package-cache http://www.squeaksource.com/Shortways ERROR: ''GoferRepositoryError: Could not access http://www.squeaksource.com/Shortways: ZnHttpUnsuccessful: 404 Not Found''' WTF??? Fuel is not related at all to Keymappings nor to Nautilus. What is it trying to load? If I do a record, I get the correct thing: a MetacelloNullRecordingMCSpecLoader(linear load : linear load : 1.0-baseline [ConfigurationOfMariano] load : ConfigurationOfFuel linear load : 1.0-baseline [ConfigurationOfMariano] linear load : 1.8-baseline [ConfigurationOfFuel] load : Fuel load : FuelTests load : FuelProgressUpdate load : FuelBenchmarks load : FuelLogo load : FuelCompression load : FuelExamples load : FuelProgressUpdateBenchmarks load : FuelMetalevel load : FuelPackageLoader load : FuelPackageLoaderTests load : FuelMetalevelTests) Thanks Dale, -- Mariano http://marianopeck.wordpress.com |
Mariano,
Could you send me the full Transcript log? I suspect that loading the baseline is the place where the #record and #load get out of synch, but the transcript log will allow me to see when the "load goes off track". Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Saturday, April 14, 2012 1:27:46 PM | Subject: [Metacello] WTF | | Sorry, I couldn't come up with a better subject. I am having a | problem. To reproduce: take a pharo image. I took the last one from | here: | https://ci.lille.inria.fr/pharo/view/Nautilus/job/Nautilus-Release/70/ | | Then I evaluated: | | Gofer it | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | package: 'MarianoBuilder'; | load. | | (ConfigurationOfMariano project version: '1.0-baseline') load: 'Fuel' | | And that fails saying: 'Could not resolve: Keymapping-Tools-Spec | [Keymapping-Tools-Spec-BenjaminVanRyseghem.1] in | /Users/mariano/Pharo/imagenes/Nautilus1.4/package-cache | http://www.squeaksource.com/Shortways ERROR: ''GoferRepositoryError: | Could not access http://www.squeaksource.com/Shortways : | ZnHttpUnsuccessful: 404 Not Found''' | | WTF??? Fuel is not related at all to Keymappings nor to Nautilus. | What is it trying to load? | | If I do a record, I get the correct thing: | | a MetacelloNullRecordingMCSpecLoader(linear load : | linear load : 1.0-baseline [ConfigurationOfMariano] | load : ConfigurationOfFuel | linear load : 1.0-baseline [ConfigurationOfMariano] | linear load : 1.8-baseline [ConfigurationOfFuel] | load : Fuel | load : FuelTests | load : FuelProgressUpdate | load : FuelBenchmarks | load : FuelLogo | load : FuelCompression | load : FuelExamples | load : FuelProgressUpdateBenchmarks | load : FuelMetalevel | load : FuelPackageLoader | load : FuelPackageLoaderTests | load : FuelMetalevelTests) | | | Thanks Dale, | | -- | Mariano | http://marianopeck.wordpress.com | | |
On Mon, Apr 16, 2012 at 6:28 PM, Dale Henrichs <[hidden email]> wrote: Mariano, Hi Dale Find attached both files "load" and "record". Notice the difference. Load brings lots of incorrect things (like nautilus and its dependencies). Record brings the correct stuff. Thanks Dale -- Mariano http://marianopeck.wordpress.com |
Mariano,
Sorry ... I overlooked your reply .. I thought I had already read the messages in this group, but I hadn't ... #mailfail ... Anyway, there is an explanation for why Nautilus and KeyMappings are monkeyed with during a #load and not reported during a #record ... For the record, the forth coming release of Metacello (no date yet) with the scripting API will address this "feature". Firstly, KeyMappings is being touched during the load because you already have some aspect of Nautilus already loaded into your image. #record does its business by ignoring the loaded state of the image so this is a point where record and load can give different answers. Secondly, you are loading a baseline, which says to Metacello "use the latest versions of all projects and packages when you load". Thirdly, when you load a version of a configuration that is already in the image, Metacello endeavors to make sure that all of the components of the project are brought to the same version ... So you have asked Metacello to make the image consistent with the '1.0-baseline' version of ConfigurationOfMariano. Since Nautilus (or a component of Nautilus) is present in the image, Metacello is automatically upgrading Nautilus along with Fuel, because they are both specified in the same baseline ... You happen to be using a configuration as a convenient collection of unrelated projects, so you are unhappy when Metacello performs this service. If this had been a configuration of related components you wouldn't have noticed (or may even have been glad) that this service was performed. With the Metacello scripting api, I will change the behavior of Metacello so that it will neither upgrade nor downgrade a project version automatically. Once a project is loaded into an image, you will have to explicitly upgrade/downgrade projects or explicitly allow upgrade/downgrades during a specific load. Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Monday, April 16, 2012 11:11:13 AM | Subject: Re: [Metacello] WTF | | | | | On Mon, Apr 16, 2012 at 6:28 PM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | Could you send me the full Transcript log? I suspect that loading the | baseline is the place where the #record and #load get out of synch, | but the transcript log will allow me to see when the "load goes off | track". | | | | Hi Dale Find attached both files "load" and "record". Notice the | difference. Load brings lots of incorrect things (like nautilus and | its dependencies). Record brings the correct stuff. | | Thanks | | | Dale | | | | ----- Original Message ----- | | From: "Mariano Martinez Peck" < [hidden email] > | | To: [hidden email] | | Sent: Saturday, April 14, 2012 1:27:46 PM | | Subject: [Metacello] WTF | | | | Sorry, I couldn't come up with a better subject. I am having a | | problem. To reproduce: take a pharo image. I took the last one from | | here: | | https://ci.lille.inria.fr/pharo/view/Nautilus/job/Nautilus-Release/70/ | | | | Then I evaluated: | | | | Gofer it | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | package: 'MarianoBuilder'; | | load. | | | | (ConfigurationOfMariano project version: '1.0-baseline') load: | | 'Fuel' | | | | And that fails saying: 'Could not resolve: Keymapping-Tools-Spec | | [Keymapping-Tools-Spec-BenjaminVanRyseghem.1] in | | /Users/mariano/Pharo/imagenes/Nautilus1.4/package-cache | | http://www.squeaksource.com/Shortways ERROR: | | ''GoferRepositoryError: | | Could not access http://www.squeaksource.com/Shortways : | | ZnHttpUnsuccessful: 404 Not Found''' | | | | WTF??? Fuel is not related at all to Keymappings nor to Nautilus. | | What is it trying to load? | | | | If I do a record, I get the correct thing: | | | | a MetacelloNullRecordingMCSpecLoader(linear load : | | linear load : 1.0-baseline [ConfigurationOfMariano] | | load : ConfigurationOfFuel | | linear load : 1.0-baseline [ConfigurationOfMariano] | | linear load : 1.8-baseline [ConfigurationOfFuel] | | load : Fuel | | load : FuelTests | | load : FuelProgressUpdate | | load : FuelBenchmarks | | load : FuelLogo | | load : FuelCompression | | load : FuelExamples | | load : FuelProgressUpdateBenchmarks | | load : FuelMetalevel | | load : FuelPackageLoader | | load : FuelPackageLoaderTests | | load : FuelMetalevelTests) | | | | | | Thanks Dale, | | | | -- | | Mariano | | http://marianopeck.wordpress.com | | | | | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
On Thu, Apr 19, 2012 at 7:20 PM, Dale Henrichs <[hidden email]> wrote: Mariano, Thanks Dale. I think I will really appreciate that. I was *very* happy with my ConfigurationOfMariano until I discover this problem. So, please, let me know when there is something that I can test :) Cheers
-- Mariano http://marianopeck.wordpress.com |
Mariano,
Sorry about that:) I'll let you know. Dale ----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Tuesday, May 1, 2012 2:22:30 AM | Subject: Re: [Metacello] WTF | | | | | On Thu, Apr 19, 2012 at 7:20 PM, Dale Henrichs < [hidden email] | > wrote: | | | Mariano, | | Sorry ... I overlooked your reply .. I thought I had already read the | messages in this group, but I hadn't ... #mailfail ... | | Anyway, there is an explanation for why Nautilus and KeyMappings are | monkeyed with during a #load and not reported during a #record ... | | For the record, the forth coming release of Metacello (no date yet) | with the scripting API will address this "feature". | | Firstly, KeyMappings is being touched during the load because you | already have some aspect of Nautilus already loaded into your image. | #record does its business by ignoring the loaded state of the image | so this is a point where record and load can give different answers. | | Secondly, you are loading a baseline, which says to Metacello "use | the latest versions of all projects and packages when you load". | | Thirdly, when you load a version of a configuration that is already | in the image, Metacello endeavors to make sure that all of the | components of the project are brought to the same version ... | | So you have asked Metacello to make the image consistent with the | '1.0-baseline' version of ConfigurationOfMariano. Since Nautilus (or | a component of Nautilus) is present in the image, Metacello is | automatically upgrading Nautilus along with Fuel, because they are | both specified in the same baseline ... | | You happen to be using a configuration as a convenient collection of | unrelated projects, so you are unhappy when Metacello performs this | service. If this had been a configuration of related components you | wouldn't have noticed (or may even have been glad) that this service | was performed. | | With the Metacello scripting api, I will change the behavior of | Metacello so that it will neither upgrade nor downgrade a project | version automatically. Once a project is loaded into an image, you | will have to explicitly upgrade/downgrade projects or explicitly | allow upgrade/downgrades during a specific load. | | | Thanks Dale. I think I will really appreciate that. I was *very* | happy with my ConfigurationOfMariano until I discover this problem. | So, please, let me know when there is something that I can test :) | | Cheers | | | | | Dale | | ----- Original Message ----- | | From: "Mariano Martinez Peck" < [hidden email] > | | To: [hidden email] | | | | Sent: Monday, April 16, 2012 11:11:13 AM | | Subject: Re: [Metacello] WTF | | | | | | | | | | On Mon, Apr 16, 2012 at 6:28 PM, Dale Henrichs < | | [hidden email] | | > wrote: | | | | | | Mariano, | | | | Could you send me the full Transcript log? I suspect that loading | | the | | baseline is the place where the #record and #load get out of synch, | | but the transcript log will allow me to see when the "load goes off | | track". | | | | | | | | Hi Dale Find attached both files "load" and "record". Notice the | | difference. Load brings lots of incorrect things (like nautilus and | | its dependencies). Record brings the correct stuff. | | | | Thanks | | | | | | Dale | | | | | | | | ----- Original Message ----- | | | From: "Mariano Martinez Peck" < [hidden email] > | | | To: [hidden email] | | | Sent: Saturday, April 14, 2012 1:27:46 PM | | | Subject: [Metacello] WTF | | | | | | Sorry, I couldn't come up with a better subject. I am having a | | | problem. To reproduce: take a pharo image. I took the last one | | | from | | | here: | | | https://ci.lille.inria.fr/pharo/view/Nautilus/job/Nautilus-Release/70/ | | | | | | Then I evaluated: | | | | | | Gofer it | | | url: ' http://ss3.gemstone.com/ss/MarianoBuilder '; | | | package: 'MarianoBuilder'; | | | load. | | | | | | (ConfigurationOfMariano project version: '1.0-baseline') load: | | | 'Fuel' | | | | | | And that fails saying: 'Could not resolve: Keymapping-Tools-Spec | | | [Keymapping-Tools-Spec-BenjaminVanRyseghem.1] in | | | /Users/mariano/Pharo/imagenes/Nautilus1.4/package-cache | | | http://www.squeaksource.com/Shortways ERROR: | | | ''GoferRepositoryError: | | | Could not access http://www.squeaksource.com/Shortways : | | | ZnHttpUnsuccessful: 404 Not Found''' | | | | | | WTF??? Fuel is not related at all to Keymappings nor to Nautilus. | | | What is it trying to load? | | | | | | If I do a record, I get the correct thing: | | | | | | a MetacelloNullRecordingMCSpecLoader(linear load : | | | linear load : 1.0-baseline [ConfigurationOfMariano] | | | load : ConfigurationOfFuel | | | linear load : 1.0-baseline [ConfigurationOfMariano] | | | linear load : 1.8-baseline [ConfigurationOfFuel] | | | load : Fuel | | | load : FuelTests | | | load : FuelProgressUpdate | | | load : FuelBenchmarks | | | load : FuelLogo | | | load : FuelCompression | | | load : FuelExamples | | | load : FuelProgressUpdateBenchmarks | | | load : FuelMetalevel | | | load : FuelPackageLoader | | | load : FuelPackageLoaderTests | | | load : FuelMetalevelTests) | | | | | | | | | Thanks Dale, | | | | | | -- | | | Mariano | | | http://marianopeck.wordpress.com | | | | | | | | | | | | | | -- | | Mariano | | http://marianopeck.wordpress.com | | | | | | | | -- | Mariano | http://marianopeck.wordpress.com | | |
In reply to this post by Mariano Martinez Peck
On Tue, May 1, 2012 at 11:22 AM, Mariano Martinez Peck <[hidden email]> wrote:
Dale, this is what I was talking about in the other thread :)
Mariano http://marianopeck.wordpress.com |
----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | |..........SNIP............... | | For the record, the forth coming release of Metacello (no date yet) | with the scripting API will address this "feature". | | Firstly, KeyMappings is being touched during the load because you | already have some aspect of Nautilus already loaded into your image. | #record does its business by ignoring the loaded state of the image | so this is a point where record and load can give different answers. | | .........SNIP............... | | With the Metacello scripting api, I will change the behavior of | Metacello so that it will neither upgrade nor downgrade a project | version automatically. Once a project is loaded into an image, you | will have to explicitly upgrade/downgrade projects or explicitly | allow upgrade/downgrades during a specific load. That statement is true except the bit about upgrade being disallowed on upgrade ... upgrades are allowed by default ... So, the scripting api should address your problem and I will be interested in hearing if it works for you ... you may need to use the `onUpgrade:` message but give it a try without anything special ... I also want to point out that in that mail I said: "I will change the behavior of Metacello so that..." In actual fact, I haven't "changed the behavior of Metacello". With the Preview installed the following statement should work exactly as it had in earlier versions of Metacello: (ConfigurationOfMariano project version: '1.0-baseline') load: 'Fuel' however, if you use the scripting API to perform the load, you should get the new behavior: Metacello new configuration: 'Mariano'; version: '1.0-baseline'; load: 'Fuel'. also if you do the following you should get the old (`classic`) behavior: Metacello classic configuration: 'Mariano'; version: '1.0-baseline'; load: 'Fuel'. So the trick will be to use the scripting api for your loads... Let me know how it works for you, Dale |
On Wed, Aug 1, 2012 at 8:54 PM, Dale Henrichs <[hidden email]> wrote: |..........SNIP............... but one thing is be allowed and another one is perform the upgrade itself. So...if I have a project reference already loaded of a baseline, would that be automatically upgraded?
Ok, I understand. However, right now I need to first bootstrap metacello (with its scripting API) and then use it. I know that later we will have the bootstraping automatically by integrating a small package by default in Pharo. So...wouldn't be a good idea to integrate that small package (the one that has Metacello, ConfigurationOf, etc) that knows how to bootstrap Metacello even if it will change later? because that way it is easier for us to test it.
Anyway, since I stopped using ConfigurationOfMariano for this problem, I should update it first ;) so I will start by that Mariano http://marianopeck.wordpress.com |
----- Original Message ----- | From: "Mariano Martinez Peck" <[hidden email]> | To: [hidden email] | Sent: Wednesday, August 1, 2012 12:18:33 PM | Subject: Re: [Metacello] WTF | | | | | On Wed, Aug 1, 2012 at 8:54 PM, Dale Henrichs < [hidden email] > | wrote: | | | | | ----- Original Message ----- | | From: "Mariano Martinez Peck" < [hidden email] > | | | |..........SNIP............... | | | | | For the record, the forth coming release of Metacello (no date yet) | | with the scripting API will address this "feature". | | | | Firstly, KeyMappings is being touched during the load because you | | already have some aspect of Nautilus already loaded into your | | image. | | #record does its business by ignoring the loaded state of the image | | so this is a point where record and load can give different | | answers. | | | | .........SNIP............... | | | | | With the Metacello scripting api, I will change the behavior of | | Metacello so that it will neither upgrade nor downgrade a project | | version automatically. Once a project is loaded into an image, you | | will have to explicitly upgrade/downgrade projects or explicitly | | allow upgrade/downgrades during a specific load. | | That statement is true except the bit about upgrade being disallowed | on upgrade ... upgrades are allowed by default ... | | | | | | but one thing is be allowed and another one is perform the upgrade | itself. So...if I have a project reference already loaded of a | baseline, would that be automatically upgraded? There are a couple of "unkowns" for me for this particular issue. - during the bootstrap of the preview, I use the currentVersion for all "loaded" projects to prime the registry. Your troublesome project may show up in the registry after the prime. I don't have an `register`unregister` api, but it is obvious at this point that I will need to add it - why we have a preview. The registry is a dictionary so we can hack the registry if the troublesome project shows up - loaded projects are upgraded by default, but you can `lock` projects that you don't want upgraded, or use the `onUpgrade: [:ex | ex disallow]` to prevent _all_ upgrades during a load. I need feedback from folks using the api to figure out whether default upgrades is the right thing to do ... If there are only a handful of special cases where `lock` and `onUpgrade:` works fine and most of the time the auto upgrade is desirable then we'll stay as it is, otherwise I can change the behavior. | | | | So, the scripting api should address your problem and I will be | interested in hearing if it works for you ... you may need to use | the `onUpgrade:` message but give it a try without anything special | ... | | I also want to point out that in that mail I said: | | "I will change the behavior of Metacello so that..." | | In actual fact, I haven't "changed the behavior of Metacello". With | the Preview installed the following statement should work exactly as | it had in earlier versions of Metacello: | | | (ConfigurationOfMariano project version: '1.0-baseline') load: 'Fuel' | | however, if you use the scripting API to perform the load, you should | get the new behavior: | | Metacello new | configuration: 'Mariano'; | version: '1.0-baseline'; | load: 'Fuel'. | | also if you do the following you should get the old (`classic`) | behavior: | | Metacello classic | configuration: 'Mariano'; | version: '1.0-baseline'; | load: 'Fuel'. | | So the trick will be to use the scripting api for your loads... | | Let me know how it works for you, | | | | Ok, I understand. However, right now I need to first bootstrap | metacello (with its scripting API) and then use it. I know that | later we will have the bootstraping automatically by integrating a | small package by default in Pharo. So...wouldn't be a good idea to | integrate that small package (the one that has Metacello, | ConfigurationOf, etc) that knows how to bootstrap Metacello even if | it will change later? because that way it is easier for us to test | it. Which version of Pharo are you talking about ... AFAIK the preview can't be bootstrapped into Pharo-2.0 because of bugs. the Pharo-1.4 summer release already has Metacello installed, so you have to use the preview ... FWIW, I have travis ci builds triggered whenever I change the configuration that test the bootstrap process ... I would like to have the preview included in Pharo-2.0 but the bugs with the announcements have stymied me. | | | Anyway, since I stopped using ConfigurationOfMariano for this | problem, I should update it first ;) so I will start by that Yes ... as I've mentioned earlier I'm anticipating possible problems depending upon what the prime registry code does ... I might need to fine-tune that process or decide to make it an optional step rather than a unconditional step ... there's also a way to reset the registry (not through the api...) I'm interested in what happens:) Dale |
Mariana: I copied and converted your stuff to the new Metacello API in patriksimagetools. you can find it on github.
|
Free forum by Nabble | Edit this page |