Installer metacello

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

Installer metacello

Nicolas Cellier
Hi all,
I wonder why we haven't an InstallerMetacello flavour?
We could write things like:
    Installer metacello configurationOf: 'Xtreams'; version: #stable; load.

It would pick the Configuration in default repository (http://www.squeaksource.com//MetacelloRepository). Of course, we could change that with Installer metacello repository: 'http://foobar.com' etc...

Any taker?


Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape

> On 29.04.2020, at 21:36, Nicolas Cellier <[hidden email]> wrote:
>
> Hi all,
> I wonder why we haven't an InstallerMetacello flavour?
> We could write things like:
>     Installer metacello configurationOf: 'Xtreams'; version: #stable; load.
>
> It would pick the Configuration in default repository (http://www.squeaksource.com//MetacelloRepository). Of course, we could change that with Installer metacello repository: 'http://foobar.com' etc...

Because that would essentially be Metcallo itself.

Try it:

Metacello new
        configuration: 'Xtreams';
        version: #stable;
        load

Best regards
        -Tobias


Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Nicolas Cellier
Ah yes OK, I thought it could ensureRecentMetacello, but I see that MetacelloStub is doing that...

Le mer. 29 avr. 2020 à 22:06, Tobias Pape <[hidden email]> a écrit :

> On 29.04.2020, at 21:36, Nicolas Cellier <[hidden email]> wrote:
>
> Hi all,
> I wonder why we haven't an InstallerMetacello flavour?
> We could write things like:
>     Installer metacello configurationOf: 'Xtreams'; version: #stable; load.
>
> It would pick the Configuration in default repository (http://www.squeaksource.com//MetacelloRepository). Of course, we could change that with Installer metacello repository: 'http://foobar.com' etc...

Because that would essentially be Metcallo itself.

Try it:

Metacello new
        configuration: 'Xtreams';
        version: #stable;
        load

Best regards
        -Tobias




Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
Because that would essentially be Metcallo itself.

I think an additional way through the Installer protocol wouldn't hurt. Maybe "Installer metacello" could just return "Metacello new". Or directly map the #install call to Metacello in a custom InstallerMetacello as suggested:

Installer metacello "returns a new InstallerMetacello"
   package: 'Xtreams'; "maps auto-magically to ConfigurationOfXtreams"
   install.

Best,
Marcel

Am 29.04.2020 23:03:23 schrieb Nicolas Cellier <[hidden email]>:

Ah yes OK, I thought it could ensureRecentMetacello, but I see that MetacelloStub is doing that...

Le mer. 29 avr. 2020 à 22:06, Tobias Pape <[hidden email]> a écrit :

> On 29.04.2020, at 21:36, Nicolas Cellier <[hidden email]> wrote:
>
> Hi all,
> I wonder why we haven't an InstallerMetacello flavour?
> We could write things like:
>     Installer metacello configurationOf: 'Xtreams'; version: #stable; load.
>
> It would pick the Configuration in default repository (http://www.squeaksource.com//MetacelloRepository). Of course, we could change that with Installer metacello repository: 'http://foobar.com' etc...

Because that would essentially be Metcallo itself.

Try it:

Metacello new
        configuration: 'Xtreams';
        version: #stable;
        load

Best regards
        -Tobias




Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape

> On 30.04.2020, at 09:49, Marcel Taeumel <[hidden email]> wrote:
>
> > Because that would essentially be Metcallo itself.
>
> I think an additional way through the Installer protocol wouldn't hurt. Maybe "Installer metacello" could just return "Metacello new". Or directly map the #install call to Metacello in a custom InstallerMetacello as suggested:
>
> Installer metacello "returns a new InstallerMetacello"
>    package: 'Xtreams'; "maps auto-magically to ConfigurationOfXtreams"
>    install.

I'd really like to _not_ have that.

The very point of Metacello is that you can say

"Metacello new ..." on GemStone AND Squeak AND Pharo AND ...

and having multiple, platformspecific ways really is against that spirit.

Best regards
        -Tobias

Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
> ... having multiple, platformspecific ways really is against that spirit.

So, in the long term, you want to get rid of Installer? Well, either that or fill it up to the current state of things. I did not argue that those Installer calls should be used in a cross-dialect setting. But it would help building things such as the PreferenceWizard.

Best,
Marcel

Am 30.04.2020 10:13:07 schrieb Tobias Pape <[hidden email]>:


> On 30.04.2020, at 09:49, Marcel Taeumel wrote:
>
> > Because that would essentially be Metcallo itself.
>
> I think an additional way through the Installer protocol wouldn't hurt. Maybe "Installer metacello" could just return "Metacello new". Or directly map the #install call to Metacello in a custom InstallerMetacello as suggested:
>
> Installer metacello "returns a new InstallerMetacello"
> package: 'Xtreams'; "maps auto-magically to ConfigurationOfXtreams"
> install.

I'd really like to _not_ have that.

The very point of Metacello is that you can say

"Metacello new ..." on GemStone AND Squeak AND Pharo AND ...

and having multiple, platformspecific ways really is against that spirit.

Best regards
-Tobias



Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
Installer can become a great starting point for code and resource loading for all kinds of local experiments. Including file-in from the file system. It might already be: Installer class >> installFile:.

So, Installer is at a different abstraction level and has different use cases compared to Metacello.

Best,
Marcel

Am 30.04.2020 10:18:08 schrieb Marcel Taeumel <[hidden email]>:

> ... having multiple, platformspecific ways really is against that spirit.

So, in the long term, you want to get rid of Installer? Well, either that or fill it up to the current state of things. I did not argue that those Installer calls should be used in a cross-dialect setting. But it would help building things such as the PreferenceWizard.

Best,
Marcel

Am 30.04.2020 10:13:07 schrieb Tobias Pape <[hidden email]>:


> On 30.04.2020, at 09:49, Marcel Taeumel wrote:
>
> > Because that would essentially be Metcallo itself.
>
> I think an additional way through the Installer protocol wouldn't hurt. Maybe "Installer metacello" could just return "Metacello new". Or directly map the #install call to Metacello in a custom InstallerMetacello as suggested:
>
> Installer metacello "returns a new InstallerMetacello"
> package: 'Xtreams'; "maps auto-magically to ConfigurationOfXtreams"
> install.

I'd really like to _not_ have that.

The very point of Metacello is that you can say

"Metacello new ..." on GemStone AND Squeak AND Pharo AND ...

and having multiple, platformspecific ways really is against that spirit.

Best regards
-Tobias



Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
Aaaand: Metacello is an external dependency. Installer can provide fall-back strategies if that dependency is not available such as good error messages or alternative code locations.

Metacello should be the way to go in CI and alike. But Installer is better for in-image tooling. Installer could be the object that offers the user: "Do you just want to install this project via Metacello or do you want to install the Git Browser to start working on that project?"

Just my two cents. :-)

Best,
Marcel

Am 30.04.2020 10:21:06 schrieb Marcel Taeumel <[hidden email]>:

Installer can become a great starting point for code and resource loading for all kinds of local experiments. Including file-in from the file system. It might already be: Installer class >> installFile:.

So, Installer is at a different abstraction level and has different use cases compared to Metacello.

Best,
Marcel

Am 30.04.2020 10:18:08 schrieb Marcel Taeumel <[hidden email]>:

> ... having multiple, platformspecific ways really is against that spirit.

So, in the long term, you want to get rid of Installer? Well, either that or fill it up to the current state of things. I did not argue that those Installer calls should be used in a cross-dialect setting. But it would help building things such as the PreferenceWizard.

Best,
Marcel

Am 30.04.2020 10:13:07 schrieb Tobias Pape <[hidden email]>:


> On 30.04.2020, at 09:49, Marcel Taeumel wrote:
>
> > Because that would essentially be Metcallo itself.
>
> I think an additional way through the Installer protocol wouldn't hurt. Maybe "Installer metacello" could just return "Metacello new". Or directly map the #install call to Metacello in a custom InstallerMetacello as suggested:
>
> Installer metacello "returns a new InstallerMetacello"
> package: 'Xtreams'; "maps auto-magically to ConfigurationOfXtreams"
> install.

I'd really like to _not_ have that.

The very point of Metacello is that you can say

"Metacello new ..." on GemStone AND Squeak AND Pharo AND ...

and having multiple, platformspecific ways really is against that spirit.

Best regards
-Tobias



Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape
In reply to this post by marcel.taeumel

> On 30.04.2020, at 10:18, Marcel Taeumel <[hidden email]> wrote:
>
> > ... having multiple, platformspecific ways really is against that spirit.
>
> So, in the long term, you want to get rid of Installer?

Installer and Metacello should not mix.
ATM I don't think Installer should go away. But it is actually too vague to be used beyond a makeshift Monticello API in everyday use (I know of #merge:; I personally do not like it).


> Well, either that or fill it up to the current state of things. I did not argue that those Installer calls should be used in a cross-dialect setting.

True. But Metacello is. Saying "Everywhere, you typically use 'Metacello new'. Oh, but in Squeak, people use 'Installer metacello' with a different API" is IMHO the wrong direction.

> But it would help building things such as the PreferenceWizard.

Software configuration management does not really sound like a place for a Preferences Wizard ;)

I think we should learn from Cuis here…


Best regards
        -Tobias

Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape
In reply to this post by marcel.taeumel

> On 30.04.2020, at 10:21, Marcel Taeumel <[hidden email]> wrote:
>
> Installer can become a great starting point for code and resource loading for all kinds of local experiments. Including file-in from the file system. It might already be: Installer class >> installFile:.
>
> So, Installer is at a different abstraction level and has different use cases compared to Metacello.

Seems like it, but it ultimately waters down and mixes installations of different abstractions.
That is probably wrong.

For me, Installer currently is not more than a shim atop Monticello. All other usecases of it have either vanished or are better expressed declaratively (as in Metacello).

Best regards
        -Tobias


Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)

Best,
Marcel

Am 30.04.2020 10:54:43 schrieb Tobias Pape <[hidden email]>:


> On 30.04.2020, at 10:21, Marcel Taeumel wrote:
>
> Installer can become a great starting point for code and resource loading for all kinds of local experiments. Including file-in from the file system. It might already be: Installer class >> installFile:.
>
> So, Installer is at a different abstraction level and has different use cases compared to Metacello.

Seems like it, but it ultimately waters down and mixes installations of different abstractions.
That is probably wrong.

For me, Installer currently is not more than a shim atop Monticello. All other usecases of it have either vanished or are better expressed declaratively (as in Metacello).

Best regards
-Tobias




Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape

> On 30.04.2020, at 10:57, Marcel Taeumel <[hidden email]> wrote:
>
> Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)

This is its disadvantage: it means too many different things to different people at different levels.
I hold that it is _not_ descriptive in that way :)

I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.


Best regards
        -Tobias

Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.

From a generic Smalltalk perspective, sure. But that's not the role of Installer here. :-) Let's discuss it in a Squeak-specific way: Installer vs. SqueakMap, it is then. Metacello should not be part of that discussion. It is an external project not within the control of the Squeak community. Still, compatibility is very important. It is just a different discussion.

Still +1 for InstallerMetacello.

Best,
Marcel

Am 30.04.2020 11:00:41 schrieb Tobias Pape <[hidden email]>:


> On 30.04.2020, at 10:57, Marcel Taeumel wrote:
>
> Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)

This is its disadvantage: it means too many different things to different people at different levels.
I hold that it is _not_ descriptive in that way :)

I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.


Best regards
-Tobias



Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape

> On 30.04.2020, at 11:21, Marcel Taeumel <[hidden email]> wrote:
>
> > I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
>
> From a generic Smalltalk perspective, sure. But that's not the role of Installer here. :-) Let's discuss it in a Squeak-specific way: Installer vs. SqueakMap, it is then. Metacello should not be part of that discussion. It is an external project not within the control of the Squeak community. Still, compatibility is very important. It is just a different discussion.
>
> Still +1 for InstallerMetacello.

I don't get it then. Why Installer vs Squeakmap but then +1 for InstallerMetacello?

I specifically do not want more than one method to install Metacello projects.
-1

Best regards
        -Tobias

>
> Best,
> Marcel
>> Am 30.04.2020 11:00:41 schrieb Tobias Pape <[hidden email]>:
>>
>>
>> > On 30.04.2020, at 10:57, Marcel Taeumel wrote:
>> >
>> > Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)
>>
>> This is its disadvantage: it means too many different things to different people at different levels.
>> I hold that it is _not_ descriptive in that way :)
>>
>> I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
>>
>>
>> Best regards
>> -Tobias
>>
>



Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
Let's make it more concrete. I prefer sprinkle "Installer ..." calls in the system compared to "Metacello new". Here are some examples:

- Adding a menu entry to the world menu such as "Git browser (click to install)"
- Adding a list entry to the preferences wizard's "install extra packages" page such as "installOSProcess"

Here is why. Installer might be just a shell to get things going; not a fully-fledged package-dependency manager. However, it can act as a nice little facade to mitigate future trade-offs. To integrate different package-dependency managers such as Monticello and Metacello for now.

We need a nice place to answer the request "How can I install stuff?". Metacello is too low-level for that. So is Monticello. SqueakMap and Installer are more suited to deal with this. And they can act as thin layers above the actual dependency managers. Maybe add extra bells and whistles (e.g. convenient one-liner, screeshots, ...) -- but only to improve the user experience.

Best,
Marcel

Am 30.04.2020 11:36:50 schrieb Tobias Pape <[hidden email]>:


> On 30.04.2020, at 11:21, Marcel Taeumel wrote:
>
> > I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
>
> From a generic Smalltalk perspective, sure. But that's not the role of Installer here. :-) Let's discuss it in a Squeak-specific way: Installer vs. SqueakMap, it is then. Metacello should not be part of that discussion. It is an external project not within the control of the Squeak community. Still, compatibility is very important. It is just a different discussion.
>
> Still +1 for InstallerMetacello.

I don't get it then. Why Installer vs Squeakmap but then +1 for InstallerMetacello?

I specifically do not want more than one method to install Metacello projects.
-1

Best regards
-Tobias

>
> Best,
> Marcel
>> Am 30.04.2020 11:00:41 schrieb Tobias Pape :
>>
>>
>> > On 30.04.2020, at 10:57, Marcel Taeumel wrote:
>> >
>> > Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)
>>
>> This is its disadvantage: it means too many different things to different people at different levels.
>> I hold that it is _not_ descriptive in that way :)
>>
>> I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
>>
>>
>> Best regards
>> -Tobias
>>
>





Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Tobias Pape
Hi

> On 30.04.2020, at 12:37, Marcel Taeumel <[hidden email]> wrote:
>
> Let's make it more concrete. I prefer sprinkle "Installer ..." calls in the system compared to "Metacello new". Here are some examples:
>
> - Adding a menu entry to the world menu such as "Git browser (click to install)"
> - Adding a list entry to the preferences wizard's "install extra packages" page such as "installOSProcess"
>
> Here is why. Installer might be just a shell to get things going; not a fully-fledged package-dependency manager. However, it can act as a nice little facade to mitigate future trade-offs. To integrate different package-dependency managers such as Monticello and Metacello for now.
>
> We need a nice place to answer the request "How can I install stuff?". Metacello is too low-level for that. So is Monticello. SqueakMap and Installer are more suited to deal with this. And they can act as thin layers above the actual dependency managers. Maybe add extra bells and whistles (e.g. convenient one-liner, screeshots, ...) -- but only to improve the user experience.

I disagree.
-t

Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Jakob Reschke
In reply to this post by marcel.taeumel
What does this facade buy us? How a software gets installed in the
image is software-specific unless you want to dictate a solution. We
could create SqueakMap entries for all things that have an install
button in the Trunk, but that entry would also just contain Metacello
new ...

When a piece of software changes its install or dependency management
solution, you do not really want to maintain the facade in addition to
the actual change, do you? It would be more straightforward to just
change what this particular install button does.

I see nothing to be gained from a common API for distinct dependency
management models (i. e., there is not really any integration)
https://xkcd.com/927/

Kind regards,
Jakob

Am Do., 30. Apr. 2020 um 12:37 Uhr schrieb Marcel Taeumel
<[hidden email]>:

>
> Let's make it more concrete. I prefer sprinkle "Installer ..." calls in the system compared to "Metacello new". Here are some examples:
>
> - Adding a menu entry to the world menu such as "Git browser (click to install)"
> - Adding a list entry to the preferences wizard's "install extra packages" page such as "installOSProcess"
>
> Here is why. Installer might be just a shell to get things going; not a fully-fledged package-dependency manager. However, it can act as a nice little facade to mitigate future trade-offs. To integrate different package-dependency managers such as Monticello and Metacello for now.
>
> We need a nice place to answer the request "How can I install stuff?". Metacello is too low-level for that. So is Monticello. SqueakMap and Installer are more suited to deal with this. And they can act as thin layers above the actual dependency managers. Maybe add extra bells and whistles (e.g. convenient one-liner, screeshots, ...) -- but only to improve the user experience.
>
> Best,
> Marcel
>
> Am 30.04.2020 11:36:50 schrieb Tobias Pape <[hidden email]>:
>
>
> > On 30.04.2020, at 11:21, Marcel Taeumel wrote:
> >
> > > I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
> >
> > From a generic Smalltalk perspective, sure. But that's not the role of Installer here. :-) Let's discuss it in a Squeak-specific way: Installer vs. SqueakMap, it is then. Metacello should not be part of that discussion. It is an external project not within the control of the Squeak community. Still, compatibility is very important. It is just a different discussion.
> >
> > Still +1 for InstallerMetacello.
>
> I don't get it then. Why Installer vs Squeakmap but then +1 for InstallerMetacello?
>
> I specifically do not want more than one method to install Metacello projects.
> -1
>
> Best regards
> -Tobias
>
> >
> > Best,
> > Marcel
> >> Am 30.04.2020 11:00:41 schrieb Tobias Pape :
> >>
> >>
> >> > On 30.04.2020, at 10:57, Marcel Taeumel wrote:
> >> >
> >> > Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)
> >>
> >> This is its disadvantage: it means too many different things to different people at different levels.
> >> I hold that it is _not_ descriptive in that way :)
> >>
> >> I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
> >>
> >>
> >> Best regards
> >> -Tobias
> >>
> >
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

marcel.taeumel
Thanks Jakob! Finally someone who reacts to the actual arguments I am trying to make. :-)

Yes, such a facade would have to be managed. Yet, it is already there. We should decide for at least one direction. Not adding InstallerMetacello for this reason indicates getting rid of Installer in the long run. Existing stuff might be moved from Installer to a Monti(!)cello class. To at least level the field.

Best,
Marcel

Am 30.04.2020 13:01:54 schrieb Jakob Reschke <[hidden email]>:

What does this facade buy us? How a software gets installed in the
image is software-specific unless you want to dictate a solution. We
could create SqueakMap entries for all things that have an install
button in the Trunk, but that entry would also just contain Metacello
new ...

When a piece of software changes its install or dependency management
solution, you do not really want to maintain the facade in addition to
the actual change, do you? It would be more straightforward to just
change what this particular install button does.

I see nothing to be gained from a common API for distinct dependency
management models (i. e., there is not really any integration)
https://xkcd.com/927/

Kind regards,
Jakob

Am Do., 30. Apr. 2020 um 12:37 Uhr schrieb Marcel Taeumel
:
>
> Let's make it more concrete. I prefer sprinkle "Installer ..." calls in the system compared to "Metacello new". Here are some examples:
>
> - Adding a menu entry to the world menu such as "Git browser (click to install)"
> - Adding a list entry to the preferences wizard's "install extra packages" page such as "installOSProcess"
>
> Here is why. Installer might be just a shell to get things going; not a fully-fledged package-dependency manager. However, it can act as a nice little facade to mitigate future trade-offs. To integrate different package-dependency managers such as Monticello and Metacello for now.
>
> We need a nice place to answer the request "How can I install stuff?". Metacello is too low-level for that. So is Monticello. SqueakMap and Installer are more suited to deal with this. And they can act as thin layers above the actual dependency managers. Maybe add extra bells and whistles (e.g. convenient one-liner, screeshots, ...) -- but only to improve the user experience.
>
> Best,
> Marcel
>
> Am 30.04.2020 11:36:50 schrieb Tobias Pape :
>
>
> > On 30.04.2020, at 11:21, Marcel Taeumel wrote:
> >
> > > I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
> >
> > From a generic Smalltalk perspective, sure. But that's not the role of Installer here. :-) Let's discuss it in a Squeak-specific way: Installer vs. SqueakMap, it is then. Metacello should not be part of that discussion. It is an external project not within the control of the Squeak community. Still, compatibility is very important. It is just a different discussion.
> >
> > Still +1 for InstallerMetacello.
>
> I don't get it then. Why Installer vs Squeakmap but then +1 for InstallerMetacello?
>
> I specifically do not want more than one method to install Metacello projects.
> -1
>
> Best regards
> -Tobias
>
> >
> > Best,
> > Marcel
> >> Am 30.04.2020 11:00:41 schrieb Tobias Pape :
> >>
> >>
> >> > On 30.04.2020, at 10:57, Marcel Taeumel wrote:
> >> >
> >> > Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)
> >>
> >> This is its disadvantage: it means too many different things to different people at different levels.
> >> I hold that it is _not_ descriptive in that way :)
> >>
> >> I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
> >>
> >>
> >> Best regards
> >> -Tobias
> >>
> >
>
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

Jakob Reschke
Note that Monticello scripting via Installer targets the same niche
that Gofer fills already (it is used under the hood of Metacello). So
there might be no need to move something to Monticello. Just use
Gofer, unless Installer can do something here that Gofer can't?

Am Do., 30. Apr. 2020 um 15:24 Uhr schrieb Marcel Taeumel
<[hidden email]>:

>
> Thanks Jakob! Finally someone who reacts to the actual arguments I am trying to make. :-)
>
> Yes, such a facade would have to be managed. Yet, it is already there. We should decide for at least one direction. Not adding InstallerMetacello for this reason indicates getting rid of Installer in the long run. Existing stuff might be moved from Installer to a Monti(!)cello class. To at least level the field.
>
> Best,
> Marcel
>
> Am 30.04.2020 13:01:54 schrieb Jakob Reschke <[hidden email]>:
>
> What does this facade buy us? How a software gets installed in the
> image is software-specific unless you want to dictate a solution. We
> could create SqueakMap entries for all things that have an install
> button in the Trunk, but that entry would also just contain Metacello
> new ...
>
> When a piece of software changes its install or dependency management
> solution, you do not really want to maintain the facade in addition to
> the actual change, do you? It would be more straightforward to just
> change what this particular install button does.
>
> I see nothing to be gained from a common API for distinct dependency
> management models (i. e., there is not really any integration)
> https://xkcd.com/927/
>
> Kind regards,
> Jakob
>
> Am Do., 30. Apr. 2020 um 12:37 Uhr schrieb Marcel Taeumel
> :
> >
> > Let's make it more concrete. I prefer sprinkle "Installer ..." calls in the system compared to "Metacello new". Here are some examples:
> >
> > - Adding a menu entry to the world menu such as "Git browser (click to install)"
> > - Adding a list entry to the preferences wizard's "install extra packages" page such as "installOSProcess"
> >
> > Here is why. Installer might be just a shell to get things going; not a fully-fledged package-dependency manager. However, it can act as a nice little facade to mitigate future trade-offs. To integrate different package-dependency managers such as Monticello and Metacello for now.
> >
> > We need a nice place to answer the request "How can I install stuff?". Metacello is too low-level for that. So is Monticello. SqueakMap and Installer are more suited to deal with this. And they can act as thin layers above the actual dependency managers. Maybe add extra bells and whistles (e.g. convenient one-liner, screeshots, ...) -- but only to improve the user experience.
> >
> > Best,
> > Marcel
> >
> > Am 30.04.2020 11:36:50 schrieb Tobias Pape :
> >
> >
> > > On 30.04.2020, at 11:21, Marcel Taeumel wrote:
> > >
> > > > I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
> > >
> > > From a generic Smalltalk perspective, sure. But that's not the role of Installer here. :-) Let's discuss it in a Squeak-specific way: Installer vs. SqueakMap, it is then. Metacello should not be part of that discussion. It is an external project not within the control of the Squeak community. Still, compatibility is very important. It is just a different discussion.
> > >
> > > Still +1 for InstallerMetacello.
> >
> > I don't get it then. Why Installer vs Squeakmap but then +1 for InstallerMetacello?
> >
> > I specifically do not want more than one method to install Metacello projects.
> > -1
> >
> > Best regards
> > -Tobias
> >
> > >
> > > Best,
> > > Marcel
> > >> Am 30.04.2020 11:00:41 schrieb Tobias Pape :
> > >>
> > >>
> > >> > On 30.04.2020, at 10:57, Marcel Taeumel wrote:
> > >> >
> > >> > Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)
> > >>
> > >> This is its disadvantage: it means too many different things to different people at different levels.
> > >> I hold that it is _not_ descriptive in that way :)
> > >>
> > >> I think: If you want to use new Smalltalk software via Metacello, use "Metacello new ...", regardless of the Smalltalk you're using.
> > >>
> > >>
> > >> Best regards
> > >> -Tobias
> > >>
> > >
> >
> >
> >
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Installer metacello

timrowledge
In reply to this post by marcel.taeumel


> On 2020-04-30, at 1:57 AM, Marcel Taeumel <[hidden email]> wrote:
>
> Installer has a very big advantage: its name. That name is descriptive und discoverable. We should benefit from that and evolve Installer into something we all like. :-)
>
> Best,
> Marcel
>> Am 30.04.2020 10:54:43 schrieb Tobias Pape <[hidden email]>:
>>
>>
>> > On 30.04.2020, at 10:21, Marcel Taeumel wrote:
>> >
>> > Installer can become a great starting point for code and resource loading for all kinds of local experiments. Including file-in from the file system. It might already be: Installer class >> installFile:.
>> >
>> > So, Installer is at a different abstraction level and has different use cases compared to Metacello.
>>
>> Seems like it, but it ultimately waters down and mixes installations of different abstractions.
>> That is probably wrong.
>>
>> For me, Installer currently is not more than a shim atop Monticello. All other usecases of it have either vanished or are better expressed declaratively (as in Metacello).
>>
>> Best regards
>> -Tobias
>>
>>
>


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Not enough sense to come in out of the rain.



12