[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#57460] [PATCH 16/20] refresh: Allow updating to a specific version
From: |
Hartmut Goebel |
Subject: |
[bug#57460] [PATCH 16/20] refresh: Allow updating to a specific version (upstream) |
Date: |
Sun, 28 Aug 2022 15:18:42 +0200 |
* guix/upstream.scm(package-latest-release): Add keyword-argument 'version'
and pass it on to the updater's 'import' function.
(package-update): add keyword-argument 'version' and pass it on to
package-latest-release. Differentiate the error message issued when
no package was found, depending on whether version was given or not.
---
guix/upstream.scm | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/guix/upstream.scm b/guix/upstream.scm
index 6cee6440c3..faffb3347a 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -277,7 +278,8 @@ them matches."
(define* (package-latest-release package
#:optional
- (updaters (force %updaters)))
+ (updaters (force %updaters))
+ #:key (version #f))
"Return an upstream source to update PACKAGE, a <package> object, or #f if
none of UPDATERS matches PACKAGE. When several updaters match PACKAGE, try
them until one of them returns an upstream source. It is the caller's
@@ -286,7 +288,7 @@ one."
(any (match-lambda
(($ <upstream-updater> name description pred import)
(and (pred package)
- (import package))))
+ (import package #:version version))))
updaters))
(define* (package-latest-release* package
@@ -490,13 +492,13 @@ SOURCE, an <upstream-source>."
(define* (package-update store package
#:optional (updaters (force %updaters))
- #:key (key-download 'interactive))
+ #:key (key-download 'interactive) (version #f))
"Return the new version, the file name of the new version tarball, and input
changes for PACKAGE; return #f (three values) when PACKAGE is up-to-date;
raise an error when the updater could not determine available releases.
KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed
values: 'always', 'never', and 'interactive' (default)."
- (match (package-latest-release package updaters)
+ (match (package-latest-release package updaters #:version version)
((? upstream-source? source)
(if (version>? (upstream-source-version source)
(package-version package))
@@ -520,8 +522,11 @@ this method: ~s")
(values #f #f #f)))
(#f
;; Warn rather than abort so that other updates can still take place.
- (warning (G_ "updater failed to determine available releases for ~a~%")
- (package-name package))
+ (if version
+ (warning (G_ "updater failed to find release ~a@~a~%")
+ (package-name package) version)
+ (warning (G_ "updater failed to determine available releases for
~a~%")
+ (package-name package)))
(values #f #f #f))))
(define* (update-package-source package source hash)
--
2.30.4
- [bug#57460] [PATCH 07/20] refresh: Allow updating to a specific version (egg), (continued)
- [bug#57460] [PATCH 07/20] refresh: Allow updating to a specific version (egg), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 10/20] refresh: Allow updating to a specific version (gnome), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 11/20] refresh: Allow updating to a specific version (hexpm), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 12/20] refresh: Allow updating to a specific version (kde), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 14/20] refresh: Allow updating to a specific version (pypi), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 15/20] refresh: Allow updating to a specific version (script), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 09/20] refresh: Allow updating to a specific version (github), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 08/20] refresh: Allow updating to a specific version (git), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 13/20] refresh: Allow updating to a specific version (launchpad), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 16/20] refresh: Allow updating to a specific version (upstream),
Hartmut Goebel <=
- [bug#57460] [PATCH 17/20] refresh: Allow updating to a specific version (documentation), Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 18/20] TEMP REMOVE import: git: Restrict to non-github origins., Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 19/20] TEMP REMOVE upstream: Output names of importers tried., Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 20/20] TEMP REMOVE Add test-script for refesh-with-version, Hartmut Goebel, 2022/08/28
- [bug#57460] [PATCH 00/19] Refresh to specific version, Maxime Devos, 2022/08/28