https://forum.world.st/Monticello-reverse-project-dependency-tp4877429.html
Hi,
I have the following situation:
I have ProjectMain, and ProjectPlugin, now normally the Plugin depends on Main, however I would like to load Plugin as part of Main.
The problem is that I can't specify to load Plugin after Main has been already fully loaded, if I do something like this
BaselineOfMain>>baseline: spec
<baseline>
spec
for: #common
do:
[ spec
baseline: 'Plugin'
with: [ spec
repository: '...';
loads: #('default' OR 'plugin') ].
spec
package: 'Main' with: [ spec requires: #(more stuff) ];
spec group: 'default' with: #('Main').
spec group: 'complete' with: #('default' 'Plugin') ]
The BaselineOfPlugin has two groups… "default", which loads also "Main", and "plugin", which doesn't.
Now the problem is that there is no guaranteed way that Plugin will load after Main (in fact the should happen). If I load the plugin's #default, then Metacello ends up in an endless loop for some reason, and if I load #plugin, then it will load it before the Main which will break it (because Plugin has dependencies on main).
So my question is:
is it possible to reverse it somehow?
Maybe add at the end `spec postLoadDoIt: #postLoadPlugins`, and then in that method manually load the plugins with Metacello/Gofer? Or is there a better way?
Thanks,
Peter