Hi,
I am seeing a #stable when checking the version in an onConflict: block of the Metacello scripting API. In essence: ex newProjectRegistration version = #stable The problem is that I am never expecting to see symbolic versions there. I expect to be given explicit version numbers. If that assumption is right, I can provide a case to find the bug. I am on Pharo 1.4 and (assumingly) using latest MetacelloPreview (freshly loaded using github instructions). Johan -- You received this message because you are subscribed to the Google Groups "Metacello" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
Johan,
It is legal to register a version as #stable. If there is indeed a #stable version registered for a project, then I would expect that the project was loaded with the #stable version specified (in a configuration/baseline) ... So ... I would like to be able to reproduce this bug (or see a stack at the point that a symbolic version was registered - halt in MetacelloProjectRegistry>>registerProjectRegistration: when a sybolic version is registered)... Dale ----- Original Message ----- | From: "Johan Brichau" <[hidden email]> | To: [hidden email] | Sent: Monday, December 2, 2013 1:05:47 PM | Subject: [Metacello] #stable in version field of metacello onConflict | | Hi, | | I am seeing a #stable when checking the version in an onConflict: | block of the Metacello scripting API. In essence: | | ex newProjectRegistration version = #stable | | The problem is that I am never expecting to see symbolic versions | there. I expect to be given explicit version numbers. | If that assumption is right, I can provide a case to find the bug. | I am on Pharo 1.4 and (assumingly) using latest MetacelloPreview | (freshly loaded using github instructions). | | Johan | | -- | You received this message because you are subscribed to the Google | Groups "Metacello" group. | To unsubscribe from this group and stop receiving emails from it, | send an email to [hidden email]. | For more options, visit https://groups.google.com/groups/opt_out. | -- You received this message because you are subscribed to the Google Groups "Metacello" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
> It is legal to register a version as #stable. If there is indeed a #stable version registered for a project, then I would expect that the project was loaded with the #stable version specified (in a configuration/baseline) ... I am getting this kind of error message, which is totally strange since #stable is actually 3.0.9: MetacelloConflictingProjectError: Load Conflict between existing ConfigurationOfSeaside3 3.0.9 from http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main and ConfigurationOfSeaside3 stable from http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main It occurs because from my configuration, I refer directly to the Seaside project by mentioning '3.0.9', but also indirectly via a referenced project that refers to it as #stable. But #stable resolves to '3.0.9' in this load and I would not even expect to get a symbolic version in a conflict block. > So ... I would like to be able to reproduce this bug (or see a stack at the point that a symbolic version was registered - halt in MetacelloProjectRegistry>>registerProjectRegistration: when a sybolic version is registered)... I traced it. This method is always being called with a version number and never with a symbolic version. The error pops up because there is a registered version '3.0.9' and the load tries to load #stable. I tried to make a small configuration that does exactly the same thing to expose this, but I'm not getting it there. I'm working to get you a case to look at... Johan -- You received this message because you are subscribed to the Google Groups "Metacello" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
Johan,
Ah, this is interesting! Let's see if we can characterize your error a bit more ... Once we understand where the logic error is, I should be able to gen up a test case ... I've read the code and looking at the path that I would expect to be taken, I don't see any obvious errors, so I'd like to see the stack where the load conflict is being generated ... MetacelloProjectSpec>>hasNoLoadConflicts: is where I expect that the initial conflict has to be detected and it calls MetacelloProjectSpec>>compareVersionsEqual: which resolves the version (i.e., resolves the #stable version to a real version number) so either the bug _is_ in this area or we are taking a different path ... there are a number of different tests in MetacelloProjectSpec>>hasNoLoadConflicts: so perhaps something else is triggering the conflict but we're reporting only the version and repository... Dale ----- Original Message ----- | From: "Johan Brichau" <[hidden email]> | To: [hidden email] | Sent: Tuesday, December 3, 2013 4:40:47 AM | Subject: Re: [Metacello] #stable in version field of metacello onConflict | | | > It is legal to register a version as #stable. If there is indeed a | > #stable version registered for a project, then I would expect that | > the project was loaded with the #stable version specified (in a | > configuration/baseline) ... | | I am getting this kind of error message, which is totally strange | since #stable is actually 3.0.9: | | MetacelloConflictingProjectError: Load Conflict between existing | ConfigurationOfSeaside3 3.0.9 from | http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main | and ConfigurationOfSeaside3 stable from | http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main | | It occurs because from my configuration, I refer directly to the | Seaside project by mentioning '3.0.9', but also indirectly via a | referenced project that refers to it as #stable. | But #stable resolves to '3.0.9' in this load and I would not even | expect to get a symbolic version in a conflict block. | | > So ... I would like to be able to reproduce this bug (or see a | > stack at the point that a symbolic version was registered - halt | > in MetacelloProjectRegistry>>registerProjectRegistration: when a | > sybolic version is registered)... | | I traced it. This method is always being called with a version number | and never with a symbolic version. | The error pops up because there is a registered version '3.0.9' and | the load tries to load #stable. | | I tried to make a small configuration that does exactly the same | thing to expose this, but I'm not getting it there. | I'm working to get you a case to look at... | | Johan | | -- | You received this message because you are subscribed to the Google | Groups "Metacello" group. | To unsubscribe from this group and stop receiving emails from it, | send an email to [hidden email]. | For more options, visit https://groups.google.com/groups/opt_out. | -- You received this message because you are subscribed to the Google Groups "Metacello" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out. |
Free forum by Nabble | Edit this page |