diff options
-rw-r--r-- | gnu/packages/xfce.scm | 3 | ||||
-rw-r--r-- | guix/import/git.scm | 17 | ||||
-rw-r--r-- | tests/import-git.scm | 9 |
3 files changed, 18 insertions, 11 deletions
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 2b22b2ce1e..c2f4392f76 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -374,7 +374,6 @@ GLib and GIO. It was started as a complete rewrite of the former Xfce menu library called libxfce4menu, which, in contrast to garcon, was lacking menu merging features essential for loading menus modified with menu editors.") (license lgpl2.0+) - ;; FIXME: the 'generic-git' updater treat "rc" as pre-releases. (properties `((release-tag-prefix . ,(string-append name "-")))))) (define-public tumbler @@ -915,7 +914,6 @@ and import the new pictures from your camera.") (description "The Thunar Archive Plugin allows you to create and extract archive files using the file context menus in the Thunar file manager.") (license gpl2+) - ;; FIXME: the 'generic-git' updater treat "rc" as pre-releases. (properties `((release-tag-prefix . ,(string-append name "-")))))) (define-public thunar-shares-plugin @@ -2438,5 +2436,4 @@ local weather in the panel, using forecast data provided by the developers and people that want to build Xfce from Git In addition it contains the Xfce developer's handbook.") (license gpl2+) - ;; FIXME: the 'generic-git' updater treat "dev" as pre-releases. (properties `((release-tag-prefix . ,(string-append name "-")))))) diff --git a/guix/import/git.scm b/guix/import/git.scm index ab51719255..305b2fc43f 100644 --- a/guix/import/git.scm +++ b/guix/import/git.scm @@ -138,9 +138,16 @@ version corresponding to the tag, and the cdr is the name of the tag." (define (entry<? a b) (eq? (version-compare (car a) (car b)) '<)) + (define (pre-release? tag) + (any (cut regexp-exec <> tag) + %pre-release-rx)) + (stable-sort (filter-map (lambda (tag) (let ((version (get-version tag))) - (and version (cons version tag)))) + (and version + (or pre-releases? + (not (pre-release? version))) + (cons version tag)))) tags) entry<?)) @@ -149,16 +156,10 @@ version corresponding to the tag, and the cdr is the name of the tag." "Return the latest version and corresponding tag available from the Git repository at URL. Optionally include a VERSION string to fetch a specific version." - (define (pre-release? tag) - (any (cut regexp-exec <> tag) - %pre-release-rx)) - (let* ((tags (map (cut string-drop <> (string-length "refs/tags/")) (remote-refs url #:tags? #t))) (versions->tags - (version-mapping (if pre-releases? - tags - (filter (negate pre-release?) tags)) + (version-mapping tags #:prefix prefix #:suffix suffix #:delim delim diff --git a/tests/import-git.scm b/tests/import-git.scm index 20255dedb3..6dd8ad1649 100644 --- a/tests/import-git.scm +++ b/tests/import-git.scm @@ -224,4 +224,13 @@ (let ((package (make-package directory "1.0.0"))) (latest-git-tag-version package)))) +(test-equal "latest-git-tag-version: prefix contains pre-release words" + "1.0.1" + (with-temporary-git-repository directory + '((add "a.txt" "A") + (commit "First commit") + (tag "libdevx-1.0.1" "Release 1.0.1")) + (let ((package (make-package directory "1.0.0"))) + (latest-git-tag-version package)))) + (test-end "git") |