[squeak-dev] [Pharo-dev] Fwd: Where are the Metacello ConfigurationOfYourProject supposed to be?

Sven Van Caekenberghe sven at stfx.eu
Fri Mar 10 12:04:59 UTC 2017


> On 10 Mar 2017, at 12:27, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> 
> 
> 
> 2017-03-10 8:51 GMT+01:00 Sven Van Caekenberghe <sven at stfx.eu>:
> 
> > On 10 Mar 2017, at 00:21, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> >
> > Grrr, even the mailing list changes, the first match in gmail just bounces, ;)
> >
> > ---------- Forwarded message ----------
> > From: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
> > Date: 2017-03-10 0:05 GMT+01:00
> > Subject: Where are the Metacello ConfigurationOfYourProject supposed to be?
> > To: Pharo Development <Pharo-project at lists.gforge.inria.fr>, The general-purpose Squeak developers list <squeak-dev at lists.squeakfoundation.org>
> >
> >
> > Hi,
> > I must come back to one of the balkanization and lack of stability that most upset me.
> >
> > Imagine that you are developping a cross dialect library, say for Squeak/Pharo and why not Gemstone.
> >
> > Imagine that this library has a few dependencies to some other libraries, either Core like Alien/FFI or more exotic third party also available in other dialects.
> >
> > The question are:
> > -1) where are you supposed to maintain your own ConfigurationOf*?
> 
> Just next to your original source code. It is your config and you maintain it.
> 
> 
> Yes, I generally maintain the ConfigurationOf* in my own repo along with the other packages,
> and I copy the ConfigurationOf* to some centralized place (http://www.squeaksource.com/MetacelloRepository)
> It's like registering the application i nSqueakMap/CPAN/PyPI/etc...
> 
>  
> > -2) where are you supposed to find the ConfigurationOf* dependencies?
> 
> Anywhere ;-)
>  
> The config refers to its home repo. That is the one you should use in your dependency.
> 
> OK, that's not particularly robust if source code repository is moving
> (i.e. on squeaksource, then ss3, then smalltalkhub, then github via filetree, then ...)
> 
> A centralized Configuration provides a level of resilience.
>  
> 
> The different repos Pharo uses are for classification purposes.
> 
> That is how I understand it anyway.
> 
> 
> No. The Pharos repos exist because we NEED something like a catalog (SqueakMap/CPAN/PyPI/whatever).
> Otherwise, ConfigurationOf* scattered around the web are not discoverable.
> 
> The fact that there are as many repos as pharo versions is because there is no such easy thing as filtering the ConfigurationOf* matching target version without loading them all...
>  
> Thanks Sven for answering.
> BTW, why do you continue to put copies in http://www.squeaksource.com/MetacelloRepository

One single repo to rule them all is also a single point of failure, right ?

As I understand it, the catalog (code/browser) searches backwards from its own version specific repo to all previous ones to the 'old' one you mention.

Like I said, putting a config in a version specific repo means that you (or whoever makes the copy) acknowledge that you support that version or at least that it works there. It is a very soft, very simple mechanism.

In the Pharo world, the catalog is the main entry point to easily loading stuff. But there is so much going on that that is certainly not the only way, nor is it possible to enforce just one way. There are teams that copy all source code repos and their configs to their own source code control systems to fix versions and to maintain absolute control and independence. YMMV.

> Nicolas
> 
> > Once upon a time, the answer would have been
> > http://www.squeaksource.com/MetacelloRepository
> >
> > But now, what is it? I see surprisingly few updates here (apart from Sven and a few others).
> >
> > How can the Metacello feature of supporting cross-dialect work if the dialect specific configuration of dependencies are scattered all around the web?
> >
> > Do the CPAN or PyPI have to change their URL each time a new release of perl or python is released?
> >
> > Careless decisions in this area can easily sabotage the cross-dialect initiative.
> >
> > Maybe I'm ranting by ignorance.
> > I wish your answers will reassure me.
> >
> > Nicolas
> >



More information about the Squeak-dev mailing list