From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id UPlWBXaoTWNGsAAAbAwnHQ (envelope-from ) for ; Mon, 17 Oct 2022 21:09:42 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id MAiMBHaoTWOaNgEAG6o9tA (envelope-from ) for ; Mon, 17 Oct 2022 21:09:42 +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 AA1F417F5C for ; Mon, 17 Oct 2022 21:09:41 +0200 (CEST) Received: from localhost ([::1]:58546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVUa-0001gA-2U for larch@yhetil.org; Mon, 17 Oct 2022 15:09:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59946) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVTr-0001e2-3w for guix-devel@gnu.org; Mon, 17 Oct 2022 15:08:55 -0400 Received: from mail-ej1-x644.google.com ([2a00:1450:4864:20::644]:38672) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVTp-0000uN-9R for guix-devel@gnu.org; Mon, 17 Oct 2022 15:08:54 -0400 Received: by mail-ej1-x644.google.com with SMTP id fy4so27104387ejc.5 for ; Mon, 17 Oct 2022 12:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=Ysug0gTV0o3/L9Toukel4uXuNvHLWwAFubrmn3zt32w=; b=AK+d0D8XLNZaVPnN5K3ysCQs2UloEEBwY16dV77ctKIAyJbzITviS7CxPXGoq8zME/ at5xzdsm87Pj/E0tUIlmsy16NrDkMZVf/7mW9X2whShzu5bLD08l8TwMFmfkiYOON/jX uxwq80yDLkk3bbxlZJVil7OeL1i7dU4RASr8C9/FYduFmHb3izr16N+xL7UMOFy77NqF axSgmr9gBYWlsqDA1MHh3cj4Gc7HiZd342laJEm6HrLPOxTWbkKj6IsiMxiyL7ka8Zkr 770RqjlNl5YrxNdMHTEtiKNG1r/I5+ofPQxbWsT+bABkvnXeESG4AOcHmkxQM0DHCJmf 6HgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Ysug0gTV0o3/L9Toukel4uXuNvHLWwAFubrmn3zt32w=; b=DBarODDo7FREexlShWLt/Z1bvPzoq++4ENlLhqdZulz1jEVIu2eEYaeCAP6KvnVBAW SLPF9E9oXHoZJl6fZp2HDdCoQwvQuTHadlS3PagcvHs7wPgrkjstGhGmwZGjryuDiEhn tGf4RO+g1akZ9v63wQh+Lbe3wmKnm0uegTckV8KKDtru/piCWLRVRO6bKWjvEmfEPq+G igSmxGaFjNllSp0r6SbPJuM1bjCBsL901Q8bzH9A3wB4Cd/kHTgKyfmIV2we4PXsUrdq U7g63cG1tUuESoO5NT30R0qnnVjqsh2rrIkYsO0AurMpEm+TacGHn0sc7d1+dk0+wtZA Hlcw== X-Gm-Message-State: ACrzQf0sjYJJSlNeVlmQ1yLYBrT21xTPYc9VLOBk2jgUKqoKnUZvRqp3 baTV99+aKZ1VrNo9UpsXD7U= X-Google-Smtp-Source: AMsMyM4V68hVpMfNS4H9BmDSal625lyKYiQNaqS9X1xjmSPkw0rO0vbjwIs4jb6jpfQ83fahFcdmLQ== X-Received: by 2002:a17:906:8479:b0:78d:cf17:2d70 with SMTP id hx25-20020a170906847900b0078dcf172d70mr9766600ejc.319.1666033731678; Mon, 17 Oct 2022 12:08:51 -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 y5-20020aa7ce85000000b0045c72bba0bfsm7864038edv.4.2022.10.17.12.08.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:08:51 -0700 (PDT) Message-ID: <4cdc972eb73c91a9c1de7a620bb9228270cb4a58.camel@gmail.com> Subject: Re: Guix Goals: One Hackable Developer Tool To Rule Them All From: Liliana Marie Prikler To: jgart Cc: Guix Devel Date: Mon, 17 Oct 2022 21:08:49 +0200 In-Reply-To: <20221016150347.GB27359@dismail.de> References: <20221013010703.GB27375@dismail.de> <866dce757bafc9e92c64582b3bc3b50a792c4e7e.camel@gmail.com> <20221016125442.GD2722@dismail.de> <441e40f1ca4646bf6078797690167a9ee57a5ca0.camel@gmail.com> <20221016150347.GB27359@dismail.de> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.0 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::644; envelope-from=liliana.prikler@gmail.com; helo=mail-ej1-x644.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" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1666033781; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=Ysug0gTV0o3/L9Toukel4uXuNvHLWwAFubrmn3zt32w=; b=BdDxmmBKmJ2Td+S23BMcMyaysp2DfRwnmoCcanFWRnK4e2dvxBW1tOmkEudQT2WVoT5Tnb BT6KYR32L+9K7twUXRcwGM9dFOuW5uWn7Q3tpu3MQkG3OmYrpp7MHkVsrlw5PmV/6oT5Yr VamfvIQWNuspGX+HvfMglc/7TaitcSVUcM0Of5el7LA5JNCHqfQYDgP0gFgVHialBqevfr qVRvjfVrhHtZpP5DyvFALVYnwWNpHPlrasS/RDf76wgV8Nk2d4hHBNHQga50m15xG7uUL0 6/jM8xMeMZGFBusRiTtZTwbS/XKdO6sYg45aME8kKp/DxLhVhWbH9674+pfKwg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1666033781; a=rsa-sha256; cv=none; b=EO6A1hm+veH11cd1rmMvsAborZWHvhiROT+fl9oDVEURg6g00Dp15HINyH4hnBrc318yAM tgjXilr5TiyP/NW2izdK3/DMoXAY6wGKIYDcZAFlXbZUOGmwKFVXGQOLbEGLrBiMAm8WX5 r5d0LV4uTqHAlLoPBAaizksLqXGzYn4P+/Fg7cdqDeW0nVepSZMvW67v2x0NjZ/imA+LJC HR6iTeW53YiJEMx5Q554zfENMzTJzowsJnQPOTCwkPHpOf5vUnU6QATt1f0igzfOjiWeM6 fmZkdLl/7bh00rhmVvWLlZFPIuxk027DRU772fpcs1nZJtDNE8fUV48ScnsH0g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=AK+d0D8X; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Spam-Score: -2.42 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=AK+d0D8X; dmarc=pass (policy=none) header.from=gmail.com; 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" X-Migadu-Queue-Id: AA1F417F5C X-Spam-Score: -2.42 X-Migadu-Scanner: scn1.migadu.com X-TUID: Y18MgRQp9l6c Am Sonntag, dem 16.10.2022 um 15:03 -0500 schrieb jgart: > On Sun, 16 Oct 2022 20:50:47 +0200 Liliana Marie Prikler > wrote: >=20 > > makes your goal a somewhat stupid one if you don't actually specify > > what it has to do on a per-project basis. >=20 > hi lilyp, >=20 > That's a bit harsh to say that my idea is "stupid" even in light of > your qualifier. >=20 > If you read the previous thread you can see some of my proposals on a > per language basis. For context, the "goal" here refers to the individual goal, e.g. "format", as specified in the initial post. If it only ever covers the most common case per programming language, that is a very stupid tool indeed. > There's absolutely no requirement for me to work out the whole > solution just yet on this email thread or to offer per project > details. I'm not at the stage of proposing per-project ideas. I'm > just casually brainstorming with those colleagues who want to. If > that's too stressful to do then anyone is free to opt out of the > conversation. There's no need to call it "stupid". Instead, ask me to > expound on it in a friendly way instead if something is not clear or > not yet stated. I am insisting on this notion of per-projectness, because it is key to you understanding that you are indeed trying to construct a build system.=C2=B9 Perhaps a very crude one, but a build system still. Your logical foundation are the following statements: 1. Every project written in L uses T for a specific task. 2. P is written in L. 3. Therefore P uses T for that task. By constructing a per-task mapping of L ~> T, you can offer a unified solution. The truth, however, is more complicated. 1. Every sufficiently mature programming language L has at least one task such that at least two tools T, T', T !=3D T' are used in different projects to achieve it. 2. There exist projects that are not limited to a single programming language. You can of course try to be smarter than that and try to figure out which tools to invoke based on the existence and contents of certain magic files, but note that at this point you're doing significantly more work than in the declarative approach you rejected. > > I don't think it'd be that.=C2=A0 Note that you have the full power of > > Guix/Guile at your disposal, so you can encapsulate much of it in > > channels.=C2=A0 Is it a good idea to do so?=C2=A0 Hell, no.=C2=A0=C2=A0= =C2=A0=20 >=20 > If Guix channels don't give users enough > freedom/hackability/extensibility > to do what they want then maybe that's something that should be > looked into. I would consider it a bug, and a limitation of the > system. There should be enough trust in our community to allow users > to hack channels the way they want and to contribute back to GNU Guix > proper if they so choose.=C2=A0 Restrictions shouldn't be built into the > system to prevent users from doing x, y, z with regards to extending > it.=C2=A0 There should only be trust regarding extensibility. That's what > made Guix stand out to me from the start. If that is not the case > going forward then I will lose hope in Guix and would rather invest > my time chasing that dream elsewhere. The extensibility thesis that > Guix subscribes to (atleast to my understanding) involves trust in > its users instead of giving them a limiting DSL and telling them what > they are and are not allowed to do with it. >=20 > I came to GNU Guix because of this freedom of extensibility and these > ideals that I perceived in channels and in the system as a whole. > Contributing back to upstream not a limiting feature that is > "designed in" to Guix in order to enforce it. I don't want to be > limited that way. This trust has to exist if it wants to cooperate > with the Schemer spirit. I believe you're attacking a straw man here. I'm not telling you that you can't run with scissors, only that it'd be unwise if you did. > > Refusing to use the tools your colleagues are using to instead hack > > on your own is not a recipe for success. >=20 > I'm currently using my colleagues tools extensively. Not sure what > you mean here... This is calling back to the main motivation outlined in the initial post; rather than invoking the linters, formatters, etc., you simply wrap them in Guix. It is almost always preferable to provide a solution that works even for those who don't use Guix =E2=80=93 for example= a "make indent" rule, etc. Cheers =C2=B9 Also note that pants, which seems to be a source of your inspiration= , describes itself as a build system. Compare the already mentioned GWL for a build system already based on Guix, albeit focused on scientific workflows, and potato-make for a simplistic Guile-based build system.