From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id oJNDBuZHwmUDSgEAqHPOHw:P1 (envelope-from ) for ; Tue, 06 Feb 2024 15:53:26 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id oJNDBuZHwmUDSgEAqHPOHw (envelope-from ) for ; Tue, 06 Feb 2024 15:53:26 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1707231206; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=TpUrlHscAXv5RJVg2/5UCFFSEFu9DVcpNM9CF98pHOo=; b=uus2K3HxWlbUoKpJh+oCwRCPgPf61oVdkP2A3L5VucdIeqSLVBWrDHwLUowqoqXJWvaCeE orb88OFTfNh51gUr5Rqu63Vf9+SVPxLhjq70ieQrQiIsKrXcsH93kpBof0FShsH5AInRib lkJRvvTxVYXAkNamD9coEzg2dCl9PZoj/wjO3v20YtcJpFiSd+/prh4X/ZUWHmClwCLaQR M/dd8EhAMReRqZggRiBm12BPB5uS3BWQ5O4PL+wkBTIiKcHSCazudzHd5hSLFprj7tb5f2 bAMs2aUPigHFQKe1zi2/ZIPzP4ku59EIuDjoIiIJvV5bCRbCGETmwm82WEuWsg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1707231206; a=rsa-sha256; cv=none; b=YWdr93z6mrslv3/Pf50BSVHa+7hrzRmt1k7W9LfKxSDKGm30sSKciiazJRP2c3NLuaE4hy sCoMbyX7KlYyfrmHUqJMSdXLr5lqn5/Bu+TiK+Qee1J4oBQh+kWZjtGUifYW0oeYDX2ORV oFHyC5ew9uQSkeLwgQpk2lb+eySNJy0fAwwQkmQfipxQAV/+gNj3t2swXD0Gl0zY7U3NUw 7fc70rOZCPRR1Sm33fPalWVJDQfSwH4WODNBahmZdyIRZU5eiZuHoghOXOyfPBDghhcFhT ZKIATD1lI47qB3FvBX15Ti/BUMjwM2GLDxoGpkb7NFWT1zmxp/DsA4bpDolpaw== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id C676F14D78 for ; Tue, 6 Feb 2024 15:53:25 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rXMoe-0003PK-6j; Tue, 06 Feb 2024 09:52:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXMoa-0003Ov-Vs for guix-devel@gnu.org; Tue, 06 Feb 2024 09:52:49 -0500 Received: from [195.15.247.228] (helo=rdmp.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXMoZ-0000mP-IN for guix-devel@gnu.org; Tue, 06 Feb 2024 09:52:48 -0500 Received: from [127.0.0.1] (helo=[IPv6:::1]) by rdmp.org with esmtp (Exim 4.96.1) (envelope-from ) id 1rXMoV-0002Mp-1w for guix-devel@gnu.org; Tue, 06 Feb 2024 14:52:43 +0000 Message-ID: <71603d0ee833e5859185b76c38e658279938754d.camel@rdmp.org> Subject: Re: Intermediate abstraction of system service configuration From: Dale Mellor To: guix-devel Date: Tue, 06 Feb 2024 14:52:43 +0000 In-Reply-To: <87jznhiyi6.fsf@zancanaro.id.au> References: <87jznhiyi6.fsf@zancanaro.id.au> Organization: DM Bespoke Computer Solutions Ltd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 195.15.247.228 (failed) Received-SPF: softfail client-ip=195.15.247.228; envelope-from=no-reply@rdmp.org; helo=rdmp.org X-Spam_score_int: 3 X-Spam_score: 0.3 X-Spam_bar: / X-Spam_report: (0.3 / 5.0 requ) BAYES_00=-1.9, RDNS_NONE=0.793, SPF_HELO_SOFTFAIL=0.732, SPF_SOFTFAIL=0.665, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: guix-devel-0brg6a@rdmp.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -6.59 X-Spam-Score: -6.59 X-Migadu-Queue-Id: C676F14D78 X-Migadu-Scanner: mx12.migadu.com X-TUID: 8prTwgr+kmoj Hello Carlo, On Tue, 2024-02-06 at 23:10 +1100, Carlo Zancanaro wrote: > The nginx{,-upstream,-server}-configuration records have fields for > {extra,raw}-content, which do allow arbitrary configuration lines to > be > added to their config. I think this is a sensible escape hatch to > have > to provide this middle ground. The problem is that some configurations, especially nginx, are sensitive to the order in which items appear and may require slightly intricate nesting, and you can't always achieve that with intermixed raw configuration sections. And those sections are not (easily) introspectable. > Andrew Tropin has done something interesting on the idea of more > free-form configuration for nginx specifically[1], but I don't think > that idea has found its way out of rde and into Guix yet. >=20 > > =C2=A0 I think that Guix taking the view of a configuration > > file as a nested set of string-named blocks containing > > lists of string-named, string-valued pairs would be an > > intermediate level of abstraction more suited to the > > Guix system configuration view of the world. >=20 > We'd have to think carefully about how the Guix model of > service extension would work with such an intermediate > representation. Agree that it would have repercussions throughout the package ecosystem. I would have thought that it would make things easier. You could argue that you don't benefit from the Guile syntax checker, but at the end of the day you don't find out you've made a mistake until you try to run `guix system reconfigure` anyway.