mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
lint: Warn about underscores in package names.
As per section '16.4.2 Package Naming' in the manual, use hyphens instead of underscores in package names. * guix/lint.scm (check-name): Check whether the package name contains underscores. * tests/lint.scm ("name: use underscore in package name"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
5b35c9adc8
commit
c68070e4ee
2 changed files with 23 additions and 8 deletions
|
@ -11,6 +11,7 @@
|
||||||
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
|
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
|
||||||
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
|
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
|
||||||
|
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -81,6 +82,7 @@ (define-module (guix lint)
|
||||||
check-synopsis-style
|
check-synopsis-style
|
||||||
check-derivation
|
check-derivation
|
||||||
check-home-page
|
check-home-page
|
||||||
|
check-name
|
||||||
check-source
|
check-source
|
||||||
check-source-file-name
|
check-source-file-name
|
||||||
check-source-unstable-tarball
|
check-source-unstable-tarball
|
||||||
|
@ -173,14 +175,20 @@ (define-record-type* <lint-checker>
|
||||||
(define (check-name package)
|
(define (check-name package)
|
||||||
"Check whether PACKAGE's name matches our guidelines."
|
"Check whether PACKAGE's name matches our guidelines."
|
||||||
(let ((name (package-name package)))
|
(let ((name (package-name package)))
|
||||||
;; Currently checks only whether the name is too short.
|
(cond
|
||||||
(if (and (<= (string-length name) 1)
|
;; Currently checks only whether the name is too short.
|
||||||
(not (string=? name "r"))) ; common-sense exception
|
((and (<= (string-length name) 1)
|
||||||
(list
|
(not (string=? name "r"))) ; common-sense exception
|
||||||
(make-warning package
|
(list
|
||||||
(G_ "name should be longer than a single character")
|
(make-warning package
|
||||||
#:field 'name))
|
(G_ "name should be longer than a single character")
|
||||||
'())))
|
#:field 'name)))
|
||||||
|
((string-index name #\_)
|
||||||
|
(list
|
||||||
|
(make-warning package
|
||||||
|
(G_ "name should use hyphens instead of underscores")
|
||||||
|
#:field 'name)))
|
||||||
|
(else '()))))
|
||||||
|
|
||||||
(define (properly-starts-sentence? s)
|
(define (properly-starts-sentence? s)
|
||||||
(string-match "^[(\"'`[:upper:][:digit:]]" s))
|
(string-match "^[(\"'`[:upper:][:digit:]]" s))
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
|
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
|
||||||
|
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -270,6 +271,12 @@ (define (warning-contains? str warnings)
|
||||||
(description "Imagine this is Taylor UUCP."))))
|
(description "Imagine this is Taylor UUCP."))))
|
||||||
(check-synopsis-style pkg)))
|
(check-synopsis-style pkg)))
|
||||||
|
|
||||||
|
(test-equal "name: use underscore in package name"
|
||||||
|
"name should use hyphens instead of underscores"
|
||||||
|
(single-lint-warning-message
|
||||||
|
(let ((pkg (dummy-package "under_score")))
|
||||||
|
(check-name pkg))))
|
||||||
|
|
||||||
(test-equal "inputs: pkg-config is probably a native input"
|
(test-equal "inputs: pkg-config is probably a native input"
|
||||||
"'pkg-config' should probably be a native input"
|
"'pkg-config' should probably be a native input"
|
||||||
(single-lint-warning-message
|
(single-lint-warning-message
|
||||||
|
|
Loading…
Reference in a new issue