[Glass] Is there a way of specifying alternate repos in Baselines/Configurations

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Mon Jul 6 18:02:27 PDT 2015


Jupiter,

Since we're in diametrically opposed time zones here are links to the 
draft of the tODE 0.1.0 release notes[1] and the section on project 
entries[2] ... feedback on the process and documentation are welcome.

We can set up a skype session if that would be more efficient ...

Dale

[1] 
https://github.com/dalehenrich/tode/blob/dev/docs/releaseNotes/releaseNotes0.1.0.md
[2] 
https://github.com/dalehenrich/tode/blob/dev/docs/releaseNotes/releaseNotes0.1.0.md#project-loading-with-tode

On 07/06/2015 05:23 PM, Jupiter Jones via Glass wrote:
> I think this is a fairly common scenario when using a project and its 
> dependencies.
>
> Simple project scenario:
> - MainProject is cloned locally from github in /opt/git/MainProject
> - DependentProject is cloned locally from github in 
> /opt/git/DependentProject
> - MainProject is dependent on DependentProject and refers to its 
> github repository in its BaselineOfMainProject.
>
> Loading scenarios:
> - At the start of each development session, I load my base development 
> image then load the projects I’m working on from their local clones.
> - Also, in an automated deployment, I want to clone the projects 
> locally then have my image load them from the local disc rather than 
> the network.
>
> Loading:
> If I load my main project with:
> Metacello new
> baseline: ‘MainProject’;
> repository: ‘filetree:///opt/git/MainProject' 
> <filetree:///opt/git/MainProject%27>;
> load
> It will load the DependProject from github.
>
> So, I load DependentProject from my local repo 
> filetree:///opt/git/DependentProject using:
> Metacello new
> baseline: ‘DependentProject’;
> repository: ‘filetree:///opt/git/DependentProject' 
> <filetree:///opt/git/DependentProject%27>;
> load
>
> I then load MainProject from my local repo 
> filetree:///opt/git/MainProject using:
> Metacello new
> baseline: ‘MainProject’;
> repository: ‘filetree:///opt/git/MainProject' 
> <filetree:///opt/git/MainProject%27>;
> load
>
> Of course, this throws the error:
> Load Conflict between existing BaselineOfDependentProject [baseline] 
> from filetree:///opt/git/DependentProject 
> and BaselineOfDependentProject [baseline] from 
> github://GitHubUser/DependentProject
>
> To get around this, I’m loading DependingProject then locking it with:
> Metacello new
> baseline: ‘DependentProject’;
> repository: ‘filetree:///opt/git/DependentProject' 
> <filetree:///opt/git/DependentProject%27>;
> lock
>
> This becomes cumbersome with many dependents and isn’t easy to manage 
> with automated deployments. The pain scales when managing dependents 
> of dependents and third party projects… ideally all of which would be 
> cloned locally. eg. If MainProject depends on Seaside and Seaside 
> depends on Zinc, both of which are cloned locally, 
> BaselineOfMainProject would also need to specify an alternate repo for 
> Zinc.
>
> So my question... Is there a way of specifying alternate repos for 
> project dependents and their dependents in BaselineOfMainProject, then 
> selecting which repos will be used at load time, and have them apply 
> to all dependents and their dependents?
>
> Right now, I have custom load scripts to circumvent the dependency 
> management Metacello is so good at, doing lots of locking, and 
> wrapping it in GsDeployer deploy: blocks so I don’t get dialogs 
> warning about locks. Pharos loads are even more fiddly. I figure there 
> must be a better way :)
>
> How are others managing this?
>
> Cheers,
>
> Jupiter
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150706/46c9d321/attachment.html>


More information about the Glass mailing list