Dale,

looking at my code I really like the idea solving my white label problem with polymorphism. It makes things much easier IMHO. So ended up doing something like having something like this

BaselineOfCoreProduct
���
    spec group: ���whiteLabel��� with: #( ���BaselineOfWhiteLabelProduct��� )
���

and doing 

    Metacello new
       baseline: #CoreProduct
       load: ���whiteLabel���;
       baseline: #WhiteLabelProduct;
       load

This way each baseline is still in its own package. The project is not for public consumption so we have to do that in our deployment process nowhere else.

Norbert


Am 25.04.2019 um 09:51 schrieb Norbert Hartl <norbert@hartl.name>:



Am 25.04.2019 um 01:13 schrieb Dale Henrichs <dale.henrichs@gemtalksystems.com>:


On 4/24/19 3:08 PM, Norbert Hartl wrote:
I don���t have an idea how to achieve this with a group. It is about changing the number of dependencies of one package.

There's load order and there's grouping...

If you are using #linear loads for a BaselineOf then hard dependencies (Metacello requires:) dictate load  order and load order is important.

If you are using #atomic loads, then load order for packages is not important ... for #atomic loads you only need to specify which set of packages you want to have loaded together ... so if you have a baseline where you don't use #requires: anywhere and simply define different groups for each set of package to want to have loaded together (one for productA and another for productB) ... you should be able to get what you want ...

If this is a public baseline, then you have to warn users of your project that the only legally loadable entities are the set of groups that you've created, then things should work well ... ... I'd think:)


So no way of making Metacello load a package with one name and load a baseline with another name?

Not sure what you are thinking about here ... i think I need a concrete example of what you mean here���

Sorry, I wasn���t clear. I was talking about the possibility to have a basline loaded where the package name and the name of the baseline are not the same. So let���s say I have the two baselines in the BaselineOfCoreProduct. Then I would need to do something like

Metacello new
  package: ���BaselineOfCoreProduct���;
  baseline: #BaselineOfWhiteLabelProduct;
  load

That would be sufficient. Having all the baselines in one package would be a smaller problem then.

Norbert