From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id SF59BMK62GFoTQAAgWs5BA (envelope-from ) for ; Fri, 07 Jan 2022 23:12:18 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id UKLoOMG62GHwrAAAG6o9tA (envelope-from ) for ; Fri, 07 Jan 2022 23:12:17 +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 6486D3B9F5 for ; Fri, 7 Jan 2022 23:12:17 +0100 (CET) Received: from localhost ([::1]:46358 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n5xT5-0002Xl-96 for larch@yhetil.org; Fri, 07 Jan 2022 17:12:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n5xSt-0002Xa-2A for guix-patches@gnu.org; Fri, 07 Jan 2022 17:12:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:53110) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n5xSs-0004dh-Pf for guix-patches@gnu.org; Fri, 07 Jan 2022 17:12:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n5xSs-0005y2-CV for guix-patches@gnu.org; Fri, 07 Jan 2022 17:12:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#51838] [PATCH v8 00/41] guix: node-build-system: Support compiling add-ons with node-gyp. Resent-From: Philip McGrath Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Jan 2022 22:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51838 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 51838@debbugs.gnu.org, Timothy Sample , Pierre Langlois , Jelle Licht , Leo Famulari Received: via spool by 51838-submit@debbugs.gnu.org id=B51838.164159348822889 (code B ref 51838); Fri, 07 Jan 2022 22:12:02 +0000 Received: (at 51838) by debbugs.gnu.org; 7 Jan 2022 22:11:28 +0000 Received: from localhost ([127.0.0.1]:46013 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n5xSK-0005x7-42 for submit@debbugs.gnu.org; Fri, 07 Jan 2022 17:11:28 -0500 Received: from mail-qt1-f172.google.com ([209.85.160.172]:41821) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n5xSI-0005wq-4E for 51838@debbugs.gnu.org; Fri, 07 Jan 2022 17:11:26 -0500 Received: by mail-qt1-f172.google.com with SMTP id f17so4424469qtf.8 for <51838@debbugs.gnu.org>; Fri, 07 Jan 2022 14:11:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=K6VucuEzSB1QbeKvjKoA42xVSIg2rE/QL+j1UCjNFK4=; b=fwtsAKkx+p2JmKxw+It0Nx3jaN5mhwgWCjQtG12jzQjcP7b7ULh7yx/dLJVqhWYG6E g6Y+NoD2WeCpooSp7P+7sKleNoawWDvd5cXilZKsZO88GUAfdHq/62w8fVqGwJbAo2u2 lmjZD5eFg+IBl8xaxjvwJ+OnS9CqrZ8qogHmInizFWgjD3QXZkW/WKhcDdvEpBspxzvm +3qONmHtFq1jW0VHG9j1pRSsv0NEwbPScciag0jcvcDxUJxDYJCqC4+4xtnuhGzs3QW5 U9jIXkyYUGeUmLmXSigXNVY7B0t/NzsOk+C9dvFkDLd4SBsU1ZAvz0ZHWeCIj2Cp3UL3 3eBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=K6VucuEzSB1QbeKvjKoA42xVSIg2rE/QL+j1UCjNFK4=; b=Bi/GrSqrCwCY/mh8UqM9fKJJMOc/nNMZpdgP6+eK1YjKEr3klpPtMsTOtDPUqklf7e dwTkUneuBuqdrCEiDYKplmuttYTyDPZd9dTAiPa0rA6z5foTV84Ow4yZxdFTha9Qk6tK /I/gmASfswg4NbFtMa2ewmyzCmzX1Nhg2qM6wvAyi9e9tji4reP36SdAbSJwiXiiqfQO wZpRxDs9o/X5vl5cED8mtOH0b6vIlnyFxrAIv04Yl6Gu8M8+n3b/w9aWHFo870Pv7Rda hHFNacq+7ITuzh+9hYbe/d/zLk8gygPo1WoZnvxnlMly5TbWPpEsRJCbiXma4ka+hLkH 5aqg== X-Gm-Message-State: AOAM531nzrIAJKkQOR2T5nBlqgJ3lt3VJzQX7vj3U/fq44dU9UW/L+P0 FrSEelgxXiaow+BNpiua5MRpyZ0GM/AwHw2y X-Google-Smtp-Source: ABdhPJzUeRhzBfo4i4NaqGV8lOQG9hzapS+U6C2rLmvOYn4dvW8CrjAFXg9soM8coiRLW3T+0r013Q== X-Received: by 2002:a05:622a:170b:: with SMTP id h11mr1895784qtk.484.1641593480665; Fri, 07 Jan 2022 14:11:20 -0800 (PST) Received: from [192.168.45.37] (c-73-125-89-242.hsd1.fl.comcast.net. [73.125.89.242]) by smtp.gmail.com with ESMTPSA id bp34sm4313914qkb.73.2022.01.07.14.11.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 07 Jan 2022 14:11:20 -0800 (PST) Message-ID: Date: Fri, 7 Jan 2022 17:11:19 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1 Content-Language: en-US References: <64e08d3a1838ed8507f33fae895545372960522f.camel@gmail.com> From: Philip McGrath In-Reply-To: <64e08d3a1838ed8507f33fae895545372960522f.camel@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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 X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1641593537; 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: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=K6VucuEzSB1QbeKvjKoA42xVSIg2rE/QL+j1UCjNFK4=; b=We0lfStcWchyg3r0FtpNqwIkoUOi7KBWYZs29HdqTc/uG9NpAgoGncKe1TbFo49AkczHp8 c3/eqTNA9kxtI92ba0gb4vs1b/qEgJZtqqKRHEnh3QC2OC9T0yK2DMEra/P0ZU7yvP4z2m PtQEVlQNCjMAzHeLWjW6jezy4V1XGXChADXchkWWlB5rafm5FvOujweCv6hIOIjn0nlgHX +S38ZOJou5H31V+CG9Mg3u/t6C906wBy4WMWyNq4QRfbPbVMxFEythYs3oNz4cHZgniFi5 7fO5EITNfIGq2sXCxnaR5QsTNnG+Jid2JdlWChvNQFZZyPAWoob73RrDGGgscw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1641593537; a=rsa-sha256; cv=none; b=BK0wxt36krzCpRi1wvVnZSV0EHsKDXPz1X1fG7rE44azN9m8EdHhmiECdVN9i7QjIY/BHf DtTwPIEtLRe0msBPChixhcSQGkUDk2+IlWZSNGqAxqO/cBTzREHBx3HR/odv0G2S4lq1oU FY4ksMRoMDmSGd72e7uOD0xXjnVb9jlj7/+Vt3I+TYR8wuVVD2ed7/ur5BCPb0erq8B9EE NEtIcEw+7p7DBPCZ80gdN02ECevacpoFwhBIsQjvK0N2sA3FXPjvzILRwpikplTZFgOei8 GhFGJ0gVQHxOFujbClXnlJ42xKjjIIzbjrJGLDB7lj5G0qnbazh3kfARUenq2A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=philipmcgrath.com header.s=google header.b=fwtsAKkx; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -0.60 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=philipmcgrath.com header.s=google header.b=fwtsAKkx; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 6486D3B9F5 X-Spam-Score: -0.60 X-Migadu-Scanner: scn1.migadu.com X-TUID: k/gIaSazvkKl Hi, On 1/6/22 12:45, Liliana Marie Prikler wrote: > Hi Philip, > > Please pardon the large flood of messages in a short enough of time > without waiting for a reply. I tried my best to come up with a v8 that > addresses my personal concerns quickly. > > My main changes were to patches 3-5, but note how deleting dependencies > became significantly easier in 6pp. To list the main differences: > 1. I've implemented the alist/JSON utilities in terms of SRFI-1 and SRFI- > 2. I shortened the additional JSON API to jsobject-ref and jsobject-update*. > I still believe alist->json-object and json-object->alist would be more > useful (in particular, the main operation of jsobject-union is actually > alist-flatten), but I digress. While some of these changes are not to my taste, there's nothing I can't live with for the sake of getting this patch series applied, finally. > 3. I made it so that delete-dependencies also acts on peerDependencies. > That way, we don't have to dance around ordering. I think this is not quite correct. (Actually, I suspect more broadly that node-build-system's handling of peerDependencies is not quite correct, but wrapping my head around the semantics of peerDependencies is on my to-do list for after these patches are applied. Here's one thing I want to read and understand: https://pnpm.io/how-peers-are-resolved) NPM does not try to install packages in "peerDependencis" during 'npm install' (out 'configure' phase). The problem arises because because our 'patch-dependencies' phase adds the "peerDependencies" as additional "dependencies". (Why? I don't fully understand, but I guess because it wants them to be installed.) We want absent "peerDependencies" to not be listed in "dependencies", but I don't think we want to delete them from "peerDependencies": at a minimum, we do not need to, and it seems like it might cause problems that I don't fully understand. (This is one of the reasons I preferred to handle absent dependencies in the 'patch-dependencies' phase.) > 4. Regexps :) Hopefully addressed in my previous email :) Jelle makes good arguments for the no-regexps side. I'm genuinely on the fence, which suggests to me the best course might be to leave it as a possible future extension (as we're doing with '#:absent-dependencies'). > PS: If someone else wants to push these in my absence, please adjust the > signoffs. Also, if those mail headers are broken, don't forget to reset > Philip as author. For the patches where you've made substantive changes to the implementation or the commit message, maybe there should be more of an annotation than just "Signed-off-by". I'm not super familiar with the Git etiquette here, but one suggestion I've seen is something like: Signed-off-by: Random J Developer [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h] Signed-off-by: Lucky K Maintainer It's not a big deal, I could just imagine getting confused some months or years from now about what exactly I wrote or didn't write. (TBH the numerous versions of this series are already a bit unwieldy.) Time permitting, I'll send some more comments, but the only things I think need to be addressed before merging are peerDependencies and regexps. Thanks for helping to keep things moving! -Philip