guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Updates on the guix home manager


From: Julien Lepiller
Subject: Re: Updates on the guix home manager
Date: Fri, 20 Sep 2019 16:39:33 +0200
User-agent: K-9 Mail for Android

Le 20 septembre 2019 11:31:15 GMT+02:00, Thorsten Wilms <address@hidden> a 
écrit :
>On Thu, 19 Sep 2019 23:22:57 +0200
>Julien Lepiller <address@hidden> wrote:
>
>> I you have a color-theme-home-type that extends all terminals, color
>> themes would be configured in all terminals, but because of the
>> extension, a mate-terminal-home-type would be instantiated.
>> 
>> My version of services introduce the notion of an extension point:
>all
>> three terminal services would implement a color-theme extension point
>> that could be targeted by another service. When it targets an
>> extension point, a service does not need to specify what service is
>> extended. In that case, no service is implicitely instantiated, and
>> any service with that extension point is extended. This is exactly
>> what we want to do here: by using the extension point, without
>> specifying a target service, both gnome and xfce4 terminal
>> configurations are updated with your color theme, and
>> mate-terminal-home-type is not instantiated.
>
>OK, let me try to put that in different terms:
>An application-configuration may contain placeholders. A
>generalized-configuration may declare that it fills in a specific
>placeholder. This happens automatically, if the
>generalized-configuration is used, while any
>application-configuration with such a placeholder is also in use.

An extension changes the configuration value of a service. In the case of a web 
server, you can extend it multiple times to add more server blocks. Sometimes, 
it doesn't make sense to extend more than once, as in the color theme example. 
In that case, you can think of the extension as replacing a default value 
somewhere.

>
>So basically like having an inherits-from, but with one level of
>abstraction that allows to swap in the thing to inherit from?

It looks like multiple inheritence, indeed. Although, an extension-point can be 
extended multiple times.

>
>
>So far, in my own practice, what I have been missing is a way to manage
>defaults and customizations. I'd like to keep track of it, in terms of
>"these are the defaults the application has been installed with",
>"these are the changes I applied". Then, when an update of the
>application does anything to the defaults, I want to be able to get to
>a diff and the option to apply my changes as a patch, or see where
>conflicts are.
>
>Adding a mechanism to generalize settings, I can only imagine a graph,
>consisting of generalized-settings-producers, translators, patches and
>combiners. Actually, generalized-settings-producers could be patches
>(from nothing to something).

It is a graph! For guix system, you can see that with guix system 
extension-graph.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]