diff mbox series

[bug#50451] Fix two issues in the minetest importer

Message ID bde55702705876ac90d8646d3945cc498de730af.camel@telenet.be
State Accepted
Headers show
Series [bug#50451] Fix two issues in the minetest importer | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

M Sept. 7, 2021, 11:36 a.m. UTC
X-Debbugs-CC: Vivien Kraus <vivien@planete-kraus.eu>

Hi guix,

These patches fix a few issues noted at <https://issues.guix.gnu.org/50425#4>
and add corresponding tests.

Greetings,
Maxime.

Comments

Ludovic Courtès Sept. 18, 2021, 5:42 p.m. UTC | #1
Hi,

Maxime Devos <maximedevos@telenet.be> skribis:

> From 2c376bc8fcdc690a8d3b71e818085fa25f547d59 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos@telenet.be>
> Date: Tue, 7 Sep 2021 13:03:12 +0200
> Subject: [PATCH 1/3] tests/minetest: Fix 'test-package*' indenting.
>
> * tests/minetest.scm (Local Variables)[test-package*]: Set
>   scheme-indent-function property to 1.

[...]

> From 2855ab8880b9200ec0eb18a9dfb802a516828312 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos@telenet.be>
> Date: Tue, 7 Sep 2021 13:05:56 +0200
> Subject: [PATCH 2/3] import/minetest: Delete duplicate dependencies.
>
> This fixes one of the issues noted in <https://issues.guix.gnu.org/50425#4>.
>
> * guix/import/minetest.scm
>   (import-dependencies): Call 'delete-duplicates' on the resulting list.
> * tests/minetest.scm
>   ("minetest->guix-package, multiple dependencies implemented by one mod"):
>   New test.

[...]

> From 91cbb7e68f3df8601fd91a2247ca971f7e011406 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos@telenet.be>
> Date: Tue, 7 Sep 2021 13:24:24 +0200
> Subject: [PATCH 3/3] 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.

Applied, thanks!

Ludo’.
diff mbox series

Patch

From 91cbb7e68f3df8601fd91a2247ca971f7e011406 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Tue, 7 Sep 2021 13:24:24 +0200
Subject: [PATCH 3/3] 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.
---
 guix/import/minetest.scm | 10 +++++++++-
 tests/minetest.scm       | 23 ++++++++++++++++++-----
 2 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm
index c8209aba79..29bf12d123 100644
--- a/guix/import/minetest.scm
+++ b/guix/import/minetest.scm
@@ -337,6 +337,14 @@  official Minetest forum and the Git repository (if any)."
       (and=> (package-forums package) topic->url-sexp)
       (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'
 ;; in (guix scripts import minetest) appropriately as well.
 (define %default-sort-key "score")
@@ -436,7 +444,7 @@  list of AUTHOR/NAME strings."
   (define important-upstream-dependencies
     (important-dependencies dependencies author/name #:sort sort))
   (values (make-minetest-sexp author/name
-                              (release-title release) ; version
+                              (release-version release)
                               (package-repository package)
                               (release-commit release)
                               important-upstream-dependencies
diff --git a/tests/minetest.scm b/tests/minetest.scm
index 80e2697a3d..6998c9a70b 100644
--- a/tests/minetest.scm
+++ b/tests/minetest.scm
@@ -33,6 +33,10 @@ 
 
 (define* (make-package-sexp #:key
                             (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")
                             (repo "https://example.org/foo.git")
                             (synopsis "synopsis")
@@ -44,9 +48,7 @@ 
                             #:allow-other-keys)
   `(package
      (name ,guix-name)
-     ;; This is not a proper version number but ContentDB does not include
-     ;; version numbers.
-     (version "2021-07-25")
+     (version ,version)
      (source
       (origin
         (method git-fetch)
@@ -106,14 +108,14 @@ 
                              author "/" name "/download/"))
     ("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)
       ("downloads" . 469)
       ("id" . 8614)
       ("max_minetest_version" . null)
       ("min_minetest_version" . null)
       ("release_date" . "2021-07-25T01:10:23.207584")
-      ("title" . "2021-07-25"))))
+      ("title" . ,title))))
 
 (define* (make-dependencies-json #:key (author "Author")
                                  (name "foo")
@@ -292,6 +294,17 @@  during a dynamic extent where that package is available on ContentDB."
               #:website '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
-- 
2.33.0