2010/3/18 Adrian Lienhard <adi@netstyle.ch>:
Here is yet another way how we could model universes. We just have multiple Metacello repositories:
- MetacelloRepository is the one that everybody can commit to (testing universe) - MetacelloRepositoryPharo1.0 is the stable universe for Pharo 1.0 - MetacelloRepositoryPharo1.1 is the stable universe for Pharo 1.1 - etc.
A package always first gets into the testing universe and when it is known to work in a particular version it is copied into the appropriate repository. The Gofer Project Loader would just need to know the repository for the current Pharo version. Like in Debian, one can add the testing universe to get unstable versions if needed.
This setup would not need any code changes in Metacello and it allows us to use access rights to assign people to manage the process and assert a certain level of quality.
And what if my project is intended to load in Squeak also? Or gemtone? Where should I put it? Does this approach imply that there should be created appropriate repositories? Doesn't this imply duplication of code between different configurations (which is avoided now using #common specifier) if the package can be loaded with only minor changes in all forks? And doesn't this imply removing all the code related to the fork specifier handling in Metacello? Just curious :) George