Where are the Metacello ConfigurationOfYourProject supposed to be?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Where are the Metacello ConfigurationOfYourProject supposed to be?

Nicolas Cellier
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*?
-2) where are you supposed to find the ConfigurationOf* dependencies?

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


Reply | Threaded
Open this post in threaded view
|

Re: Where are the Metacello ConfigurationOfYourProject supposed to be?

hernanmd

2017-03-09 20:05 GMT-03:00 Nicolas Cellier <[hidden email]>:
Do the CPAN or PyPI have to change their URL each time a new release of perl or python is released?


Exactly. Why Pharo developers need to update their working packages/configurations because a new Pharo version is released?

It does not make any sense from a Pharo user POV.





Reply | Threaded
Open this post in threaded view
|

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

Nicolas Cellier
In reply to this post by Nicolas Cellier


2017-03-10 8:51 GMT+01:00 Sven Van Caekenberghe <[hidden email]>:

> On 10 Mar 2017, at 00:21, Nicolas Cellier <[hidden email]> wrote:
>
> Grrr, even the mailing list changes, the first match in gmail just bounces, ;)
>
> ---------- Forwarded message ----------
> From: Nicolas Cellier <[hidden email]>
> Date: 2017-03-10 0:05 GMT+01:00
> Subject: Where are the Metacello ConfigurationOfYourProject supposed to be?
> To: Pharo Development <[hidden email]>, The general-purpose Squeak developers list <[hidden email]>
>
>
> 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

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
>





Reply | Threaded
Open this post in threaded view
|

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

Sven Van Caekenberghe-2

> On 10 Mar 2017, at 12:27, Nicolas Cellier <[hidden email]> wrote:
>
>
>
> 2017-03-10 8:51 GMT+01:00 Sven Van Caekenberghe <[hidden email]>:
>
> > On 10 Mar 2017, at 00:21, Nicolas Cellier <[hidden email]> wrote:
> >
> > Grrr, even the mailing list changes, the first match in gmail just bounces, ;)
> >
> > ---------- Forwarded message ----------
> > From: Nicolas Cellier <[hidden email]>
> > Date: 2017-03-10 0:05 GMT+01:00
> > Subject: Where are the Metacello ConfigurationOfYourProject supposed to be?
> > To: Pharo Development <[hidden email]>, The general-purpose Squeak developers list <[hidden email]>
> >
> >
> > 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
> >


Reply | Threaded
Open this post in threaded view
|

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

Peter Uhnak
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 <[hidden email]> wrote:
> >
> >
> >
> > 2017-03-10 8:51 GMT+01:00 Sven Van Caekenberghe <[hidden email]>:
> >
> > > On 10 Mar 2017, at 00:21, Nicolas Cellier <[hidden email]> wrote:
> > >
> > > Grrr, even the mailing list changes, the first match in gmail just bounces, ;)
> > >
> > > ---------- Forwarded message ----------
> > > From: Nicolas Cellier <[hidden email]>
> > > Date: 2017-03-10 0:05 GMT+01:00
> > > Subject: Where are the Metacello ConfigurationOfYourProject supposed to be?
> > > To: Pharo Development <[hidden email]>, The general-purpose Squeak developers list <[hidden email]>
> > >
> > >
> > > 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
> > >
>
>