[squeak-dev] The Inbox: Installer-Core-fbs.361.mcz

Frank Shearar frank.shearar at gmail.com
Sun Jan 20 10:38:59 UTC 2013

On 19 January 2013 22:42, H. Hirzel <hannes.hirzel at gmail.com> wrote:
> On 1/19/13, Frank Shearar <frank.shearar at gmail.com> wrote:
>> On 17 January 2013 22:20, Frank Shearar <frank.shearar at gmail.com> wrote:
>>> On 17 January 2013 22:14,  <commits at source.squeak.org> wrote:
>>>> Frank Shearar uploaded a new version of Installer-Core to project The
>>>> Inbox:
>>>> http://source.squeak.org/inbox/Installer-Core-fbs.361.mcz
>>>> ==================== Summary ====================
>>>> Name: Installer-Core-fbs.361
>>>> Author: fbs
>>>> Time: 17 January 2013, 10:14:55.106 pm
>>>> UUID: 6b44c4f2-631a-46e9-82a1-29df951936b9
>>>> Ancestors: Installer-Core-bp.360
>>>> #3 of 3 letting "Installer ss install: 'Foo'" use the local cache
>>>> repository if possible.
>>>> If you run "Installer ss3 install: 'CoolWidget-xyz.1.mcz', load it from
>>>> the cache repository if possible. Otherwise, use the canonical
>>>> repository.
>>>> This lets you still use SqueakMap Installer scripts even when you're not
>>>> connected to the Internet.
>>>> =============== Diff against Installer-Core-bp.360 ===============
>>> Ultimately I'd like to see "this package is made up of these parts"
>>> and "this package's parts can be found at these locations" to be
>>> completely separated.
>>> Providing a canonical location is great, but there are many situations
>>> where being able to specify the location of the parts is extremely
>>> useful. Not having an internet connection, for instance, or someone
>>> using a cache on the LAN.
>>> This change makes a tiny step in that direction by permitting the
>>> loading of fully specified Monticello artifacts to use the local cache
>>> in preference to always downloading things.
>>> (One nit: you can already say "install: 'Foo-fbs.1" which does not do
>>> what you might think: it will load the most recent version whose
>>> prefix matches - "Foo-fbs.19.mcz", say. If you want a particular
>>> version, you MUST give the ".mcz" suffix. This change does not alter
>>> this behaviour: it will simply try load the latest match from the
>>> union of local and remote versions.)
>> I think the idea can be generalised slightly. As an example:
>> SqueakSource is vital to our community. It is also rather unreliable.
>> There's a Latin American mirror. Wouldn't it be nice if "Installer ss
>> install: 'Foo'" meant "try install from SqueakSource and, if you
>> can't, try the LatAm mirror instead.".
>> So while you look at this and hopefully think it's not too rubbish,
>> I'll go off and think about an InstallerWithFailover.
> I think this is a necessity in case the LatAm mirror is really
> maintained, i.e. if it mirrors once a day.
> Who is responsible for it?

Johan Fabry, I think (judging by the context of the mirror front page:

IIRC, Johan also donated a very neat hack to the builderCI stuff, so
one could inject the LatAm mirror URL into the guts of Metacello
during a load.

Written correctly, an InstallerWithFailover could nest, allowing "get
it locally, or from here or from there" in a uniform manner. I'll see
what I can come up with tonight or the next few days.


> --Hannes
>> frank

More information about the Squeak-dev mailing list