From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id IDCpOJvvCGEuGwEAgWs5BA (envelope-from ) for ; Tue, 03 Aug 2021 09:26:19 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 4GQ2NJvvCGG2QwAAbx9fmQ (envelope-from ) for ; Tue, 03 Aug 2021 07:26:19 +0000 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 0B6A4193CF for ; Tue, 3 Aug 2021 09:26:19 +0200 (CEST) Received: from localhost ([::1]:37362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mAooc-0007Um-2Q for larch@yhetil.org; Tue, 03 Aug 2021 03:26:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56026) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mAooM-0007UI-Ns for guix-patches@gnu.org; Tue, 03 Aug 2021 03:26:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:56448) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mAooM-0003uT-GL for guix-patches@gnu.org; Tue, 03 Aug 2021 03:26:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mAooM-0006po-AH for guix-patches@gnu.org; Tue, 03 Aug 2021 03:26:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48934] [PATCH 0/2] Some improvements to (gnu services configuration) Resent-From: Xinglu Chen Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 03 Aug 2021 07:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48934 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Maxim Cournoyer Cc: 48934-done@debbugs.gnu.org Received: via spool by 48934-done@debbugs.gnu.org id=D48934.162797551726219 (code D ref 48934); Tue, 03 Aug 2021 07:26:02 +0000 Received: (at 48934-done) by debbugs.gnu.org; 3 Aug 2021 07:25:17 +0000 Received: from localhost ([127.0.0.1]:39761 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAond-0006op-1e for submit@debbugs.gnu.org; Tue, 03 Aug 2021 03:25:17 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:42058 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAona-0006oR-I6 for 48934-done@debbugs.gnu.org; Tue, 03 Aug 2021 03:25:15 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1627975504; bh=RIvz+KxRbzakHDSngKJ/yugtZ23qPmVrerux05pCj38=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=GURqGGKsOUzxih6dx7xdGWrzl8U8PFVLLUpih+rsNlef7YWRju+/sbvcHph1aQFyg 0r/pog6l0HoQGG1iUWc2lQr31ovRWypJwIztgNL5t/L2rRjP6wASbfIopMps6c381G grx8AjO2OjGC1rQmDoK0cXH4755N5DxL3+ja17q8= In-Reply-To: <87eebb908c.fsf_-_@gmail.com> References: <9de0174c0818edd7c3f1f58a264a6ea3c5c3be50.1623243063.git.public@yoctocell.xyz> <87eebb908c.fsf_-_@gmail.com> Date: Tue, 03 Aug 2021 09:24:46 +0200 Message-ID: <87fsvruh1d.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1627975579; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=KW36BuW82KNjMUE7Ai+5aDlaJ9/YpiL5W6dOILHPwx8=; b=Xn8uYhlV7fF0GPDrrYC2lgk5i3J0jp1cmhwZaILibBfVG1uZ8jaYIlxVpi45Bla5M5lXJo WM0Ntqmu+NrFkmT9hnFgAHIbi8Upq3rP19vAJ7Z5qf+F0aDOx1k/HXAp+aJwnMkb/fpTGN BRliAsGQJwleRVZwDq7NE+ZBBs1ATkxF34obVdyLWaTWNO0Cfzt9OibyJBEqFl070oxuuj ftOVhj2VQ1pSQfj+o2RQ9g+ufiwF0ZqlliEezGiUvLguubVNG5FztgX/ObMLrA/Fb+rk6Q Fd/0U3rP923a3qyeO9biTaAUV6huz//Hp1omswH+FWXU2aqOkCFp0hnKemfryg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1627975579; a=rsa-sha256; cv=none; b=Y7lm99sT0Qhywuu8ER1r4pQix3Xvvvkz3M9VvdMCLbfW1XyUqy61BSBQK2HchEZDzQqjiK wXX1DZ8i24EQtUEWUypar8sO42vUpN5rNnyidiKq7PLc4wtV2/y+LEaCa7MwQ7GeA4K84g N4xxqoKOlHmkOb1DxRPnt4iwAQuj2/yd33y3uyLd4XxfmHEs9YZDmlQ4MPuuFI6ZaU0GoC aWj6KSuJMXmc7IWdhcG/zG8kR/s5+GlWkmgIsvRXkrQl+qUn71DARadudfnsHmYq9KPwOf Yw8uNfH19DJgcrSs2MEUgSIJ/jpk4fU6uDGLzdmMh5QdRBkesbYX6xAqZabWjA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=yoctocell.xyz header.s=mail header.b=GURqGGKs; dmarc=fail reason="SPF not aligned (relaxed)" header.from=yoctocell.xyz (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -3.41 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=yoctocell.xyz header.s=mail header.b=GURqGGKs; dmarc=fail reason="SPF not aligned (relaxed)" header.from=yoctocell.xyz (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 0B6A4193CF X-Spam-Score: -3.41 X-Migadu-Scanner: scn0.migadu.com X-TUID: crGCb/UiNPir --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Mon, Aug 02 2021, Maxim Cournoyer wrote: > Hello again, > > Xinglu Chen writes: > >> * gnu/services/configuration.scm (generate-documentation): If the default >> value of a field is a package, show the value of the =E2=80=98name=E2= =80=99 field of the >> package. This might not be the correct name in some cases though. > > Here also, I've edited the commit message like so: > > services: configuration: Derive the default value from the package vari= able. > > If the type of a configuration field is a package, show the name of its > package *variable* as the default value. > > * gnu/services/configuration.scm (generate-documentation){show-default} > {package->symbol}: New nested procedures. Use them to format the field > entries. Thanks, I should probably re-read the manual. :) >> --- >> gnu/services/configuration.scm | 12 ++++++++++-- >> 1 file changed, 10 insertions(+), 2 deletions(-) >> >> diff --git a/gnu/services/configuration.scm b/gnu/services/configuration= .scm >> index abcbc70520..99687d065a 100644 >> --- a/gnu/services/configuration.scm >> +++ b/gnu/services/configuration.scm >> @@ -252,12 +252,20 @@ does not have a default value" field kind))) >> (configuration-field-default-va= lue-thunk f) >> (lambda _ '%invalid)))) >> (define (show-default? val) >> - (or (string? val) (number? val) (boolean? va= l) >> + (or (string? val) (number? val) (boolean? va= l) (package? val) >> (and (symbol? val) (not (eq? val '%inval= id))) >> (and (list? val) (and-map show-default? = val)))) >> + >> + (define (show-default val) >> + (cond >> + ((package? val) >> + ;; Maybe not always correct. >> + (package-name val)) >> + (else (str val)))) >> + >> `(entry (% (heading (code ,(str field-name)) >> ,@(if (show-default? defau= lt) >> - `(" (default: " (cod= e ,(str default)) ")") >> + `(" (default: " (cod= e ,(show-default default)) ")") >> '()) >> " (type: " >> ,(str field-type) > > I've found a (rather hacky?) way to derive a package's symbol name > instead of using its name, which eliminates the risk of a mismatch, > using such procedure: > > --8<---------------cut here---------------start------------->8--- > @@ -252,6 +254,21 @@ does not have a default value" field kind))) > ;; A little helper to make it easier to document all those fields. > (define (generate-documentation documentation documentation-name) > (define (str x) (object->string x)) > + > + (define (package->symbol package) > + "Return the first symbol name of a package that matches PACKAGE, els= e #f." > + (let* ((module (file-name->module-name > + (location-file (package-location package)))) > + (symbols (filter-map > + identity > + (module-map (lambda (symbol var) > + (and (equal? package (variable-ref va= r)) > + symbol)) > + (resolve-module module))))) > + (if (null? symbols) > + #f > + (first symbols)))) > + > (define (generate configuration-name) > (match (assq-ref documentation configuration-name) > ((fields . sub-documentation) > @@ -270,14 +287,21 @@ does not have a default value" field kind))) > (lambda _ '%invalid)))) > (define (show-default? val) > (or (string? val) (number? val) (boolean? val) > + (package? val) > (and (symbol? val) (not (eq? val '%invalid))) > (and (list? val) (and-map show-default? val)))) >=20=20 > + (define (show-default val) > + (cond > + ((package? val) > + (symbol->string (package->symbol val))) > + (else (str val)))) > + > `(entry (% (heading > (code ,(str field-name)) > ,@(if (show-default? default) > `(" (default: " > --8<---------------cut here---------------end--------------->8--- Cool, that looks like a better way than just getting the package name. > Tested it to generate the new Jami service documentation, and pushed as > commit 8e1f94421873777c6bb0b83daa4f81cbacc8b3ff. > > I think (guix services configuration) is starting to look good! Thanks > to your efforts toward improving the module. You are welcome, happy to help out. The next step would probably be to automatically generate the docs when invoking =E2=80=98make docs=E2=80=99. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEI7z4VHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5Vl0QAIf62F0s4sL92RGe1ffakRjO7PLd dOKiCgSh2gMeyIm3rYBsHLZ5s2KKyuyB9kCavXSUoCjvdGCdZolD+dHfJeE85Pzi srL8HmtZ7Fd5sE0YQcQFF1hcV7y4tvRmAqIHc30wn8QcU51haVgdie0E2suKECZp /vz5GIyMQFWdRTA4TMfYZ9qOWAfLMpsJfWDLXhQtO7ZBgxwxRFx1vm6TeOH5YYYj Vx1leFp+WeO4JGUVI0soTa4VXB/GC+QLSXHmmFihPvaU8VBvWENW+A9lVrc+eeUb 9TfWE6NHUyDc0uwB5zajZPreLhEZy7jaFRjuq0N9V0O03HuFlbiZCF0L5IelUG6/ 26COz08wUBCihO/8rWawWXl1aPo6BFd8jmuMhLRimGMxzH0/xCDNtcJPSxjGuUW+ LKSp9y3cDbeESeMocW3vwnP3KOuRjx04mXcA+kwHB/FvifIMJAQNRMRa1lq0gjov iweKsSD9xzCObKJ2wAMbBsORZ+TyumHmDHdhTTWQCaqpTkqIiGYpfKDvvrJKrwlG oTVM0KnHZ8fGgBakTfeAUF+3F19s3KGQCCSGaV5x9W+wArxrei6HxHMCOjINmn/R C/yTXdEpMlwC8Np+oRwW6Yb//XQdYgltSKkYEytaj1yhfXy4eHOWjO1jvUM8f10n bkvcReGLpHH5aSGN =iO7/ -----END PGP SIGNATURE----- --=-=-=--