aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (test-import-git)
  #:use-module (git)
  #:use-module (guix git)
  #:use-module (guix tests)
  #:use-module (guix packages)
  #:use-module (guix import git)
  #:use-module (guix git-download)
  #:use-module (guix tests git)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-64))

;; Test the (guix import git) tools.

(test-begin "git")

(define* (make-package directory version #:optional (properties '()))
  (dummy-package "test-package"
    (version version)
    (properties properties)
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url (string-append "file://" directory))
             (commit version)))
       (sha256
        (base32
         "0000000000000000000000000000000000000000000000000000"))))))

(test-equal "latest-git-tag-version: no custom prefix, suffix, and delimiter"
  "1.0.1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "1.0.1" "Release 1.0.1"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom prefix, no suffix and delimiter"
  "1.0.1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix-1.0.1" "Release 1.0.1"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-prefix . "prefix-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom suffix, no prefix and delimiter"
  "1.0.1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "1.0.1-suffix-123" "Release 1.0.1"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-suffix . "-suffix-[0-9]*")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom delimiter, no prefix and suffix"
  "2021.09.07"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2021-09-07" "Release 2021-09-07"))
    (let ((package (make-package directory "2021-09-06"
                                 '((release-tag-version-delimiter . "-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: empty delimiter, no prefix and suffix"
  "20210907"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "20210907" "Release 20210907"))
    (let ((package (make-package directory "20210906"
                                 '((release-tag-version-delimiter . "")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom prefix and suffix, no delimiter"
  "2.0.0"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "Release-2.0.0suffix-1" "Release 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-prefix . "Release-")
                                   (release-tag-suffix . "suffix-[0-9]")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: custom prefix, suffix, and delimiter"
  "2.0.0"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "Release-2_0_0suffix-1" "Release 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((release-tag-prefix . "Release-")
                                   (release-tag-suffix . "suffix-[0-9]")
                                   (release-tag-version-delimiter . "_")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: only pre-releases available"
  #f
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2.0.0-rc1" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases"
  "2.0.0-rc1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2.0.0-rc1" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom prefix"
  "2.0.0-rc1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "version-2.0.0-rc1" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "version-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom suffix"
  "2.0.0-rc1"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2.0.0-rc1-suffix" "Release candidate for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-suffix . "-suffix")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, delimiter conflicts with pre-release part"
  "2.0.0_alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "2_0_0_alpha" "Alpha release for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-version-delimiter . "_")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom suffix and prefix"
  "2.0.0-alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix123-2.0.0-alpha-suffix" "Alpha release for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "prefix[0-9]{3}-")
                                   (release-tag-suffix . "-suffix")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, and custom suffix, prefix, and delimiter"
  "2.0.0-alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix123-2-0-0-alpha-suffix" "Alpha release for 2.0.0"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "prefix[0-9]{3}-")
                                   (release-tag-suffix . "-suffix")
                                   (release-tag-version-delimiter . "-")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: accept pre-releases, no delimiter, and custom suffix, prefix"
  "2alpha"
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "prefix123-2alpha-suffix" "Alpha release for version 2"))
    (let ((package (make-package directory "1.0.0"
                                 '((accept-pre-releases? . #t)
                                   (release-tag-prefix . "prefix[0-9]{3}-")
                                   (release-tag-suffix . "-suffix")
                                   (release-tag-version-delimiter . "")))))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: no tags found"
  #f
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit"))
    (let ((package (make-package directory "1.0.0")))
      (latest-git-tag-version package))))

(test-equal "latest-git-tag-version: no valid tags found"
  #f
  (with-temporary-git-repository directory
      '((add "a.txt" "A")
        (commit "First commit")
        (tag "Test" "Test tag"))
    (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")
Change-Id: I327eaa3535bc273c8744583b966da22381c8a576 Ludovic Courtès 2024-08-19gnu: Add prrte....* gnu/packages/parallel.scm (prrte): New variable. Change-Id: I4427eec1a5c7d94ed5f9cbceb55f9372834a8971 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Romain GARBAGE 2024-08-19gnu: Add openpmix....* gnu/packages/parallel.scm (openpmix): New variable. Change-Id: Id23bc710c9b61ede0aebf7e2a18863fbe5fb8304 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Romain GARBAGE 2024-07-25gnu: parallel: Update to 20240722....* gnu/packages/parallel.scm (parallel): Update to 20240722. Change-Id: I0b13441a038807dd45a13a9b153ca6ba8799507d Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn> Andy Tai 2024-07-10gnu: cpuinfo: Fix supported systems....* gnu/packages/parallel.scm (cpuinfo)[supported-systems]: Fix typo in armhf-linux. Change-Id: Idf2f683061c960e65ee173ea4b837387ee64d6c8 Efraim Flashner 2024-06-30gnu: Add python-schwimmbad....* gnu/packages/parallel.scm (python-schwimmbad): New variable. Change-Id: Ica4bc3989222e3d70e7cfc170bcca953353f8259 Sharlatan Hellseher 2024-06-29gnu: parallel: Update to 20240622....* gnu/packages/parallel.scm (parallel): Update to 20240622. Change-Id: I4cc8b2ded6a3ddcdfebbd1737a4f4268d7909ee8 Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn> Andy Tai 2024-06-18gnu: clog: Add "-DUSE_SYSTEM_LIBS=ON" configure flag....* gnu/packages/parallel.scm (clog)[arguments]: Add "-DUSE_SYSTEM_LIBS=ON" to #:configure-flags. * gnu/packages/patches/clog-fix-shared-build.patch: Adjust patch. David Elsing 2024-06-18gnu: cpuinfo: Update to commit aa4b216....* gnu/packages/parallel.scm (cpuinfo): Update to commit aa4b216. [arguments]: Set the "-DUSE_SYSTEM_LIBS=ON" configure flag instead of using a patch. [supported-systems]: New field. * gnu/packages/patches/cpuinfo-system-libraries.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove it. David Elsing 2024-06-18gnu: pthreadpool: Update to commit 178e3e0....* gnu/packages/parallel.scm (pthreadpool): Update to commit 178e3e0. David Elsing 2024-05-31gnu: slurm: Add patch for a useful fallback shell for ‘salloc’....* gnu/packages/patches/slurm-23-salloc-fallback-shell.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/parallel.scm (slurm): Use it. (slurm-22.05, slurm-21.08, slurm-20.11, slurm-20.02) (slurm-19.05, slurm-18.08): Drop it. Change-Id: I1498e8d21d631c988edf75a8bcc8d2ae5f244b7a Ludovic Courtès 2024-05-31gnu: parallel: Update to 20240522....* gnu/packages/parallel.scm (parallel): Update to 20240522. Change-Id: If9d78b0a6f50fd22e2ca8d290209dc7a83cba772 Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn> Andy Tai 2024-04-26gnu: parallel: Update to 20240422....* gnu/packages/parallel.scm (parallel): Update to 20240422. Change-Id: I03928db86b3d292c02929b0adc10e09e818e09e3 Signed-off-by: Christopher Baines <mail@cbaines.net> Andy Tai 2024-04-02gnu: parallel: Update to 20240322....* gnu/packages/parallel.scm (parallel): Update to 20240322. Change-Id: I7207d4847cd407de637334688242132e8c557490 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Andy Tai 2024-03-25gnu: xe: Fix cross-compilation....* gnu/packages/parallel.scm (xe): Fix cross-compilation. [arguments]: Use Gexp. Change-Id: I937acbba1cb5ba0f04976121f06d01789caed456 Signed-off-by: Christopher Baines <mail@cbaines.net> Zheng Junjie 2024-02-29gnu: parallel: Update to 20240222....* gnu/packages/parallel.scm (parallel): Update to 20240222. Change-Id: I616057cfbe460e363c9da6c3e6f5c1e51d8971c4 Signed-off-by: Andreas Enge <andreas@enge.fr> Andy Tai 2024-02-11gnu: parallel: Update to 20240122....* gnu/packages/parallel.scm (parallel): Update to 20240122. Change-Id: I4e416cbad5b6f4267a9aab7996c9156a861e3ad1 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Andy Tai 2024-01-07gnu: parallel: Update to 20231222...* gnu/packages/parallel.scm (parallel): Update to 20231222 Change-Id: I4a32d93e7d7d5e79280d8d804701bb4a7ed57bb9 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Andy Tai 2023-12-03gnu: xe: Update to 1.0....* gnu/packages/parallel.scm (xe): Update to 1.0. Change-Id: If881efcd1db46fddd33b48e044ea02ee73e4a98e Signed-off-by: Ludovic Courtès <ludo@gnu.org> Greg Hogan 2023-11-26gnu: parallel: Update to 20231122....* gnu/packages/parallel.scm (parallel): Update to 20231122. Change-Id: Ia4a42fee8ce484845801b6e738a85f67169fae79 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Andy Tai 2023-11-15gnu: slurm: Add 23.02.6....* gnu/packages/parallel.scm (slurm): Update to 23.02.6. (slurm-22.05): New variable. Ludovic Courtès 2023-10-28gnu: parallel: Update to 20231022....* gnu/packages/parallel.scm (parallel): Update to 20231022. Signed-off-by: Clément Lassieur <clement@lassieur.org> Change-Id: I1af0cd5d61ebb4118d13dd0e2a56ea6b3d647c17 Andy Tai 2023-10-04gnu: parallel: Update to 20230922....* gnu/packages/parallel.scm (parallel): Update to 20230922. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Andy Tai 2023-09-08gnu: parallel: Update to 20230822....* gnu/packages/parallel.scm (parallel): Update to 20230822. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Andy Tai