From e74040b73cd38467e886ed9e2f1e1b351d13c2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Tue, 7 Jan 2025 14:16:28 +0800 Subject: [PATCH] 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 --- 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 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 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 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")