[Nix-dev] Re: NixOS: New scheme

Ludovic Courtès ludo at gnu.org
Tue Nov 18 22:38:49 CET 2008


Hello,

"Nicolas Pierron"
<nicolas.b.pierron at gmail.com> writes:

> On Tue, Nov 18, 2008 at 16:22, Ludovic Courtès <ludo at gnu.org> wrote:
>> Hello!
>>
>> "Nicolas Pierron"
>> <nicolas.b.pierron at gmail.com> writes:
>>
>>> This mail is a draft about the description of the new writing style.
>>
>> I'm afraid I didn't get the whole point, partly because "New scheme" or
>> "new writing style" is not very descriptive IMO.
>
> True, may be we should call it the "fix style".

Sorry, I don't understand the meaning of "the fix style" either.

For me, the question is: what problem are you trying to solve?

>> I agree that it makes it slightly more simple to write an Upstart jobs.
>> However, I think that passing `pkgs' and `config' to every single job is
>> too coarse-grain, and it breaks the principle of least authority.  I
>> would feel more at ease if Upstart jobs were passed only what they
>> really need (which is roughly what the so-called "old scheme" does).
>
> One problem with the "old scheme" is that you need to add extra stuff
> everywhere when you want a bit of freedom.  True freedom is not a good
> solution as explained in the principle of least authority. [1]  I
> think a good solution have some kinds of scopes.  So we have to
> distinguish 2 terms "require" and "inherit". (this is just an idea)

IMO functions are a sufficient abstraction, with clear scoping rules: a
function can access anything that was passed as an argument, nothing
else (`import' aside).  Implementing "ambient authority" by passing all
Upstart jobs `pkgs' and `config', and then trying to restrict that
authority (which is what you propose, AIUI) seems more complicated than
just conveying just as much authority as is needed.

> I've presented this to Eelco some months ago, but Eelco is not
> everybody ... So I will probably create a branch in NixOS to continue
> this work.

You mean it was presented off-line, e.g., in a face-to-face meeting?

Now, don't misunderstand me.  I agree that the "old scheme" could be
improved, most notably by centralizing things that pertain to the same
Upstart job, rather than spread options, code, etc., over several files.
But I'm not sure that it's what you're trying to solve.

Thanks,
Ludo'.




More information about the nix-dev mailing list