mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38: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 © 2020 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
|
||||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -81,6 +82,7 @@ (define-module (guix lint)
|
|||
check-synopsis-style
|
||||
check-derivation
|
||||
check-home-page
|
||||
check-name
|
||||
check-source
|
||||
check-source-file-name
|
||||
check-source-unstable-tarball
|
||||
|
@ -173,14 +175,20 @@ (define-record-type* <lint-checker>
|
|||
(define (check-name package)
|
||||
"Check whether PACKAGE's name matches our guidelines."
|
||||
(let ((name (package-name package)))
|
||||
;; Currently checks only whether the name is too short.
|
||||
(if (and (<= (string-length name) 1)
|
||||
(not (string=? name "r"))) ; common-sense exception
|
||||
(list
|
||||
(make-warning package
|
||||
(G_ "name should be longer than a single character")
|
||||
#:field 'name))
|
||||
'())))
|
||||
(cond
|
||||
;; Currently checks only whether the name is too short.
|
||||
((and (<= (string-length name) 1)
|
||||
(not (string=? name "r"))) ; common-sense exception
|
||||
(list
|
||||
(make-warning package
|
||||
(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)
|
||||
(string-match "^[(\"'`[:upper:][:digit:]]" s))
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
|
||||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -270,6 +271,12 @@ (define (warning-contains? str warnings)
|
|||
(description "Imagine this is Taylor UUCP."))))
|
||||
(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"
|
||||
"'pkg-config' should probably be a native input"
|
||||
(single-lint-warning-message
|
||||
|
|
Loading…
Reference in a new issue