;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès ;;; ;;; 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 . (define-module (test-discovery) #:use-module (guix discovery) #:use-module (guix build-system) #:use-module (guix utils) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) (define %top-srcdir (dirname (search-path %load-path "guix.scm"))) (test-begin "discovery") (test-assert "scheme-modules" (match (map module-name (scheme-modules %top-srcdir "guix/import")) ((('guix 'import _ ...) ..1) #t))) (test-assert "scheme-modules recurses in symlinks to directories" (call-with-temporary-directory (lambda (directory) (mkdir (string-append directory "/guix")) (symlink (string-append %top-srcdir "/guix/import") (string-append directory "/guix/import")) ;; DIRECTORY/guix/import is a symlink but we want to make sure ;; 'scheme-modules' recurses into it. (match (map module-name (scheme-modules directory)) ((('guix 'import _ ...) ..1) #t))))) (test-equal "scheme-modules, non-existent directory" '() (scheme-modules "/does/not/exist")) (test-assert "all-modules" (match (map module-name (all-modules `((,%top-srcdir . "guix/build-system")))) ((('guix 'build-system names) ..1) names))) (test-assert "fold-module-public-variables" (let ((modules (all-modules `((,%top-srcdir . "guix/build-system"))))) (match (fold-module-public-variables (lambda (obj result) (if (build-system? obj) (cons obj result) result)) '() modules) (((? build-system? bs) ..1) bs)))) (test-end "discovery") e='2022-01-19 20:47:03 +0100'>2022-01-19etc: Match define-public only at line start....The current regexp simply matches the first occurence, which more often than not points to the *previous* variable. * etc/snippets/text-mode/guix-commit-message-update-package ($1): Restrict match to beginning of line with optional indentation. Liliana Marie Prikler 2021-06-26etc: snippets: Use ‘hg-file-name’ when origin uses ‘hg-fetch’...Adjust to changes in commit aaafd19bd1e37265de07e246286a6819792c25b4. * etc/snippets/scheme-mode/guix-origin: Use ‘hg-file-name’ instead of ‘string-append’ when ‘method’ for origin is ‘hg-fetch’. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen 2020-12-23etc: snippets: Add new build systems to package snippet....* etc/snippets/scheme-mode/guix-package: Add the following as possibilities for the build-system field: clojure-build-system copy-build-system dune-build-system guile-build-system julia-build-system linux-module-build-system maven-build-system node-build-system qt-build-system rakudo-build-system Signed-off-by: Ludovic Courtès <ludo@gnu.org> Morgan Smith 2020-12-04etc: snippets: Fix name extraction....* etc/snippets/text-mode/guix-commit-message-add-package: Fix name extraction. This is a follow-up to 988a49c78ef19ad25cef543e2059a19db04bbd36. Nicolas Goaziou 2020-12-04etc: snippets: Fix name extraction....* etc/snippets/text-mode/guix-commit-message-update-package: Since git commit mode is not derived from any Lisp mode, so-called sexp or symbols do not include the period character. As a consequence, names including versions are not properly extracted. Also use more idiomatic (goto-char (point-min)) instead of (beginning-of-buffer). Nicolas Goaziou 2020-11-25etc: snippets: Fix "gnu: Add ..." name when prefilling Common Lisp commits me......* etc/snippets/text-mode/guix-commit-message-add-cl-package: Fix name and simplify the "New variables" line. Pierre Neidhardt 2020-11-23etc: snippets: Prefill Common Lisp package names....* etc/snippets/text-mode/guix-commit-message-add-cl-package: New file. Pierre Neidhardt 2020-11-23etc: snippets: Fix package name extraction....* etc/snippets/text-mode/guix-commit-message-add-package: Properly extract name when the diff contains a very short `define-public ...` above the actual new package. This can happen when the above package is a small inherited definition or cl/ecl package. Pierre Neidhardt