* [bug#75418] [PATCH] import: git: Do not search pre-release words in tag prefix.
@ 2025-01-07 6:16 iyzsong--- via Guix-patches via
0 siblings, 0 replies; only message in thread
From: iyzsong--- via Guix-patches via @ 2025-01-07 6:16 UTC (permalink / raw)
To: 75418; +Cc: 宋文武, 宋文武
From: 宋文武 <iyzsong@member.fsf.org>
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
---
gnu/packages/xfce.scm | 3 ---
guix/import/git.scm | 17 +++++++++--------
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 c5e5009ccf..95520b9c22 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -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
@@ -894,7 +893,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
@@ -2417,5 +2415,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 "-"))))))
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 @@ (define* (version-mapping tags #:key prefix suffix delim pre-releases?)
(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
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 @@ (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")
base-commit: 329daafcc3c798dd180fd98ff757452e3e016235
--
2.47.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-01-07 6:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-07 6:16 [bug#75418] [PATCH] import: git: Do not search pre-release words in tag prefix iyzsong--- via Guix-patches via
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).