1) Problem: know which project version must be used for a particular pharo version. There are two solutions:
a) When a developer commites ConfigurationOf to a particular repo, it makes sure the #lastVersion answer the correct one. b) When a developer commites ConfigurationOf to a particular repo, it makes sure the #load will load the correct version.
a) is more complicated and require more time for the developer. It means you will have separate branches for each pharo version. The information is spread. with b) all the information is together in only one ConfOf in your own repo. Once it is needed, you just commit it to a particular Pharo repository and just change the #load I think b) is muuuuch easier. So...everybody knows how to install something "ConfigurationOf load".
I like b
2) Problem: projects may refer to other projects. And the referenced projects can be anywhere (for example, metacello repository). Example of ConfigurationOfOmniBrowser >> baseline11:
project: 'Refactoring-Core' with: [ spec className: 'ConfigurationOfRefactoringBrowser'; loads: #('Refactoring-Core' ); file: 'ConfigurationOfRefactoringBrowser'; repository: 'http://www.squeaksource.com/MetacelloRepository' ];
So....ok., ConfigurationOfOmniBrowser will be in Pharo10Metacello (example). But...it will load the ConfigurationOfRefactoringBrowser from MonticelloRepository....WRONG!!!
solution? a) change everything by hand....crap b) use repositoryOverride:
b) can be used, but the problem (if I understood correclty) is that it replaces ALL repositories. So, you need to have EVERYTHING in that repo in order to work.
yes this is the idea the process should fetch everything and copy it.
3) Problem: people will start to submit, may not maintain anymore, etc. I wouldn't make gloabl write such repositories. We should only give access to those that need it