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

Peter Uhnak i.uhnak at gmail.com
Fri Mar 10 13:40:19 UTC 2017


If you are looking for central repository, then Pharo Catalog is the closest thing to that.

You copy your ConfigurationOf to the appropriate MetaRepoForPharo{40/50/60}.
The ConfigurationOf can be just a copy of your actual ConfOf, or something that loads the actual one --- e.g. with Git you typically don't have ConfigurationOf, but BaselineOf (which doesn't contain any version information), and from the Catalog ones you just load this baseline.

But considering git is only now gaining bigger traction it is in a flummox.

Peter

On Fri, Mar 10, 2017 at 01:04:59PM +0100, Sven Van Caekenberghe wrote:
> 
> > 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