From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id QLygHFs/MWXzYgAA9RJhRA:P1 (envelope-from ) for ; Thu, 19 Oct 2023 16:38:19 +0200 Received: from aspmx1.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id QLygHFs/MWXzYgAA9RJhRA (envelope-from ) for ; Thu, 19 Oct 2023 16:38:19 +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 C9108541D4 for ; Thu, 19 Oct 2023 16:38:18 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Z/3vaPkR"; 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"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1697726299; 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: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=dI95WzqdwggX1eeJjU5gU0O2DHlJkENqycrXilay4tw=; b=WVZkZSmyL/yGHK/r9aJkJcTiBn9o4ZFpTxAYnWrlXTL2nvdp9fcBR5FLfJJXRCdEUD4VHN /BFyUJIFEawhnq2Gy7KqfzDT25oEkZ/4qwEqh5vPXx74fRGpa/ebBQMUFdRY8VwaUpUiZY JuOg7hF4mmJ1P+anc/4gCdySljry4pztHW9B+Of9o2dsy9FrxQAUhenpz08tfo95lUfrtx R2mObUgi7ovzin2J5yQQV1PJLNIoniJxuHR1o2utesOKU85dZYRIXXC6CM54sE8Ch4th5l 4Uj0fpEeJW8czEn6VX10sm/eriaxdH76EqaepMjpjzgU5JQBxdeI+TV9V+nF5g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Z/3vaPkR"; 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"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1697726299; a=rsa-sha256; cv=none; b=PU8pxmCIlkhkodU/uxvWTMhAkXnj7AW1e1OggQEHwY5cRoix9lJ+k14nMIvR9Djt9ADAyi JDBfT7gIh01F8QqjDHw/IM/VXbS89IZMlajATpVtrqamTIWzWTuHcH9l99Obfzy1xf1Oc2 FPRM6DPhp75u7Zx91lxG8VKPaKUHjG096DQYplafUQ6Aikhy0CQw6aOJo+0P7VfD4MvKu3 U5GnM47eKozKUK6jVIvZbyIMDj2D8yVSKJ/CEcXf1LIMhtLdPrkU0662Dd3BDKVQqgVVtx R2LBLXNtjiPBbhpVHS6Ai/Q6xNIv92daL/3UrKxsGdJqLtpRGaP1FEHjvJ5Z4w== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qtU8q-00087c-8p; Thu, 19 Oct 2023 10:36:53 -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 1qtU8g-0007yW-EM for guix-devel@gnu.org; Thu, 19 Oct 2023 10:36:43 -0400 Received: from mail-ed1-x544.google.com ([2a00:1450:4864:20::544]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qtU8c-0000aY-90 for guix-devel@gnu.org; Thu, 19 Oct 2023 10:36:40 -0400 Received: by mail-ed1-x544.google.com with SMTP id 4fb4d7f45d1cf-53e2dc8fa02so12242594a12.2 for ; Thu, 19 Oct 2023 07:36:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697726196; x=1698330996; darn=gnu.org; h=mime-version:user-agent:content-transfer-encoding:date:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=dI95WzqdwggX1eeJjU5gU0O2DHlJkENqycrXilay4tw=; b=Z/3vaPkR6ULQijJub9iYLxvYBtVaT+pQ4Wwl+dwSto8MbSPdS86Ic3Blremfs1LZF0 bxPkQLBeuq2HSC5rOd6l2Q9PW/WKZ3doT9tFmPg8+GVwtQAj8cWnG3q1woTEa1U3lDaB ZeL5X+EeNtrZerj28kNlRQVkvmnsZps9i/cEa+GqucxVdGLTSgjDD/O3fA7KpHPUTBDZ aD2hX6q5avJcZRrZEzUq4RpR+nA5DE2RM7O2WJ1PZu1v7AQ4eFjdw7jrXo/WDnwce8LA gZ5Wm4W7Ld9gXIBWEg0NZFUuI0+RD5fVWiZQOt7mZCyq6Rz6aRLbarV8g0l5hOYRhu8S wV3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697726196; x=1698330996; h=mime-version:user-agent:content-transfer-encoding:date:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dI95WzqdwggX1eeJjU5gU0O2DHlJkENqycrXilay4tw=; b=qrDEw8ujs5+xmuksI6CJ5GT04mB7TrBDWjng/+c/+wa6rspchWeBU3zQqdHF3QQC4R ieXV8xAnrwPsFKfxM3I8nVFSagnoEWNu7sA1uCk+o1wwtbvagVcS79yMsIvbPfGCliPJ h1lhw7MLCTI2yQxb0mm23Avjm1b2baqXA/+WQEazLf68wxX6oevqMUGuUQhVyVRPw1FX 1kMgUyvhG00ogmByVk/ev6hOnxZuUVvOvxfu+d4B+j2hqv6XxEDRVHJ9LBHh1u9s3esS hh7OBIDZyUHweBH3PsNsXfvMw7eDSXM9kR+2v2IaJQwWRdtDtUUEHTLy5ADGo3yLvqpz l7uw== X-Gm-Message-State: AOJu0YwDb92vcpzq5tYY+nJuGtonyz/DPNoNk+d4YCMCBY+4tNWoCmXQ KtVpgnN9SvHRjAa/lMT68mJAzGwKWLQYLQ== X-Google-Smtp-Source: AGHT+IFM5DZ+n/CPVe/szXUE4H7hGOVt01sqP13HTyguaFdZb2GKjE+pJHj4PIyaf4PWelgl28Ymlg== X-Received: by 2002:a17:906:fd88:b0:9bd:ff07:a586 with SMTP id xa8-20020a170906fd8800b009bdff07a586mr1787559ejb.68.1697726195561; Thu, 19 Oct 2023 07:36:35 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id 1-20020a170906014100b009bf7a4d591csm3742137ejh.11.2023.10.19.07.36.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 07:36:34 -0700 (PDT) Message-ID: <15a91f7c5fb5fce23d0863548f8a1ab39d91cb69.camel@gmail.com> Subject: Re-evaluating the practice of automating user configuration From: Liliana Marie Prikler To: guix-devel@gnu.org Date: Thu, 19 Oct 2023 16:36:32 +0200 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::544; envelope-from=liliana.prikler@gmail.com; helo=mail-ed1-x544.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham 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: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -9.43 X-Spam-Score: -9.43 X-Migadu-Queue-Id: C9108541D4 X-Migadu-Scanner: mx2.migadu.com X-TUID: YTXvANMayBeR Hi Guix, as we all are more or less aware of, Guix automates quite much of the user's configuration for comfortably hacking on our codebase. As has been argued elsewhere, both by myself and fellow Guix, this is not always a good thing. Let's start with the cleanest example of how to do things the right way: Our Emacs configuration is split across two files (one of which is a directory, but let's get back to that). One of them are the directory-local variables stored in .dir-locals.el, the other the snippets in etc/snippets=E2=80=93if you're using YASnippet, the former load= s the latter. I have no qualms with this being automated, as Emacs itself gives me plenty opportunity of opting out of it. I could declare any of the included variables or forms unsafe and ignore them in future sessions. Likewise, I can mark them as safe to affirm my consent that these variables be changed in /path/to/guix/checkout. None of this holds for the git config, which we install unasked in the working tree with a DATA target that we want neither distributed nor installed otherwise. This has led to confusion both in the mailing lists and the IRC on multiple occasions, so I'd propose we instead use PHONY targets for: 1. git-hooks to install the git hooks that committers need. 2. git-config to install all of the git config a. git-config-diff to just install the diff xfuncs b. git-config-format to just install the format block c. git-config-pull to just install the pull block d. git-config-sendemail to just install the sendemail block 3. git-fullconfig for both 1 and 2. Internally, these would still be based on the actual file names to get time-stamps to work. Thus, on a fresh pull or if you haven't pulled in a while, you can run either `git fullconfig` or any of the above to set things up. Incidentally, my .git/config currently reads the following: [include] path =3D ../etc/git/gitconfig path =3D ../etc/git/gitconfig path =3D ../etc/git/gitconfig path =3D ../etc/git/gitconfig So clearly, automatically hooking up these configurations could be done more cleanly :) WDYT?