Perhaps I was not really clear. My argument was against different _versions_ of a ConfigurationOfXXX in different (metacello-|catalog-)repositories. This will create a real mess because you _will_ get identical package versions of the ConfigurationOfXXX package in your package cache, leading to strange load errors (Metacello not finding a version, loading a wrong version, etc..)
Keeping a _copy_ of the ConfigurationOfXXX in different metacello repositories is the way to go. Making different branches of ConfigurationOfXXX in the different metacello repositories is the way to versioning hell. At least, that is what I understood you intended to do? Take a look at ConfigurationOfZinc, ConfigurationOfSeaside3, ... they have a _single_ branch of their ConfigurationOfXXX for all platforms and these are copied everywhere for reference. Johan On 22 Mar 2014, at 21:51, Nicolas Cellier <[email protected]> wrote: > > 2014-03-22 21:27 GMT+01:00 Johan Brichau <[email protected]>: > I don't understand what squeaksource has to do with that. > With main repository, I mean the repository of the project itself. > > Almost all ConfigurationOfXXX are hosted together with the project itself. > They are also referenced in that repo. The MetacelloRepo or MetaRepos are > almost always secondary copies (if not, they should be) > > Johan > > > Arghh NOOOO, so that is really going to be a problem for me ! > With MetacelloRepository I absolutely don't care where to find a specific > package, I have some kind of centralized catalog. > > Now, if I must track each and every motion of package B from squeaksource to > ss3 to SmalltalkHub to github to (what's next ?), the idea of catalog is > completely broken then... > > Nicolas > > > On 22 Mar 2014, at 21:10, Nicolas Cellier > <[email protected]> wrote: > >> OK, if the MetacelloRepository on squeaksource can still serve as reference, >> I'm perfectly OK with it, I don't know why I had this impression that >> anything beginning with those 6 letters was going to be seen as a problem ;) >> >> >> 2014-03-22 18:53 GMT+01:00 Johan Brichau <[email protected]>: >> Why can you not reference the main repository? The meta repository is just a >> place where the configuration loader tool fetches them. >> >> Platform-specific elements go in the separate 'sections' of a baseline or >> version method. >> >> Don't make separate branches of the same ConfigurationOf class. You will not >> only make your life hard but also confuse all users! >> >> Maybe you can explain why you think you need those? >> >> Johan >> >> On 22 Mar 2014, at 18:20, Nicolas Cellier >> <[email protected]> wrote: >> >>> I have some packages A that depend on another package B. >>> In Metacello, I can easily declare the dependency >>> spec >>> className: 'ConfigurationOfB'; >>> versionString: #'stable'; >>> repository: ' >>> http://www.squeaksource.com/MetacelloRepository' ]. >>> But the repository is hardcoded here. >>> >>> My problem is that I'd like to edit a ConfigurationOfA valid for pharo 1.x, >>> 2.0.x and 3.0.x (so far so good) and put a copy in MetaRepoForPharo20 and >>> another copy in MetaRepoForPharo30. >>> >>> Since the repository is hardcoded, this is going to be a problem because >>> the MetaRepo will then cross-ref other repositories and weaken robustness >>> or miss uptodate ConfigurationOfB... >>> >>> I'd like to avoid maintaining many branches of ConfigurationOfA. >>> >>> How do others resolve this? >> >
