From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id wOLlJtj58WRQ/QAAauVa8A:P1 (envelope-from ) for ; Fri, 01 Sep 2023 16:48:56 +0200 Received: from aspmx1.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id wOLlJtj58WRQ/QAAauVa8A (envelope-from ) for ; Fri, 01 Sep 2023 16:48:56 +0200 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 1E1E334174 for ; Fri, 1 Sep 2023 16:48:56 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=polidoro.io header.s=dreamhost header.b=1Evn+ivT; arc=pass ("mailchannels.net:s=arc-2022:i=1"); dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=2; s=key1; d=yhetil.org; t=1693579736; a=rsa-sha256; cv=pass; b=kqQGr4c96K3rh1At9t9ZEw9SAn7A3ify1HaFQf6MhpiZjhf5lr/JkRzITY9ucwT47Fff2J t/gbgr+8hQOWzuWhAQUY38UMJ5qsiUG0u9F3184I0n5TFWA1hINUSoUljvKjU7N/FxhTMu mqzl19BrD3aY4jtnoZJdfhPlPd1aaKGNeWD65aoBX67SAbbZX5r7deYKE+HrodMt12aM6M FBicKQfe6l9wY61FHspq+8qPekkTQ9V08VNXzMVu38BAmhNGDp2o9N7vDG7cT1cGwtVrm3 axH7OmCfGD9ly3qY5yWP57RHz0RdmxiiOfZG4h2FzjbLL0j1zE4EGCiYX9xu/Q== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=polidoro.io header.s=dreamhost header.b=1Evn+ivT; arc=pass ("mailchannels.net:s=arc-2022:i=1"); dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1693579736; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=4c1ivIQhM8IKFPJkW4auAM9sRABP5+P57H/buUNX+ac=; b=uVD5a3V+O5XlThAIv3g/vMdUvkn/hVZjZgCYexiiEvck5wnoYGLZZmVmYDZhERz4mWNKKk MpNO+M+sZdMCRF81Xcjyzhz8vhfIkLoz443+pEzRtXtXq0bZcxcbvwzGD/TdL9h1PSa5dl 16TZNP4RxON3PMQD/I9GDx05hQbkbYWJBBMHESpuUHCafpCDbBYWmMkAtguImVnJOFfQQe NUzazpqOy7SBsqLodAV/J5zwWrlXUJ63rmZf/N4OjzCoGl5RfhDQ5NtXZkWUbTcUe0y1+l UKP1o5MJ1t8Nkm6p6C6rYg6ujlM/B6gSsx6JOu2jHpQVeTt8vwBTNT+e53nZDA== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qc5Rl-0006NF-U2; Fri, 01 Sep 2023 10:48:30 -0400 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 1qc5Rj-0006N1-E3 for help-guix@gnu.org; Fri, 01 Sep 2023 10:48:27 -0400 Received: from antelope.elm.relay.mailchannels.net ([23.83.212.4]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qc5Rh-0008Uh-33 for help-guix@gnu.org; Fri, 01 Sep 2023 10:48:27 -0400 X-Sender-Id: dreamhost|x-authsender|peter@polidoro.io Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id C29A81012DC for ; Fri, 1 Sep 2023 14:48:20 +0000 (UTC) Received: from pdx1-sub0-mail-a213.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 458CC100FDA for ; Fri, 1 Sep 2023 14:48:19 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1693579699; a=rsa-sha256; cv=none; b=VHRoWbExcgOAw9nJGDRgP/WsGQZiLpZY3ibT2ta+RrvJYbGYoxnsP8m9RG+FfI5jh2DJoF hp64m8lytWqJTnyhqskbtg8+mmK1oC8i60F7qLBlMLniKbyAkEdpIaFR+2661EAYZ95dye ufX7rxmGDdtwd2lybHchSBtoTXnAyO/vEv6YqqQROZbXgEnnPl79pmrTHWN8dfwST1Qoww 4WE7/geV4L/t1GLDVu/0YwuH2NcouLypF4/MZFq3T0Wm743yqcDWEGxJATvvHDno49Z5ju De0R7sYM8lo9LEL5NloaWXD/c1OGQ6RMCF+/uJ8tvuiGZeIkqGRIoXkPb8WBvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1693579699; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: dkim-signature; bh=4c1ivIQhM8IKFPJkW4auAM9sRABP5+P57H/buUNX+ac=; b=DhbbxCZl4TUsmSQIU17IczjNnkWP8PY3Djx/S3zdpPZ+y0VMLTHD4gCu8ISV9ogAj8i3Af /D7/VTO3smUvCOsxNv8ZBUOnxvPSmm8qVO3jHMjMUBpMz1wpnwpX+1aHMDaG2L2N4IZKOv slOkkXB7aCZyJDWbi0kSrCbTU/kO9U4tA9y0H7i2WxhOa3s+cMRMxOaNr9m7RG8li2VGlB GUjIyvOAtri3GyfUao1sN6sq3vB56I+Vz4VioJXlyHcKAEp77VAcY+bmQ02H/SPxvlP+b5 QTBqmwa9GiaAy8NoU4SwOm+RIWOQ4rFGIrfOtyGR8YqDSvKBGO4KScCQ+DqLYA== ARC-Authentication-Results: i=1; rspamd-bfd6864c7-rr6lc; auth=pass smtp.auth=dreamhost smtp.mailfrom=peter@polidoro.io X-Sender-Id: dreamhost|x-authsender|peter@polidoro.io X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|peter@polidoro.io X-MailChannels-Auth-Id: dreamhost X-Whistle-Thread: 59aa8680418eb07f_1693579699490_2483438423 X-MC-Loop-Signature: 1693579699490:1815107273 X-MC-Ingress-Time: 1693579699490 Received: from pdx1-sub0-mail-a213.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.117.184.116 (trex/6.9.1); Fri, 01 Sep 2023 14:48:19 +0000 Received: from minotaur (unknown [206.241.0.254]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: peter@polidoro.io) by pdx1-sub0-mail-a213.dreamhost.com (Postfix) with ESMTPSA id 4RcgrL6FQcz7j for ; Fri, 1 Sep 2023 07:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=polidoro.io; s=dreamhost; t=1693579699; bh=4c1ivIQhM8IKFPJkW4auAM9sRABP5+P57H/buUNX+ac=; h=From:To:Subject:Date:Content-Type; b=1Evn+ivTsjg0AqhhXb5iJJ7mgR4tXDgA3488cIj9CBjkK80Pkn2IgSziHUCqtoDUE LnGnIDqazSzQYnrt0NIKGC6A/m7PiTk4Zbwa18/0CE1LiWKuadtFuV0OoNk07ScJFA m1qBqHv5DT/WBv/tSFn7XnKYXIoHNVdheJN8RYQ6ctaFgauFSQQ0hEHb9T7V8IrRdO Gmd41NTFenp04NEBwNLErlNxLj2Rh8TCH2aVZYyCr78juVFPEqvBbZ/e22krXN3r1V k3mjdE/okHxT6x5GdJL9zaxra4Gt00LbOtMqEAnwW2rdrehIZ0C1RjnahCDzUbScgq 9hbEZ5nic2XEg== User-agent: mu4e 1.10.5; emacs 28.2 From: Peter Polidoro To: help-guix@gnu.org Subject: Project Documentation Workflow Date: Fri, 01 Sep 2023 10:18:56 -0400 Message-ID: <87r0nic5lk.fsf@polidoro.io> MIME-Version: 1.0 Content-Type: text/plain; format=flowed Received-SPF: pass client-ip=23.83.212.4; envelope-from=peter@polidoro.io; helo=antelope.elm.relay.mailchannels.net X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_BL_SPAMCOP_NET=1.347, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -7.66 X-Spam-Score: -7.66 X-Migadu-Queue-Id: 1E1E334174 X-Migadu-Scanner: mx2.migadu.com X-TUID: klF3nOyHipft Hi, I am looking for advice about the best way to create a documentation workflow for my projects. Maybe using Guix is the best way to solve this, maybe not. I have a set of projects with a common theme, say each project is a circuit board that I have designed. Each project has its own git repository, containing the project files and channel.scm and guix.scm files to create reproducible development environments. For each of these projects, I would like automatically generate project documentation. Some of the documentation information will be the same for all projects, some will be specific to each project. For the information that is common to all projects, I want to be able to store that in a single location so each project can reference it and have access to the latest updates. For information that is specific to each project, I want to store that inside each project directory. I could solve this using Git tools, such as submodules or subtrees perhaps. I could have a repository that is the documentation skeleton and each project repository would have a reference to that skeleton repository. Then I would probably need to write some script to combine the local project files with the skeleton files to generate the specific project documentation. I am wondering if a better approach might be to create a Guix package containing the documentation skeleton and each project inherits that package and applies local changes before generating the project documentation. I have not yet used Guix home, but perhaps that can be used for projects as well as home directories for such tasks? Do any of you do anything similar and have any advice about the best way to organize such a set of project repositories with shared information? Thanks!