metacello
metacello copied to clipboard
Metacello Feature: Baseline in a repository, packages in another repository
In Metacello, one can write a baseline for a project in, say, repository1, and have the packages of that project in repository2, and load that with the following code:
Metacello new
baseline: 'AProject';
repository: #('URI of repository1' 'URI of repository2')
load
That is: #repository: accept an array of URIs.
A more detailed example: the project is MonticelloFileTree, with the packages contained in 'http://smalltalkhub.com/mc/Pharo/Pharo40/main' and the BaselineOfMonticelloFileTree in 'http://smalltalkhub.com/mc/ThierryGoubier/MinimalBaselines40/main'.
Metacello new
baseline: 'MonticelloFileTree';
repository: #('http://smalltalkhub.com/mc/Pharo/Pharo40/main' 'http://smalltalkhub.com/mc/ThierryGoubier/MinimalBaselines40/main');
load
And the baseline (in BaselineOfMonticelloFileTree) has no mention of the additional repository:
baseline: spec
<baseline>
spec
for: #common
do: [
spec blessing: #baseline.
spec
package: 'MonticelloFileTree-FileSystem-Utilities' with: [ spec requires: 'MonticelloFileTree-Core' ];
package: 'MonticelloFileTree-Core';
group: 'default' with: #('MonticelloFileTree-FileSystem-Utilities' 'MonticelloFileTree-Core') ]