#stable in version field of metacello onConflict

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

#stable in version field of metacello onConflict

Johan Brichau-3
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.
Reply | Threaded
Open this post in threaded view
|

Re: #stable in version field of metacello onConflict

Dale Henrichs-3
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.
Reply | Threaded
Open this post in threaded view
|

Re: #stable in version field of metacello onConflict

Johan Brichau-3

> 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.
Reply | Threaded
Open this post in threaded view
|

Re: #stable in version field of metacello onConflict

Dale Henrichs-3
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.