There are two things that have bothered me about our use of Metacello, but I couldn't explain exactly why until now. These are two guidelines that I think are important: 1. ConfigurationOfMyProject should live at repoOfMyProject. Any MetaRepoForXyz should only be a copy of this config 2. Platform-specific config sections are not optional Without these two things, we're back in Babbel. Here's why... I wrote a configuration that depended on several well-known projects. Someone had very generously updated the configs and placed them in metaReposForXyz (e.g. http://squeaksource.com/MetacelloRepository), so that's the repo I referenced in my config. In the meantime, the same was done for later Pharo versions (MetaRepoFor30, etc). Now I'm stuck - either I have to manually manage platform variations of project dependencies myself, or settle to only ever have my config work in latest Pharo - but I'll still have to update the repo url for each new version which is a pain. Of course I understand that editing directly in a MetaRepo is very tempting (and I've done it myself), it is a quick and dirty hack that subverts much of the value of Metacello. Of course, there are limits to our ability to follow #1, like where we don't have access to the repo, but it doesn't even seem like we're trying. And there are limits to #2 like maybe we don't know how to get it to work in Squeak, but we can at least keep Pharo versions working. I have been using Mariano's workflow of using latest Pharo as the reference implementation and adding compatibility shims for previous versions. If we don't take an extra moment to do it right, we simply push this work onto users. ----- Cheers, Sean -- View this message in context: http://forum.world.st/Metacello-Projects-one-canonical-config-repo-for-all-p... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.