import: minetest: Strip "v" prefixes from the version number.
This fixes one of the issues noted at <https://issues.guix.gnu.org/50425#4>. * guix/import/minetest.scm (release-version): New procedure. (%minetest->guix-package): Call new procedure instead of release-title. * tests/minetest.scm (make-package-sexp): Allow overriding the version number. (make-releases-json): Allow overriding the release title. ("conventional version number") ("v-prefixed version number") ("dates as version number"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
8480a2a5bb
commit
808f9ffbd3
|
@ -337,6 +337,14 @@ official Minetest forum and the Git repository (if any)."
|
||||||
(and=> (package-forums package) topic->url-sexp)
|
(and=> (package-forums package) topic->url-sexp)
|
||||||
(package-repository package)))
|
(package-repository package)))
|
||||||
|
|
||||||
|
(define (release-version release)
|
||||||
|
"Guess the version of RELEASE from the release title."
|
||||||
|
(define title (release-title release))
|
||||||
|
(if (string-prefix? "v" title)
|
||||||
|
;; Remove "v" prefix from release titles like ‘v1.0.1’.
|
||||||
|
(substring title 1)
|
||||||
|
title))
|
||||||
|
|
||||||
;; If the default sort key is changed, make sure to modify 'show-help'
|
;; If the default sort key is changed, make sure to modify 'show-help'
|
||||||
;; in (guix scripts import minetest) appropriately as well.
|
;; in (guix scripts import minetest) appropriately as well.
|
||||||
(define %default-sort-key "score")
|
(define %default-sort-key "score")
|
||||||
|
@ -436,7 +444,7 @@ list of AUTHOR/NAME strings."
|
||||||
(define important-upstream-dependencies
|
(define important-upstream-dependencies
|
||||||
(important-dependencies dependencies author/name #:sort sort))
|
(important-dependencies dependencies author/name #:sort sort))
|
||||||
(values (make-minetest-sexp author/name
|
(values (make-minetest-sexp author/name
|
||||||
(release-title release) ; version
|
(release-version release)
|
||||||
(package-repository package)
|
(package-repository package)
|
||||||
(release-commit release)
|
(release-commit release)
|
||||||
important-upstream-dependencies
|
important-upstream-dependencies
|
||||||
|
|
|
@ -33,6 +33,10 @@
|
||||||
|
|
||||||
(define* (make-package-sexp #:key
|
(define* (make-package-sexp #:key
|
||||||
(guix-name "minetest-foo")
|
(guix-name "minetest-foo")
|
||||||
|
;; This is not a proper version number but
|
||||||
|
;; ContentDB often does not include version
|
||||||
|
;; numbers.
|
||||||
|
(version "2021-07-25")
|
||||||
(home-page "https://example.org/foo")
|
(home-page "https://example.org/foo")
|
||||||
(repo "https://example.org/foo.git")
|
(repo "https://example.org/foo.git")
|
||||||
(synopsis "synopsis")
|
(synopsis "synopsis")
|
||||||
|
@ -44,9 +48,7 @@
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
`(package
|
`(package
|
||||||
(name ,guix-name)
|
(name ,guix-name)
|
||||||
;; This is not a proper version number but ContentDB does not include
|
(version ,version)
|
||||||
;; version numbers.
|
|
||||||
(version "2021-07-25")
|
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -106,14 +108,14 @@
|
||||||
author "/" name "/download/"))
|
author "/" name "/download/"))
|
||||||
("website" . ,website)))
|
("website" . ,website)))
|
||||||
|
|
||||||
(define* (make-releases-json #:key (commit #f) (title "") #:allow-other-keys)
|
(define* (make-releases-json #:key (commit #f) (title "2021-07-25") #:allow-other-keys)
|
||||||
`#((("commit" . ,commit)
|
`#((("commit" . ,commit)
|
||||||
("downloads" . 469)
|
("downloads" . 469)
|
||||||
("id" . 8614)
|
("id" . 8614)
|
||||||
("max_minetest_version" . null)
|
("max_minetest_version" . null)
|
||||||
("min_minetest_version" . null)
|
("min_minetest_version" . null)
|
||||||
("release_date" . "2021-07-25T01:10:23.207584")
|
("release_date" . "2021-07-25T01:10:23.207584")
|
||||||
("title" . "2021-07-25"))))
|
("title" . ,title))))
|
||||||
|
|
||||||
(define* (make-dependencies-json #:key (author "Author")
|
(define* (make-dependencies-json #:key (author "Author")
|
||||||
(name "foo")
|
(name "foo")
|
||||||
|
@ -292,6 +294,17 @@ during a dynamic extent where that package is available on ContentDB."
|
||||||
#:website 'null
|
#:website 'null
|
||||||
#:repo 'null)
|
#:repo 'null)
|
||||||
|
|
||||||
|
|
||||||
|
;; Determining the version number
|
||||||
|
|
||||||
|
(test-package "conventional version number" #:version "1.2.3" #:title "1.2.3")
|
||||||
|
;; See e.g. orwell/basic_trains
|
||||||
|
(test-package "v-prefixed version number" #:version "1.2.3" #:title "v1.2.3")
|
||||||
|
;; Many mods on ContentDB use dates as release titles. In that case, the date
|
||||||
|
;; will have to do.
|
||||||
|
(test-package "dates as version number"
|
||||||
|
#:version "2021-01-01" #:title "2021-01-01")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Dependencies
|
;; Dependencies
|
||||||
|
|
Reference in New Issue