Peter,

Metacello locks are supposed to address this kind of problem ... at this point in time, any project that is loaded from a git project should be 'locked' using a Metacello lock.

The lock means that any request to load that project will use the locked version instead of the version specified in the configuration/baseline.

A lock can be applied to a project without actually loading the project ...

Presuming that you have a preference towards using the local git repository for project X, then you can lock project X with a reference to the local git repository:

  Metacello new

    project: 'X';

    repository: '......';

    lock.

... and from this point on any attempt by Metacello to load project X will load from the local git repository ...

Once you have a local clone of a project it is very likely that you will want to share that repository amongst many of your local pharo projects and to do that with Metacallo you need to lock those projects in each of your images, including new images ...

This can lead to a lot of locking ... I talk about the approach that I use in tODE to address this problem in two Smalltalks talks [1] and [2]...

Dale

[1] https://www.youtube.com/watch?v=Ejmqs0xLvSk&list=PLCGAAdUizzH06AkHg6_UxZ6QZBgz84yAc&index=25

[2] https://www.youtube.com/watch?v=QshDlH1ADZQ


On 11/9/17 12:21 PM, Peter Uhnák wrote:
Hi,

as people are increasingly starting to move to git and baselines, it is becoming more and more common that there are loading issues:

A depends on B and C

B depends on ConfigurationOfX

C depends on BaselineOfX

and then loading fails on

MetacelloConflictingProjectError: Load Conflict between existing
BaselineOfStateSpecs [baseline] from github://dionisiydk/StateSpecs:v2.4.x and ConfigurationOfStateSpecs stable from http://www.smalltalkhub.com/mc/dionisiy/StateSpecs/main

I imagine that this will become more and more common.

Can this be resolved in some automated fashion?

Thanks,
Peter


Reply via email to