import: crate: Allow updating to a specific version.
* guix/import/crate.scm (latest-release): Rename to 'import-release', add #:version argument. If version is given, return an upstream-source for this version.
This commit is contained in:
		
							parent
							
								
									53af560543
								
							
						
					
					
						commit
						7c4aab1f7d
					
				
					 1 changed files with 6 additions and 4 deletions
				
			
		| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 | 
					;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 | 
				
			||||||
;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
					;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
				
			||||||
 | 
					;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -354,11 +355,12 @@ look up the development dependencs for the given crate."
 | 
				
			||||||
(define crate-package?
 | 
					(define crate-package?
 | 
				
			||||||
  (url-predicate crate-url?))
 | 
					  (url-predicate crate-url?))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (latest-release package)
 | 
					(define* (import-release package #:key (version #f))
 | 
				
			||||||
  "Return an <upstream-source> for the latest release of PACKAGE."
 | 
					  "Return an <upstream-source> for the latest release of PACKAGE. Optionally
 | 
				
			||||||
 | 
					include a VERSION string to fetch a specific version."
 | 
				
			||||||
  (let* ((crate-name (guix-package->crate-name package))
 | 
					  (let* ((crate-name (guix-package->crate-name package))
 | 
				
			||||||
         (crate      (lookup-crate crate-name))
 | 
					         (crate      (lookup-crate crate-name))
 | 
				
			||||||
         (version    (crate-latest-version crate))
 | 
					         (version    (or version (crate-latest-version crate)))
 | 
				
			||||||
         (url        (crate-uri crate-name version)))
 | 
					         (url        (crate-uri crate-name version)))
 | 
				
			||||||
    (upstream-source
 | 
					    (upstream-source
 | 
				
			||||||
     (package (package-name package))
 | 
					     (package (package-name package))
 | 
				
			||||||
| 
						 | 
					@ -370,5 +372,5 @@ look up the development dependencs for the given crate."
 | 
				
			||||||
   (name 'crate)
 | 
					   (name 'crate)
 | 
				
			||||||
   (description "Updater for crates.io packages")
 | 
					   (description "Updater for crates.io packages")
 | 
				
			||||||
   (pred crate-package?)
 | 
					   (pred crate-package?)
 | 
				
			||||||
   (import latest-release)))
 | 
					   (import import-release)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue