On 5 September 2012 19:18, Dale Henrichs <dhenrich@vmware.com> wrote:
Frank,
overrideRepositories: overrides all of the repositories used during the load ... it was primarily intended to be used by folks wanting to isolate their development environment from the turbulent internets .... it is not quite as useful for trying to switch between multiple mirrors, you have to provide a complete set of repositories that are up and contain the packages ...
Do you mean that Metacello will choose, for an entire load, a repository? I'd imagined that it would, for each load of each package, try the repositories in order. But if it's per entire load, then you'd need each repo-containing server to have the full set of packages. That would be more awkward.
Each project can specify primary and mirror repositories in their own configuration.
Yes, which is the problem: how many ConfigurationOfs out there say "SS, but fall back to LatAM", or "use the canonical, but fall back to SS"? I know _yours_ do, but I suspect most won't.
Of course the problem comes up when the mirror repository is down, or the project is only hosted on one repository...
If a package is hosted on SS, it will be on LatAm too, so all SS-hosted packages can now come from either. frank
Dale
----- Original Message ----- | From: "Frank Shearar" <frank.shearar@gmail.com> | To: Pharo-project@lists.gforge.inria.fr | Sent: Wednesday, September 5, 2012 3:42:55 AM | Subject: Re: [Pharo-project] latam mirror down? | | On 22 August 2012 21:59, Frank Shearar <frank.shearar@gmail.com> | wrote: | > On 22 August 2012 21:08, Dale Henrichs <dhenrich@vmware.com> wrote: | >> | >> | >> ----- Original Message ----- | >> | From: "Frank Shearar" <frank.shearar@gmail.com> | >> | To: Pharo-project@lists.gforge.inria.fr | >> | Sent: Wednesday, August 22, 2012 11:56:12 AM | >> | Subject: Re: [Pharo-project] latam mirror down? | >> | | >> | On 22 August 2012 19:33, Dale Henrichs <dhenrich@vmware.com> | >> | wrote: | >> | > Frank, | >> | > | >> | > You can already do this in your configuration by supplying a | >> | > list | >> | > of repositories instead of a single repository: | >> | > | >> | > spec | >> | > repository: 'http://seaside.gemstone.com/ss/metacello'; | >> | > repository: 'http://www.squeaksource.com/metacello'. | >> | > | >> | > Gofer is used to do the loads in Metacello, so I don't think | >> | > that | >> | > Gofer necessarily processes repositories in order , but this | >> | > is | >> | > the technique I use to insulate Metacello loads from | >> | > repository | >> | > outages... | >> | | >> | Sure, but I can't do that for ConfigurationOfFFI, for example. I | >> | can't | >> | do that for ObjectsAsMethodWrappers, to talk about what's | >> | currently | >> | causing our builds to fail. | >> | | >> | > My latam hack for travis ci had to do with compensating for | >> | > configurations that are "single sourced"... | >> | | >> | Sure, and the presence of the latam mirror _ought_ to mean that | >> | any | >> | single-sourced thing on SS would no longer be single source. | >> | Surely | >> | it | >> | would be easier all round if travisCI.st (if I remember the name | >> | correctly) defined where to find these packages? (I can hear | >> | Chris & | >> | Chris saying "it should look on SM") | >> | | >> | I'll see if I can't hack up something we can pick over. | >> | >> Frank, | >> | >> If you're talking about what I did in builderCI ... then I agree | >> wholeheartedly that a failover of some sort is called for when | >> trying to bootstrap the latam mirror support ... squeaksource was | >> dead at the time and I was in a hurry ... (haven't we heard that | >> before) ... I'd welcome improvements there.... | > | > I'm trying a hack there now: basically, revert to using SS for | > finding | > ObjectsAsMethodWrappers and MontiRedirect, and selectively add the | > LatAm redirect. Not great, because we're _still_ using a single | > point | > of failure. | > | >> A fail-over scheme for FFI or any arbitrary projects (is that what | >> you're getting at?) is a bit more difficult, but I'd definitely | >> be interested in seeing what you're thinking ... | > | > This is what I'm getting at. I'll see what I can think up. | | Well, it does seem to work, even though it's a stinky hack. I wrote a | wrapper that inspects the package you're trying to load, and adds a | few possible places where you might find it, and installed the | wrapper | on MetacelloLoaderPolicy >> #overrideRepositories. | | Hm. "Seems to work" might actually not be meaningful: is it the case | that #overrideRepositories always returns the list of repos to | search? | Or is there a flag that says "use the config's repos, unless there | are | overrides"? If #overrideRepositories is always used, this _should_ | work. | | Take a look at the wrapper [1] and the builderCI changes [2] and let | me know what you think. | | frank | | [1] | http://ss3.gemstone.com/ss/Scratchpad-fbs/MetacelloBuildOverrides-fbs.2.mcz | [2] | https://github.com/frankshearar/builderCI/commit/e1aec187d3d4ca5ec919886d88f... | | > frank | > | >> Dale | >> | |