From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id UN6jLev2/GQySwEAauVa8A:P1 (envelope-from ) for ; Sun, 10 Sep 2023 00:51:23 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id UN6jLev2/GQySwEAauVa8A (envelope-from ) for ; Sun, 10 Sep 2023 00:51:23 +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 A8AEA5A362 for ; Sun, 10 Sep 2023 00:51:22 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lendvai.name header.s=protonmail3 header.b=eOB0GCE7; 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=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1694299882; 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=mpga/Q1g99Fx9MAkmDFhiBE2++7/RzyEriaUS+hasIw=; b=fEgnLtlB127D5H8TP9xOT81ouRUdWHTLLkLdkup+M+fSw4z7853VMNIW71iRrEITgMGba0 sBgSYN0c+lHOs40fOtqTZS77XF4uzWjlrZGR03c6m1xodz0iomZjZUKCiJrdaoebL10LKY i40lOCyggkYIkCG9k4By9akg17GzFLPYauFNmKuLjMc/WO1w5ExJ829HmQ5G68MZEJukYA BFl7P5IP6ajcdTOebgS1B1VjaD+L3F5qC86xUIehl6pfGXDL/y1Rz6KO1q5CHVreuZqERE nOW5If0s1ar72Fn+4UCjdjnzZiVCCRT+INyCVk7SxUiTVk4PpwMOHCI/NR3lcg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1694299882; a=rsa-sha256; cv=none; b=NZ7MlxdoYBWMTOYTk9Y4ecLbEGt1Npa+FNW+EiRM7IyiVUqNB6nAR8GEsni4wHLmwxTHmW l/cqrpliZINhp5O0w00f19SVOL5QNUcP4skTKHiChs7OrrO9sZTOHxj+WSYBTZBB9BHHue 1mSlBtILAsmpaYbWCG/q+lRuPPZdVwKRybU3A0aWpb953P6uKw8MSyCuqSX7kMhwPnkNEP pIInGvp5Vfs4FKYPFcVxKQKagM7wdsvvAtMRKob/1yD/2p+pIjY5thXNVQJybSEBvV2vEf U1zzqT8Lg1Eymz+ZSkM1bblXWdetUrUr3lr1EU21fNOl1qo4S3fdsTQw6Zvnxg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=lendvai.name header.s=protonmail3 header.b=eOB0GCE7; 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=none Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qf6mt-0002gl-FV; Sat, 09 Sep 2023 18:50:47 -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 1qf6mr-0002Wt-Ps for guix-devel@gnu.org; Sat, 09 Sep 2023 18:50:45 -0400 Received: from mail-4022.proton.ch ([185.70.40.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qf6mn-0001ss-0Q for guix-devel@gnu.org; Sat, 09 Sep 2023 18:50:45 -0400 Date: Sat, 09 Sep 2023 22:50:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lendvai.name; s=protonmail3; t=1694299831; x=1694559031; bh=mpga/Q1g99Fx9MAkmDFhiBE2++7/RzyEriaUS+hasIw=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=eOB0GCE7iUfxZZ7olt/EXG1P7rYdyDV3qL767y7Kd0v2VcQZJ+XV1cJGoravf6dej dcIkHRtHqoFn2Lv9gfUjxnIz0udmfOMp2WB0FRxZgnqv//x9SHoYkf7NvoHalm4wQP 18wRn0rUVqyWFUw4J+2YvIhI98iTmul8mdm8Zb/9HDFLCcPw8iEnJLrC6wj42wURTa +Ts073TbxqdvwTnBaZhH6X42eacT5dNkxmG8M26AbYpGC4mVBHPejX6x4Z/UIO+G1l 9ifp49RdVBWLNaK9WeodQd7LoTwGlyU8mhvKtAZ2UFIRg8Fa++LXeKkJOeRuTE2IOd 5F2pyhtu1Q3jg== To: Distopico From: Attila Lendvai Cc: guix-devel@gnu.org Subject: Re: Pinned/fixed versions should be a requirement. Message-ID: In-Reply-To: <87h6o9pbbv.fsf@riseup.net> References: <87h6o9pbbv.fsf@riseup.net> Feedback-ID: 28384833:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.70.40.22; envelope-from=attila@lendvai.name; helo=mail-4022.proton.ch 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, SPF_HELO_PASS=-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-Scanner: mx0.migadu.com X-Migadu-Spam-Score: -0.61 X-Spam-Score: -0.61 X-Migadu-Queue-Id: A8AEA5A362 X-TUID: 3mWYq6rPLL2/ > For these reasons, I believe that pinned versions should be a > requirement in libraries, always specifying the exact dependency, for > example, `rust-serde-json-1.0.98`. aiming a little higher, we could stop using module-global variables for poi= nting to packages (aka define-public), and with that eliminate one of the t= wo, orthogonal and inconsistent (https://issues.guix.gnu.org/61292) package= repositories, and only use the one-and-only reified package registry. then, with some more work there could be: - a syntax extension to easily point to a package from scheme code; something like #^rust-serde-json@1.0.98 - a "package GC" algorithm that collects and prints orphaned/unreferenced packages - "semantic" version pointers for situations where multiple versions of the same package cannot coexist in one profile, and/or dependent packages want to point to e.g. the latest, or the latest in a specific major version, or the "picked as current by the surrounding environment" (thinking here of things like the web of Gnome related packages that must all be compatible with each other, and only one instance is allowed to run at once). this way we could be "rolling ahead" with the package definitions similarly= to how derivations in the store are "rolling ahead" and unused ones get GC= 'd. it would increase complexity in the sense that contributors would need to c= onstantly keep an eye on moving forward the dependency pointers (unless "la= test" or some other semantic reference is used as version for an input). but in return it would increase resilience: a random update of a package wo= uld not break anything else that is downstream on the dependency chain. and= i'm not only thinking of build errors here, but also subtle changes at run= time (e.g. how Chromium stopped being able to open the file open/save dialo= g while xdg-desktop-portal-gtk and xdg-desktop-portal-wlr were installed. t= heir upgade broke Chromium, and it took me quite some time/annoyance to deb= ug this). i think this would also enable interesting features like being able to have= two versions of Gnome alive and runnable in the same profile. this would also open the path for something else that may or may not be wor= th it: the files holding the package definitions could be divorced from bei= ng full scheme module files, and turned into a text-based package database = where algorithms (e.g. package import, GC) could reliably add and delete en= tries without human intervention (besides recording it as a git commit). it's a whole other story that we shouldn't store source code as a string of= characters, but instead admit that it's a graph, and store/edit it as such= . that would implicitly resolve most of this problem, too, but i'm afraid w= e're not ready for that just yet. -- =E2=80=A2 attila lendvai =E2=80=A2 PGP: 963F 5D5F 45C7 DFCD 0A39 -- =E2=80=9CWhen you change the way you look at things, the things you look at= change.=E2=80=9D =09=E2=80=94 Wayne W. Dyer (1940=E2=80=932015)