From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Extending the mysql configuration Date: Fri, 21 Apr 2017 23:53:35 +0200 Message-ID: <87o9vp8m1s.fsf@gnu.org> References: <6f7313e5-cbb8-abcb-aa25-795e0a697c6c@cbaines.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d1gUp-00029x-IL for guix-devel@gnu.org; Fri, 21 Apr 2017 17:53:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d1gUk-0006QC-Qr for guix-devel@gnu.org; Fri, 21 Apr 2017 17:53:43 -0400 In-Reply-To: (Andy Wingo's message of "Thu, 20 Apr 2017 11:07:17 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Andy Wingo Cc: guix-devel@gnu.org Andy Wingo skribis: > On Wed 19 Apr 2017 19:45, Christopher Baines writes: > >> I also spotted the define-configuration syntax, which looks like it >> might work well, but I wanted to check if this was definitely a >> direction more services were heading before attempting to write out a >> large part of the supported configuration options. > > MHO is this is the direction we should go in. Having a configuration > defined in a data type that Guix can understand makes it easier to > operate on the system as a whole -- the system can see your mysql > configuration and introspect on it, it's easy to define extension > points, etc. There are a few services that use this approach and I > expect the number to grow over time. At the same time many of these > services have the option to fall back on an opaque configuration when > you have special needs or a different workflow -- see dovecot for a very > long example. I agree. Record types defined with =E2=80=98define-configuration=E2=80=99 or similar= are preferable to using an alist or another dictionary type also because of the set of fields is checked at macro-expansion time (eventually I=E2=80=99d like to have some static type checks in there too). Ludo=E2=80=99.