Hi Kilon, I think you can simply do:
baseline: spec <baseline> spec for: #pharo do: [ spec baseline: 'SmaCC' with: [ spec repository: 'github://ThierryGoubier/SmaCC' ]. spec package: 'Ephestos' with: [ spec requires: #('SmaCC') ] ] You can also restrict what you load from SmaCC in this way: baseline: spec <baseline> spec for: #pharo do: [ spec baseline: 'SmaCC' with: [ spec repository: 'github://ThierryGoubier/SmaCC' ]. spec import: 'SmaCC'. spec package: 'Ephestos' with: [ spec requires: #('SmaCC-Python') ] ] (i.e. by importing the baseline of SmaCC, you can choose among the groups or the packages of SmaCC...) >From what Dale told me, you can only import one baseline this way. But you can add from more than one baseline with import: provides: baseline: spec <baseline> spec for: #pharo do: [ spec baseline: 'SmaCC' with: [ spec repository: 'github://ThierryGoubier/SmaCC' ]. spec import: 'SmaCC' provides: #('SmaCC-Python'). spec package: 'Ephestos' with: [ spec requires: #('SmaCC-Python') ] ] Dale, is that correct? I haven't tested those, so... Note that any kind of repository can host a baseline this way, smalltalkhub, squeaksource, etc... version05: spec <version: '0.5'> spec for: #'pharo4.x' do: [ spec baseline: 'GitFileTree' with: [ spec repository: ' http://smalltalkhub.com/mc/ThierryGoubier/GitFileTreePharo40/main' ]; import: 'GitFileTree' ] And of course a baseline can require a configuration... I'm still exploring all the possibilities this allows (and, more important, how configurations may be simplified to defer effective loading to a baseline inside the master repository, so that the configuration very rarely has to be updated). Thierry 2015-03-17 12:11 GMT+01:00 kilon alios <kilon.al...@gmail.com>: > I have this very simple baseline for Ephestos > > baseline: spec > <baseline> > spec > for: #pharo > do: [ > spec package: 'Ephestos' with: [Metacello new > baseline: 'SmaCC'; > repository: 'github://ThierryGoubier/SmaCC'; > load] ]. > > The above code works fine for me. The user can install Ephestos from > configuration browser that has a configuration that loads this baseline > which in turn not only loads the latest code for the project but also runs > this block to make sure Smacc is installed for Ephestos to use. > > The question however how else I can do this and what are the advantages > and disadvantages for those other approaches ? >