From unknown Fri Jun 13 10:01:59 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#78462 <78462@debbugs.gnu.org> To: bug#78462 <78462@debbugs.gnu.org> Subject: Status: [PATCH 1/2] refresh: Allow specifying a partial version via the version specification. Reply-To: bug#78462 <78462@debbugs.gnu.org> Date: Fri, 13 Jun 2025 17:01:59 +0000 retitle 78462 [PATCH 1/2] refresh: Allow specifying a partial version via t= he version specification. reassign 78462 guix-patches submitter 78462 Maxim Cournoyer severity 78462 normal tag 78462 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat May 17 01:40:46 2025 Received: (at submit) by debbugs.gnu.org; 17 May 2025 05:40:46 +0000 Received: from localhost ([127.0.0.1]:44216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uGAHu-0004za-4S for submit@debbugs.gnu.org; Sat, 17 May 2025 01:40:46 -0400 Received: from lists.gnu.org ([2001:470:142::17]:34282) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uGAHq-0004yx-PR for submit@debbugs.gnu.org; Sat, 17 May 2025 01:40:43 -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 1uGAHl-0003AL-35 for guix-patches@gnu.org; Sat, 17 May 2025 01:40:37 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uGAHi-0000Xy-PJ for guix-patches@gnu.org; Sat, 17 May 2025 01:40:36 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-22fac0694aaso20551095ad.1 for ; Fri, 16 May 2025 22:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747460432; x=1748065232; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ykXBccHFAMVudMfQRWw31jP6EHfXwotbq1zRr2t56hQ=; b=gWYsQrXWzKbYO0xl3TIODJ33nkrJtBJi1YvI/GpHgiWnjwCzKnPvqDz63lsOegfmrD iOer4LWPnCeic0ef8YxdhqZKfQ4GulUThxzINdG5HnDG69wVzr7sjrgYu/LL4P8Sy+WI 5hdD+n+zJcMFm/xcOR/HN7h8vJSrGIx4v1dv7I4b8zSxmM7FGaSlb593uUgQTWR6efMa dSBIYSgspeQXd4vKMZEuLxXiZ6saU8gSK6vEKM8JZ5pBswRRPes0Fl1gmLhojVVMVRlA 0S42QTVYCTS9dGXAU8zghjB/1eTq08m/joMW7AftwTDOKlc2rsCwoujfQKSlTMlstYy3 bQmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747460432; x=1748065232; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ykXBccHFAMVudMfQRWw31jP6EHfXwotbq1zRr2t56hQ=; b=v/FyMMMvz1GL2QI78EaaUffUwG7ppP0ckcZkqajhfnrhpgqcAxIzcJ6AvVpjCxx9sU FjlvcgyFA0Yl0rFepUZ78DWd+K8+Nuni5I34j3846rHAgNZLWoYx6TW4dmA/RNSD1+2t 8UWzE95L5UkoeMdFMzGVwYMsuTMaLVUlteFuQrOogXCcEKQIwUa4EHD5BHGHwMJShbz9 BvHaOGZZHJLPJixD4xUT6u10H4hzII/uPt7ynQxIUHoyUmvtw0j39LKNy4FkxXqVmG0p 41WH1b/+1bI79iIAH35mmJcAgfdS4GaHhXeZmNs11OL3jJ89QI94+lnbORxGnLG0+Aqz j9xA== X-Gm-Message-State: AOJu0YxuFy9unAuO9cD3/fjy/gbehx4pfsioCZlHHDvF8+swI9at1e82 Q6YdOO/P8pQgS2zBN2yNgEctkYyJR+S0vBkLhV171b+8zuOn+ju1DDWI5FMmSGId X-Gm-Gg: ASbGncu5Np9ldcaopvWZAA5LzZ5CJWpmfKAaJtwSffDNmE0R13HuzajQus0KSmV1Pw/ BRhNZn67XndGaPun0Iinqu723oJilOynGEfu21RjXD72NlLNQq54kPWk5qyqUhRUZxByyH8+SjZ HdZVoTHU8mrSwnHqeliYVM0HJCUampnlyJ6Zp9FfK67KuWnMuqGLJvA7oYoqx3hbc/FOD6H7I6D CseAvpcVy2G7aRhoLL8OoIU5U6WwQ/KBj0E0xxlVGIUT2R1gKrGB6PNNHOk8k6pSnAK8evULdBH geeNL0JFz/3rvL10loX4oMTluOa5mkJMh0HbBcgpH9b9sOYrHlX9Xv9ehruBnE0djlBC6d8= X-Google-Smtp-Source: AGHT+IFBSNW2MVxfDdCPvzfySvNC2QbhYRMMJXic6CIkmFbRLpY/n2T5Ku/6ynVQE6vhivCQeyoPYA== X-Received: by 2002:a17:903:41c7:b0:22e:37b8:7972 with SMTP id d9443c01a7336-231de3514dcmr72916825ad.10.1747460431850; Fri, 16 May 2025 22:40:31 -0700 (PDT) Received: from localhost.localdomain ([2405:6586:be0:0:83c8:d31d:2cec:f542]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-231d4ac957dsm23424505ad.52.2025.05.16.22.40.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 May 2025 22:40:31 -0700 (PDT) From: Maxim Cournoyer To: guix-patches@gnu.org Subject: [PATCH 1/2] refresh: Allow specifying a partial version via the version specification. Date: Sat, 17 May 2025 14:40:19 +0900 Message-ID: X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Debbugs-Cc: Christopher Baines , Gabriel Wicki , Josselin Poiret , Ludovic Courtès , Mathieu Othacehe , Maxim Cournoyer , Simon Tournier , Tobias Geerinckx-Rice Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=maxim.cournoyer@gmail.com; helo=mail-pl1-x636.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-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) * guix/scripts/refresh.scm (update-specification->update-spec): Flag the update-spec as partial when it is prefixed with '~'. * tests/guix-refresh.sh: Test it. * doc/guix.texi (Invoking guix refresh): Document it. Change-Id: Iab4482d9367105f6ffcd2d6a49148736c93d53e4 --- doc/guix.texi | 11 +++++++++++ guix/scripts/refresh.scm | 7 +++++-- tests/guix-refresh.sh | 20 ++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8e73685a216..584a42b6a79 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15147,6 +15147,17 @@ Invoking guix refresh gnu/packages/qt.scm:452:13: qtbase would be upgraded from 5.15.8 to 5.15.10 @end example +@cindex partial version specification, guix refresh +A per-package equivalent to --target-version is made available by +prefixing the version specification with the @samp{~} (tilde) character. +For example: + +@example +$ guix refresh bash=~5 guile=~3 +gnu/packages/guile.scm:354:13: guile would be upgraded from 3.0.9 to 3.0.10 +gnu/packages/bash.scm:150:15: bash would be upgraded from 5.1.16 to 5.2.37 +@end example + Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help. Most updaters honor the @code{upstream-name} property in package definitions, which can be used diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 2d086073284..4a94ec637bb 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -231,8 +231,11 @@ (define (update-specification->update-spec spec fallback-version) (match (string-rindex spec #\=) (#f (update-spec (specification->package spec) fallback-version (not (not fallback-version)))) - (idx (update-spec (specification->package (substring spec 0 idx)) - (substring spec (1+ idx)))))) + (idx (let ((version (substring spec (1+ idx))) + (package (specification->package (substring spec 0 idx)))) + (if (string-prefix? "~" version) + (update-spec package (string-drop version 1) #t) ;partial + (update-spec package version)))))) (define (options->update-specs opts) "Return the list of records requested by OPTS, honoring diff --git a/tests/guix-refresh.sh b/tests/guix-refresh.sh index 0f1af8cae7c..e287f37717f 100644 --- a/tests/guix-refresh.sh +++ b/tests/guix-refresh.sh @@ -126,6 +126,12 @@ case "$(guix refresh -t test guile --target-version=2.0.0 2>&1)" in *) false;; esac +guix refresh -t test guile=~2.0.0 # XXX: should return non-zero? +case "$(guix refresh -t test guile=~2.0.0 2>&1)" in + *"failed to find"*"2.0.0"*) true;; + *) false;; +esac + # Partial target version => select the newest release prefixed by it. guix refresh -t test guile --target-version=3 # XXX: should return non-zero? case "$(guix refresh -t test guile --target-version=3 2>&1)" in @@ -133,6 +139,20 @@ case "$(guix refresh -t test guile --target-version=3 2>&1)" in *) false;; esac +# Partial spec version => select the newest release prefixed by it. +guix refresh -t test guile=~3 # XXX: should return non-zero? +case "$(guix refresh -t test guile=~3 2>&1)" in + *"would be upgraded"*"3.13.3"*) true;; + *) false;; +esac + +# Conflicting --target-version and spec: spec wins +guix refresh -t test guile=~3 --target-version=1 # XXX: should return non-zero? +case "$(guix refresh -t test guile=~3 2>&1)" in + *"would be upgraded"*"3.13.3"*) true;; + *) false;; +esac + for spec in "guile=1.6.4" "guile@3=1.6.4" do guix refresh -t test "$spec" base-commit: 3fadea42548389141e84a8481d271ac7280de7bc -- 2.49.0 From debbugs-submit-bounces@debbugs.gnu.org Sat May 17 01:44:07 2025 Received: (at control) by debbugs.gnu.org; 17 May 2025 05:44:07 +0000 Received: from localhost ([127.0.0.1]:44262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uGAL9-0005Em-2t for submit@debbugs.gnu.org; Sat, 17 May 2025 01:44:07 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:53363) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uGAL6-0005E0-3Q for control@debbugs.gnu.org; Sat, 17 May 2025 01:44:04 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-30e57a37294so2490047a91.2 for ; Fri, 16 May 2025 22:44:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747460636; x=1748065436; darn=debbugs.gnu.org; h=subject:from:to:message-id:date:from:to:cc:subject:date:message-id :reply-to; bh=FjABBW+E1i15sQl+POFVU7z2txCAifIRGmEPVOiT1z0=; b=BGPlRCiM8ydzJFUfcslQ9x5i4k9tI/g9sEgL6+IHVvirYd+BTCcwpI1PaGEOFXtVEQ QF1yog0sN08MLjMhBVLRFoJ6oU8x0GjVzhxKU1Hm35sNhXdmWOS49dOPuQ/Y3MHyAQPM 7cEKc+vH1mE/KqoN5Eq1OgM6glkkivRTumgsg+hgOwZmBQAMCL7Y1yP6hDTMKFSOuQBt A5WYPbtSZ6X5CulSjQxSUoV+giakru2pjTz9Mg57kHpzR+8UJa/Mkhmhtq5+Z+lka/WS Px3RFEmTKMcJmp+rz09zq9F6madQwEI8rk+B/rzzcnJ3h7vwaj1XVT/x0VZuZCSMUuhj vERA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747460636; x=1748065436; h=subject:from:to:message-id:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FjABBW+E1i15sQl+POFVU7z2txCAifIRGmEPVOiT1z0=; b=C+dFxvMU8U2V6uxiYikMnUp/2Fk/dpNaGQoOcJ2QQAnJRo3JkJI4ZbeFHMkgEyHZB0 HpEqwykxAIzmGr3/ekSHojxpO/2O9UVxd9puR8BqvvPzOkg3xhNSRenM2Mk3vY2PwOii 7tJGWMyaan6bW1Cnv4Xk1H28fTzmKh2oooayqq43gFvTacrl2ft0UxgNaGAWG2qlthZd a3wRbDqWMzsny1KceGtiBJ/J3MA8VchUCaOCwYD2M+l52rkCrW/OM334jG8495DSHEns NSQF7OIC2j2xKO78CrJQOaBaKbYYdOJDlRODtG8hZ87M8ZxvngRi5DF0tG3vEmeoDuYV M7SQ== X-Gm-Message-State: AOJu0YxD22AwIJ+1sKFqkDNauLUhNcOMw0gSQ0lMEC9RjteaCSv7qMWT JSd4bseLvC+DDrD/6zAVk8LLsx7APBMZ9rPqpUuiDklXuttfzGr8sF21VZCqCA== X-Gm-Gg: ASbGncs+HNwN/ONHfAd+bWcVEa0jlK69ZmmUK3Q+LB4D+QQEUbdNnyd2pygvVfH0dRK 3ikHD5DRNq7xnD542jPVU3/bP8Bdh25YQbWTVIqyp9kp/CjZLLmbqL+JSH7tmMc1JIA47Hc+haX 2YNTPGMPln+YeWrNyLYT7bltM8REWs3OQwA/79v90YdlRFEkZdjLtAEYCncAcdKnLX+6cf+0TtM lBhK0Uhs94Vq07Y5y29Mz1mYC7kg1PZie1QnwsByJJt2l1raM6PpwX7u5UbwoDlGfJ7T1943YWY qsVDcs0p3U0d+TuOBOWwNaJPdQeyklsEU0dRaabZGbFcBY0bE0HZnhAVlXP1 X-Google-Smtp-Source: AGHT+IEP5g78Myy1XcK8O5FAeDfn6CZSJS606Ye2Wtab1ZxK9azu07FcwaNXUDbBr6l3FvN0BusP8g== X-Received: by 2002:a17:90b:3d0c:b0:301:1d9f:4ba2 with SMTP id 98e67ed59e1d1-30e83216e93mr9119441a91.28.1747460636444; Fri, 16 May 2025 22:43:56 -0700 (PDT) Received: from terra ([2405:6586:be0:0:83c8:d31d:2cec:f542]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b26eaf8e13csm2480028a12.45.2025.05.16.22.43.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 May 2025 22:43:55 -0700 (PDT) Date: Sat, 17 May 2025 14:43:53 +0900 Message-Id: <87sel3eqqu.fsf@gmail.com> To: control@debbugs.gnu.org From: Maxim Cournoyer Subject: control message for bug #78463 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) forcemerge 78463 78462 quit From debbugs-submit-bounces@debbugs.gnu.org Sun May 18 17:03:14 2025 Received: (at 78462) by debbugs.gnu.org; 18 May 2025 21:03:14 +0000 Received: from localhost ([127.0.0.1]:60948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uGlA8-0007Z1-Lw for submit@debbugs.gnu.org; Sun, 18 May 2025 17:03:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41272) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uGlA3-0007YA-N7 for 78462@debbugs.gnu.org; Sun, 18 May 2025 17:03:07 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uGl9w-0002GJ-NR; Sun, 18 May 2025 17:03:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=VYrLKgaFwOT21jrmsV8zcdMxWLAlv4sgayDFP1QnJQo=; b=gPM2qSAj9EablOdSJZeg DMemLmD7y7wc/IKgE3APMhx8zu4iCs0RYu0vzSXLM0N7xXpYZtIMRsziGz/y79zXTwpm2NdT2K4MV PgKyZdAbI7IgqT9+TA0OSixNPlvRBHyy1DvPO/cqGojxag7I7J6hpLPvgBW+1wQjhwsOsXUhE56/r /KHa7DQ7zun3lgbNRZFEgs7zFEf3f0wMxiWt3e0yv4hBE83NA1w3anwCfouUYG/5xt+Aj8s4lT68I zpL5tT84oxnrP3JVoRZvAJRhTFPlxtzuo802G9+/vGRVYDuh+W0B5NJS+vneVaomxKDbnoxj1c9kH qVGWvlWqOJsI6w==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxim Cournoyer Subject: Re: [bug#78462] [PATCH 1/2] refresh: Allow specifying a partial version via the version specification. In-Reply-To: (Maxim Cournoyer's message of "Sat, 17 May 2025 14:40:19 +0900") References: User-Agent: mu4e 1.12.9; emacs 29.4 X-URL: https://people.bordeaux.inria.fr/lcourtes/ X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu X-Revolutionary-Date: Nonidi 29 =?utf-8?Q?Flor=C3=A9al?= an 233 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du =?utf-8?B?U8OpbmV2w6k=?= Date: Sun, 18 May 2025 22:08:41 +0200 Message-ID: <87sel1lm0m.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78462 Cc: Josselin Poiret , Tobias Geerinckx-Rice , Simon Tournier , Mathieu Othacehe , Gabriel Wicki , 78462@debbugs.gnu.org, Christopher Baines X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Maxim Cournoyer writes: > * guix/scripts/refresh.scm (update-specification->update-spec): Flag the > update-spec as partial when it is prefixed with '~'. > * tests/guix-refresh.sh: Test it. > * doc/guix.texi (Invoking guix refresh): Document it. > > Change-Id: Iab4482d9367105f6ffcd2d6a49148736c93d53e4 LGTM!