cross project configurations & baseline load conflicts - diagnosing the cause of the conflict - maybe issue #246?

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

cross project configurations & baseline load conflicts - diagnosing the cause of the conflict - maybe issue #246?

Paul DeBruicker
Hi Dale,

Sometime between July 20th and now my project stopped being able to load on GemStone, all without me changing a thing.  So I need a better strategy for loading it than what I'm doing now.  The error it gives is a load conflict while loading grease, between the baseline and release1.1.  If I remove the references to release1.1, it complains of version 1.0.5.  If I remove those it complains of 1.0.3.  So removing the old versions from the config seems like its not the answer.  

The specific error is along the lines of:

"a MetacelloConflictingProjectError occurred (error 2710), Load Conflict between existing BaselineOfGrease [baseline] fromgithub://GsDevKit/Grease:master/repository and ConfigurationOfGrease 1.0-rc from http://www.squeaksource.com/MetacelloRepository"


From this discussion on github https://github.com/dalehenrich/metacello-work/issues/246 it looks like you were trying to address the resolution of which version to load within a configuration.  I think that the problem I'm seeing is that Metacello cannot resolve the most recent version of a project specified in multiple configurations.  Could that be it?  

Do you have any recommendations on how to approach sorting this out?  


The load directive I use for my project is

Metacello new
        configuration:'MyProject';
        version: #stable;
        load.

Thanks

Paul

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

Re: cross project configurations & baseline load conflicts - diagnosing the cause of the conflict - maybe issue #246?

Paul DeBruicker
Just to follow up on this:


What I found was that if I use the Metacello scripting API in a GsDeployer>>#deploy: block the build would fail but it would work if I used MCPlatformSupport>>#commitOnAlmostOutOfMemoryDuring: block

Of course that only started working after your repairs to the GLASS1 baseline for Grease and my Seaside 3.1.2 REST in GemStone fix.

I suspect the problem with using the #deploy: block is that I reference some classes directly in my projects class initialization methods rather than by (Smalltalk at: #WAAdmin), and when using #commitOnAlmostOutOfMemoryDuring:  there is a commit that happens while loading my project that gives it a new view of the stone by the time it hits the class initialization methods for my project.  






On Aug 21, 2014, at 10:51 AM, Paul DeBruicker <[hidden email]> wrote:

> Hi Dale,
>
> Sometime between July 20th and now my project stopped being able to load on GemStone, all without me changing a thing.  So I need a better strategy for loading it than what I'm doing now.  The error it gives is a load conflict while loading grease, between the baseline and release1.1.  If I remove the references to release1.1, it complains of version 1.0.5.  If I remove those it complains of 1.0.3.  So removing the old versions from the config seems like its not the answer.  
>
> The specific error is along the lines of:
>
> "a MetacelloConflictingProjectError occurred (error 2710), Load Conflict between existing BaselineOfGrease [baseline] fromgithub://GsDevKit/Grease:master/repository and ConfigurationOfGrease 1.0-rc from http://www.squeaksource.com/MetacelloRepository"
>
>
> From this discussion on github https://github.com/dalehenrich/metacello-work/issues/246 it looks like you were trying to address the resolution of which version to load within a configuration.  I think that the problem I'm seeing is that Metacello cannot resolve the most recent version of a project specified in multiple configurations.  Could that be it?  
>
> Do you have any recommendations on how to approach sorting this out?  
>
>
> The load directive I use for my project is
>
> Metacello new
> configuration:'MyProject';
> version: #stable;
> load.
>
> Thanks
>
> Paul

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

Re: cross project configurations & baseline load conflicts - diagnosing the cause of the conflict - maybe issue #246?

Dale Henrichs-3
Hey Paul,

Sorry I missed the first message ...

The "standard" Metacello answer is to lock the Grease reference to github...

But a `lock` shouldn't be required. You should be able to use an onConflict: handler instead of a lock, but I am seeing some issues in this area (with no lock) and I'm trying to track that down ...

It is interesting that you have seen a difference between GsDeployer and MCPlatformSupport and I will try to understand that angle ...

Dale


On Wed, Sep 3, 2014 at 10:46 AM, Paul DeBruicker <[hidden email]> wrote:
Just to follow up on this:


What I found was that if I use the Metacello scripting API in a GsDeployer>>#deploy: block the build would fail but it would work if I used MCPlatformSupport>>#commitOnAlmostOutOfMemoryDuring: block

Of course that only started working after your repairs to the GLASS1 baseline for Grease and my Seaside 3.1.2 REST in GemStone fix.

I suspect the problem with using the #deploy: block is that I reference some classes directly in my projects class initialization methods rather than by (Smalltalk at: #WAAdmin), and when using #commitOnAlmostOutOfMemoryDuring:  there is a commit that happens while loading my project that gives it a new view of the stone by the time it hits the class initialization methods for my project.






On Aug 21, 2014, at 10:51 AM, Paul DeBruicker <[hidden email]> wrote:

> Hi Dale,
>
> Sometime between July 20th and now my project stopped being able to load on GemStone, all without me changing a thing.  So I need a better strategy for loading it than what I'm doing now.  The error it gives is a load conflict while loading grease, between the baseline and release1.1.  If I remove the references to release1.1, it complains of version 1.0.5.  If I remove those it complains of 1.0.3.  So removing the old versions from the config seems like its not the answer.
>
> The specific error is along the lines of:
>
> "a MetacelloConflictingProjectError occurred (error 2710), Load Conflict between existing BaselineOfGrease [baseline] fromgithub://GsDevKit/Grease:master/repository and ConfigurationOfGrease 1.0-rc from http://www.squeaksource.com/MetacelloRepository"
>
>
> From this discussion on github https://github.com/dalehenrich/metacello-work/issues/246 it looks like you were trying to address the resolution of which version to load within a configuration.  I think that the problem I'm seeing is that Metacello cannot resolve the most recent version of a project specified in multiple configurations.  Could that be it?
>
> Do you have any recommendations on how to approach sorting this out?
>
>
> The load directive I use for my project is
>
> Metacello new
>       configuration:'MyProject';
>       version: #stable;
>       load.
>
> Thanks
>
> Paul

--
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/d/optout.

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

Re: cross project configurations & baseline load conflicts - diagnosing the cause of the conflict - maybe issue #246?

Dale Henrichs-3
Paul,

The big difference between  GsDeployer and MCPlatformSupport is that when run in topaz, you have to explicitly set autoMigrate to true when using MCPlatformSupport ... 

Soooo, if you were doing your loads in topaz, the MCPlatformSupport variant was not automatically migrating instances of changed classes ... 

If you were using GemTools autoMigrate is already set to true...

Dale


On Wed, Sep 3, 2014 at 11:20 AM, Dale Henrichs <[hidden email]> wrote:
Hey Paul,

Sorry I missed the first message ...

The "standard" Metacello answer is to lock the Grease reference to github...

But a `lock` shouldn't be required. You should be able to use an onConflict: handler instead of a lock, but I am seeing some issues in this area (with no lock) and I'm trying to track that down ...

It is interesting that you have seen a difference between GsDeployer and MCPlatformSupport and I will try to understand that angle ...

Dale


On Wed, Sep 3, 2014 at 10:46 AM, Paul DeBruicker <[hidden email]> wrote:
Just to follow up on this:


What I found was that if I use the Metacello scripting API in a GsDeployer>>#deploy: block the build would fail but it would work if I used MCPlatformSupport>>#commitOnAlmostOutOfMemoryDuring: block

Of course that only started working after your repairs to the GLASS1 baseline for Grease and my Seaside 3.1.2 REST in GemStone fix.

I suspect the problem with using the #deploy: block is that I reference some classes directly in my projects class initialization methods rather than by (Smalltalk at: #WAAdmin), and when using #commitOnAlmostOutOfMemoryDuring:  there is a commit that happens while loading my project that gives it a new view of the stone by the time it hits the class initialization methods for my project.






On Aug 21, 2014, at 10:51 AM, Paul DeBruicker <[hidden email]> wrote:

> Hi Dale,
>
> Sometime between July 20th and now my project stopped being able to load on GemStone, all without me changing a thing.  So I need a better strategy for loading it than what I'm doing now.  The error it gives is a load conflict while loading grease, between the baseline and release1.1.  If I remove the references to release1.1, it complains of version 1.0.5.  If I remove those it complains of 1.0.3.  So removing the old versions from the config seems like its not the answer.
>
> The specific error is along the lines of:
>
> "a MetacelloConflictingProjectError occurred (error 2710), Load Conflict between existing BaselineOfGrease [baseline] fromgithub://GsDevKit/Grease:master/repository and ConfigurationOfGrease 1.0-rc from http://www.squeaksource.com/MetacelloRepository"
>
>
> From this discussion on github https://github.com/dalehenrich/metacello-work/issues/246 it looks like you were trying to address the resolution of which version to load within a configuration.  I think that the problem I'm seeing is that Metacello cannot resolve the most recent version of a project specified in multiple configurations.  Could that be it?
>
> Do you have any recommendations on how to approach sorting this out?
>
>
> The load directive I use for my project is
>
> Metacello new
>       configuration:'MyProject';
>       version: #stable;
>       load.
>
> Thanks
>
> Paul

--
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/d/optout.


--
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/d/optout.