[Glass] Metacello load order of dependant projects

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Thu Feb 9 18:01:09 PST 2017


Jupiter,

Executing the following before loading should do the trick:

   Metacello new
     baseline: 'Seaside3';
     repository: 'filetree:///opt/git/JupiterSmalltalk/Seaside/repository';
     lock.

This will force Bootstrap and/or BootstrapMaggritte to load Seaside3 
from your local repository ...If you have local clones, you should be 
using a lock, you can use a lock like the one above without loading the 
project ...

<aside>With tODE putting project entries with a lock into 
$GS_HOME/sys/local/server/projects will automatically lock those 
projects (if you either use `project load` to load projects or have 
executed a `project list` at least once... and then subsequent loads via 
Metacello or tODE will honor the locked projects ... the idea is to not 
require you to always have to worry about doing manual 'lock" commands 
for all of your local clones for each new stone that you create</aside>

With the lock ,you probably don't need to include the Seaside3 baseline 
spec below unless you have another direct dependency on the Seaside3 
project ... the lock (without a load) is sufficient and a load of any 
project that references Seasidde3 or any other locked project will 
automatically use the local clone ...

The code that included below does not look like a complete baseline spec 
... what class is it in? are there any package specs?what is your load 
command?

There are just three project references that I see: Seaside3, Bootstrap, 
and BootstrapMagritte. Without the actual load expression and complete 
baseline spec, I can't really tell what Metacello will try to load ...

For example the default order for an expression like

   Metacello new
     baseline: '???';
     repository: '???';
     load.

Should be definition order and since Seaside3 is the first definition I 
see it should be first, but it sounds like you might be doing something 
like:

   Metacello new
     baseline: '???';
     repository: '???';
     load: `Bootstrap'.

or there is more in the baseline spec than meets my eye:)

Dale


On 2/9/17 3:27 PM, Jupiter Jones via Glass wrote:
> Am I able to specify the order in which project dependencies load in a baseline? I am loading a version of Seaside locally from disc and have the following in the baseline...
>
>       spec
>          baseline: 'Seaside3'
>          with: [
>            spec
>              repository:
>                  'filetree:///opt/git/JupiterSmalltalk/Seaside/repository';
>              loads: #('Core' 'Development' 'Zinc') ]
>        spec
>          configuration: 'Bootstrap'
>          with: [
>            spec
>              repository:
>                  'http://smalltalkhub.com/mc/TorstenBergmann/Bootstrap/main';
>              version: '0.16.0' ].
>        spec
>          configuration: 'BootstrapMagritte'
>          with: [
>            spec
>              repository:
>                  'http://www.smalltalkhub.com/mc/TorstenBergmann/BootstrapMagritte/main';
>              version: '0.2.3’ ]
>
> However, Metacello ends up trying to load Bootstrap first which loads Seaside from Smalltalkhub.
>
> I can manually load Seaside first, then lock it, then load this baseline, however, if it possible to make it load the seaside from this baseline first and lock it?
>
> Thanks for any advice.
>
> Cheers,
>
> J
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass



More information about the Glass mailing list