1. Add to the image (maybe SystemVersion current metacelloRepository) a getter that returns the standardized string pointing to the correct metacello repository for the image:
SystemVersion>>metacelloRepository ^ 'MetaRepoForPharo12'
And then all the series of Pharo releases based on that PharoCore image will point to MetaRepoPharo12 (PharoCore 1.2, PharoCore 1.2.1, PharoCore 1.2.2, Pharo 1.2, Pharo 1.2.1, Pharo 1.2.4, etc. They are the same release family and supposedly "binary" compatible).
For PharoCore 1.3, that string should be changed to
SystemVersion>>metacelloRepository ^ 'MetaRepoForPharo13'
and so on.
ok
Metacello ------------- This is the most difficult part. - Right now, Metacello hardcodes repository paths in the references to other projects. This isn't bad, but an alternative should be provided. That is, when referencing external projects like:
project: 'Refactoring-Core' with: [ spec className: 'ConfigurationOfRefactoringBrowser'; loads: #('Refactoring-Core' ); file: 'ConfigurationOfRefactoringBrowser'; repository: 'http://www.squeaksource.com/MetacelloRepository' ];
But a spec is an object so we could have a visitor going over and doing the automatic rewrite for us.
Of course nothing prevents for a configuration to reference a project outside the "universe" repository, but that is a decision of the maintainer.
No this is a dogma. NO NO NO reference outside the repository. NOT A SINGLE ONE. NEVER. We want 100% self contained distribution. Stef