import: git: Do not search pre-release words in tag prefix.

This fixes tags like 'xfce4-dev-tools-4.20.0'.

* tests/import-git.scm ("latest-git-tag-version: prefix contains pre-release
words"): New test.
* guix/import/git.scm (latest-tag): Don't filter out pre-releases tags.
(version-mapping): Filter out pre-releases tags from versions.
* gnu/packages/xfce.scm (garcon, thunar-archive-plugin, xfce4-dev-tools):
Remove FIXME comments for the 'generic-git' updater.

Change-Id: I7683200fa451d7fad153aa08fa9d5761688de01d
This commit is contained in:
宋文武 2025-01-07 14:16:28 +08:00
parent 11d0bdad96
commit e74040b73c
No known key found for this signature in database
GPG key ID: D415BF253B515976
3 changed files with 18 additions and 11 deletions

View file

@ -374,7 +374,6 @@ (define-public garcon
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 @@ (define-public thunar-archive-plugin
(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 @@ (define-public xfce4-dev-tools
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 "-"))))))

View file

@ -138,9 +138,16 @@ (define (get-version 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 @@ (define* (latest-tag url
"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

View file

@ -224,4 +224,13 @@ (define* (make-package directory version #:optional (properties '()))
(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")