On 8/31/16 4:34 AM, Denis Kudriashov wrote:
Hi Dale.
2016-06-24 21:53 GMT+02:00 Dale Henrichs <dale.henrichs@gemtalksystems.com <mailto:dale.henrichs@gemtalksystems.com>>:
Does the following meet your needs?
project: 'Magritte3' with: [ spec className: #ConfigurationOfMagritte3; versionString: #'stable'; repository: 'http://smalltalkhub.com/mc/Magritte/Magritte3/main/ <http://smalltalkhub.com/mc/Magritte/Magritte3/main/>' ];
project: 'Magritte3Seaside' copyFrom: 'Magritte' with: [ spec loads: #('Seaside' ) ]; project: 'Magritte3Core' copyFrom: 'Magritte' with: [ spec loads: ##('Core' ) ];
I assume the "stupid workaround" is the fact that in your example you had to specify Magritte twice? #project:copyFrom:with: has been around for a long time in Metacello and was invented to solve this particular problem ... FWIW, this feature is documented in Lesson12 of "Metacello Configuration Tutorial Part 2" in the Help Browser ...
Yes, this is pattern which we all must use. But problem that it is duplication of groups definition in all dependant projects. Norbert suggest solution for this by referencing group name inside dependency list (spec requires: #( 'Magritte3*:Core*' )). I really like this idea.
Denis, thanks for clarifying. I can definitely see that 'Magritte3*:Core*' is more convenient ... Could you add a Metacello issue[1] with these details? I don't have any major Metacello work scheduled in the near term so it will probably be a while before I implement such a feature. At first blush it would seem to require a bit of rework in the project name space implementation. A pull request with an implementation would be even better:) Dale [1] https://github.com/dalehenrich/metacello-work/issues/new