From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id aAipHSTAG2TPDgEASxT56A (envelope-from ) for ; Thu, 23 Mar 2023 03:57:40 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id aL12HSTAG2Ro6gAAauVa8A (envelope-from ) for ; Thu, 23 Mar 2023 03:57:40 +0100 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 52DA011696 for ; Thu, 23 Mar 2023 03:57:40 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pfB8Q-0004xe-0k; Wed, 22 Mar 2023 22:57:02 -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 1pfB8O-0004xR-7w for guix-devel@gnu.org; Wed, 22 Mar 2023 22:57:00 -0400 Received: from mail-qv1-xf30.google.com ([2607:f8b0:4864:20::f30]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pfB8M-0003Bz-Hj for guix-devel@gnu.org; Wed, 22 Mar 2023 22:57:00 -0400 Received: by mail-qv1-xf30.google.com with SMTP id jl13so13404725qvb.10 for ; Wed, 22 Mar 2023 19:56:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679540217; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=1F9EJg86svdeTqtswY8PKILTRS9Ok6iX1mropTu9fzk=; b=jHwz8soj9MVMCbPxOwgLBV6iUVYbKZNPMth1UCnzfrnAoladiN5KJ3fkkpfLnbICBl bnU3ay7zT6I05WITv/RQyHk5/8rHDXcaSEn5h61tKmMKvVZMN0ujXYNQo4+9G8Zb57fx z300OFQwYyuPCn+7g+M7fLYHdW36z8XRq60F2P47trqmu50X0UaZlP/isxp4eN/EEvA9 DyGTjNyGX+nPhPKN4H1Ecq4BwiHHocYZfi2WoP2UwewctGQFIW+qK1cznrHkQr0TokwI gaTIjsLj4pE7xtDInMCUNTRtaTS3obZPBiZhORTC+sy+5D8aX/XVbJ52vk7fuiBh3qXu FcXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679540217; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1F9EJg86svdeTqtswY8PKILTRS9Ok6iX1mropTu9fzk=; b=tXwAF4JDYXUuNeD53JbMdW4z2OxYE0s8bPJZDPX9c/TkqhY9Dc0Ysr+w7quoaLRgTW fphNFBV7iWuQJc1X3cRE71X3c/6z8eJ0EuOJSpayAr7TNIr3VaD30b/RHuQAuEE44uYO HBQwEpSWtmqO/8E1iW+NprNz/Suz58OPZEArDMefHAjjys53DVlqxiujL/vfHcjrlqON CmhAJFKWoTaNHgsr6oafq16VNdxDYJyXn+oviwP8CvuQAYeawlL9d9FtgdUtODtshEUE 88Cc50ist08sPaHF4n2JQ0kPeARYN4xj89FElC8AzNE1v7rpIWks5dmTvz8XgaM4nuz9 CpgA== X-Gm-Message-State: AO0yUKWYeK4dlGgsfuGmfzFRBhiKDoTTvYJ8me/ClLKHtBd50Y0hCPFa FctX8VwD8UugO1SblQ19Uj/UD10WX/zgKQ== X-Google-Smtp-Source: AK7set/yKjG24TjzrcLQNO+grS6O/7+xDXLZWjcCmGIxrMyVdoqvGBdMtPN4Rzpr9mHFKux6Z/AhKg== X-Received: by 2002:ad4:5961:0:b0:5c5:6e60:eacd with SMTP id eq1-20020ad45961000000b005c56e60eacdmr7365526qvb.28.1679540217090; Wed, 22 Mar 2023 19:56:57 -0700 (PDT) Received: from hurd (dsl-10-130-195.b2b2c.ca. [72.10.130.195]) by smtp.gmail.com with ESMTPSA id s20-20020a374514000000b00742bc037f29sm12421528qka.120.2023.03.22.19.56.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Mar 2023 19:56:56 -0700 (PDT) From: Maxim Cournoyer To: Ricardo Wurmus Cc: guix-devel@gnu.org Subject: Re: more package transformations: overrides References: <87y1nphzqy.fsf@elephly.net> <87bkkkhd4l.fsf@gmail.com> <87pm90ikou.fsf@elephly.net> Date: Wed, 22 Mar 2023 22:56:55 -0400 In-Reply-To: <87pm90ikou.fsf@elephly.net> (Ricardo Wurmus's message of "Wed, 22 Mar 2023 21:36:52 +0100") Message-ID: <874jqcfa4o.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::f30; envelope-from=maxim.cournoyer@gmail.com; helo=mail-qv1-xf30.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 ARC-Seal: i=1; s=key1; d=yhetil.org; t=1679540260; a=rsa-sha256; cv=none; b=eFe21jDjsTy8EeLXYN8XBt0+ExSnbf4hgkT0YimJR11r0a6wFdCHlqc1vXyD0/nKPsGJ+B 7YR5ZsthNAWl2FcCqjPvYkFIJGW7N+sPfhD54HfxtSPVJXwDwtcp9y7WEuVsq1oQq5uYW1 aUAwYFgARCaGewgfTkvdQTdBRYLPKjTbFb9nwcjrfZmbREp6lyr/l0sAAL7Ylrp/EzZVGO bdHM0LfnWH0XPseuHvlxswLQEhqF3xMAGaXl8mi5tfKJepKVrG5m6rq5PvtBTzUIMG4Qyi mIinsU81Ius/qfkpySpfqM9vQ2aJNdYL0FGYM1ayRGD0hsOcWC1j6AecMysRYw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=jHwz8soj; 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1679540260; 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=1F9EJg86svdeTqtswY8PKILTRS9Ok6iX1mropTu9fzk=; b=BrF/SWlv/yUJ8jsaQCmkJNWuq2yDvtMTuFz5pgL/JeWuMR48NU3bmeqAZYGx7winFOOsJB S6/NqO6HzPn9ZLlt0/fCkuC+4YqRZL9h24HIAX9SYYVnN30jy317vPwaHeTMnblbM6uGoz /xbl2KYdotsNP9StDONZWqxPZqsUgm+aIV7ogpfI31d0NAc6jzPUsGn5nHyDVp57hmTHJj zjuTsmVhqdUXtL8Y9hOfFT6IjCc3BymwnJCupIzNn37MWg2lRqLMnq8ZqPm+DqudZ9WkD6 evilAPLHjpsYXoDSDCnEu2qq6CaAsK2KvQiZdG/pWYVX5hgfEwypx/HQ6m6UkQ== Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=jHwz8soj; 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-Scanner: scn1.migadu.com X-Migadu-Spam-Score: -4.98 X-Spam-Score: -4.98 X-Migadu-Queue-Id: 52DA011696 X-TUID: uvQgooflU/VL Hi! Ricardo Wurmus writes: > Maxim Cournoyer writes: > >> Hi Ricardo, >> >> Ricardo Wurmus writes: >> >>> Hi Guix, >>> >>> when using package transformations the command line can become crowded >>> very quickly. Sometimes I would like to be able to provide a file >>> containing a set of alternative packages that are used recursively in >>> the package dependency graph, as some sort of override. >>> >>> What do you think about extending package transformations to allow for >>> reading override packages from a file? The replacements would happen by >>> matching package names, so a package named =E2=80=9Cpython-pytorch=E2= =80=9D in my >>> overrides file would replace the original =E2=80=9Cpython-pytorch=E2=80= =9D package in >>> the input graph. All these packages would be applied as overrides >>> together. >> >> Would you not be better off using a manifest in this case, using the >> Guix API to apply the transformations? > > I do do that, but I find that this is quite a big jump for many people. > We have people who know how to add channels, or build a small custom > library by use the importer for simple packages, but who shy away from > using transformations in code. > > Considering that the transformations API assumes that you understand > that higher order functions exist and what to do with them, I think it > would be good to offer a slightly less advanced method of overriding > packages. > > Manifests can do anything, but this also makes them rather intimidating > for many of my colleagues. OK; then my question would be: why stop at transformations? Perhaps we could simply have a way to feed arbitrary guix command line arguments from a file, e.g. --8<---------------cut here---------------start------------->8--- guix shell --args-file=3Dmy-arguments.txt --8<---------------cut here---------------end--------------->8--- where my-arguments.txt could contain anything, e.g. --8<---------------cut here---------------start------------->8--- -CN --with-source=3Dpackage-name=3Dsome-url [...] --8<---------------cut here---------------end--------------->8--- Would something like that help? --=20 Thanks, Maxim