all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ng0 <contact.ng0@cryptolab.net>
To: Carlo Zancanaro <carlo@zancanaro.id.au>
Cc: guix-devel <guix-devel@gnu.org>
Subject: We need an RFC procedure [Re: Services can now have a default value]
Date: Sat, 22 Apr 2017 00:46:34 +0000	[thread overview]
Message-ID: <20170422004634.4oedqmsebpctjqk4@abyayala> (raw)
In-Reply-To: <8737d1nxbd.fsf@zancanaro.id.au>

Carlo Zancanaro transcribed 2.2K bytes:
> On Fri, Apr 21 2017, Ludovic Courtès wrote:
> > A ‘define-service-type’ macro or similar could generate either code the
> > current framework (with <service-type> and <service> and
> > <foo-configuration>) or for SRFI-99-style records if we later to go that
> > route.
> >
> > So I think we should start by designing this macro.
> >
> > How does that sound?
> 
> Great! I think that it's sensible to not break things for now, and we
> should be able to design the macro to do that.
> 
> I'll have a go at it later today and see what I can come up with. (I'm
> not very familiar with guile/scheme libraries, but I have played around
> a fair bit with macros.)
> 
> > Well I don’t know, perhaps in some cases it might make sense to
> > automatically instantiate things depended on.  The advantage is that as
> > a user of the service (exim for instance) you don’t have to be aware of
> > the services it expects (improves separation of concern).
> >
> > So you could blissfully write just:
> >
> >   (cons (service mediagoblin-service-type)
> >         %base-services)
> >
> > and behind the scenes it would add an nginx instance, an mcron instance
> > with a couple of jobs, a rottlog instance, and so on.
> >
> > WDYT?
> 
> My main concern would be making sure that all of our services have safe
> defaults that can be extended. It may lead to surprising outcomes if we
> have services spun up which do more than you expect. As an example, if
> someone requests exim to start as a dependency, we should make sure it
> doesn't turn you into an open relay by default.
> 
> Carlo

On the matter of 'not breaking things':

I want an formal, publicly tracked (not *just* on the mailinglist) RFC (like in Rust or similar projects) procedure for all things which
can break currently existing configurations. Introducing these changes would
require to document properly what needs to changed so that people can read
about how to fix the mistakes.
Right now to me it seems as if people are mostly talking about such development on IRC or
offlist and then the changes are applied after a QA which sometimes takes a bit of
"don't break stuff" in consideration but is never able to grasp the full effect of
breakage.

The current error output of Guix is not enough if you simply want to do
an update of a system.
If you take a look from the perspective of someone who just wants to
administrate a mailserver, and we break their config by a simple change
of how things are written, the resulting error when you run guix system reconfigure
requires some understanding of Guix and Guile.

And please don't derail this by saying that it's currently beta status. If we are
aiming for general purpose and server adoption, we should look at problems and
solutions from all perspectives.
-- 
PGP and more: https://people.pragmatique.xyz/ng0/

  reply	other threads:[~2017-04-22  0:46 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-15 22:51 Services can now have a default value Ludovic Courtès
2017-04-15 23:11 ` ng0
2017-04-17 11:56   ` Ricardo Wurmus
2017-04-19 23:22     ` ng0
2017-04-20  8:53       ` Ricardo Wurmus
2017-04-20  9:09         ` ng0
2017-04-23 10:23           ` Ricardo Wurmus
2017-04-17 11:58 ` Ricardo Wurmus
2017-04-19 14:42 ` Carlo Zancanaro
2017-04-19 15:18   ` ng0
2017-04-19 21:20   ` Ludovic Courtès
     [not found]     ` <8737d32abz.fsf@zancanaro.id.au>
2017-04-20  8:42       ` Ludovic Courtès
2017-04-20 10:19         ` Carlo Zancanaro
2017-04-21 22:04           ` Ludovic Courtès
2017-04-21 23:41             ` Carlo Zancanaro
2017-04-22  0:46               ` ng0 [this message]
2017-04-22  7:12                 ` We need an RFC procedure [Re: Services can now have a default value] Ricardo Wurmus
2017-04-22 10:08                   ` ng0
2017-04-22 22:55                     ` Ludovic Courtès
2017-04-23 10:13                       ` Ricardo Wurmus
2017-04-23 12:02                         ` ng0
2017-04-27 13:29                         ` Ludovic Courtès
2017-04-27 16:37                           ` Petter
2017-05-02 12:42                             ` Ludovic Courtès
2017-05-22 21:23                               ` Ricardo Wurmus
2017-05-22 22:45                                 ` Leo Famulari
2017-04-23 11:52                       ` ng0
2017-05-13 10:39               ` Services can now have a default value Carlo Zancanaro
2017-05-13 22:53                 ` Carlo Zancanaro
2017-05-15 12:48                   ` Ludovic Courtès
2017-04-22 14:46             ` Christopher Allan Webber
2017-04-22 14:59               ` Jan Nieuwenhuizen
2017-04-22 22:57               ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170422004634.4oedqmsebpctjqk4@abyayala \
    --to=contact.ng0@cryptolab.net \
    --cc=carlo@zancanaro.id.au \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.