Frank Shearar-3 wrote
On 6 November 2012 16:55, Mariano Martinez Peck <
marianopeck@
> wrote:
That's already there. Metacello can say: get this package from this list of possible repositories. Problem is that most of configurations are not aware of that.
spec repositories: [ spec repository: 'primary'. spec repository: 'secundary'. spec repository: 'etc...' ]
That's not what I meant. I want the author to say "this piece of software contains these parts, and these are the canonical locations", and the user should be able to completely override those locations.
#repositoryOverrides:
self whateverVersion repositoryOverrides: (self whateverRepo); load
I have actually tried to do these things. repositoryOverrides: is _insufficient_. It doesn't protect you from a transitive dependency's repository not being available.
frank
I created a solution that may do what you want on Pharo or be a start for what you have in mind here: http://code.google.com/p/metacello/issues/detail?id=182 The code in that changeset detects whether Squeaksource is down when loading a project and then load it and its dependencies from the Chilean mirror if Squeaksource is down. It only replaces the squeaksource repos with chilean repos during each run of the loading process rather than editing the project's configs. It does that for the project you want to load and all its dependent projects and packages. And their dependenices. It allowed me to load Seaside 3.0.7 into a fresh Pharo 1.4 image from Chile when squeaksource was down yesterday. The issue I ran into on Squeak 4.3 is that the error MCHttpRepository>>#allFileNames creates when it cannot access the repos on Squeaksource stops the loading process. -- View this message in context: http://forum.world.st/now-that-squeaksource-is-back-tp4654045p4654207.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.