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

Reply via email to