Subject: [PATCH 2/2] lint: Warn about single-character package names.

From: Tobias Geerinckx-Rice <[email-masked]>
Date: Tue, 9 Mar 2021 22:41:58 +0100

* guix/lint.scm (check-name): New procedure.
(%local-checkers): Add it.
---
 guix/lint.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/guix/lint.scm b/guix/lint.scm
index 311bc94cc3..5144fa139d 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Danny Milosavljevic <[email-masked]>
 ;;; Copyright © 2016 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2017 Alex Kost <[email-masked]>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2017, 2021 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2018, 2019 Arun Isaac <[email-masked]>
 ;;; Copyright © 2020 Chris Marusich <[email-masked]>
@@ -170,6 +170,16 @@
   (requires-store? lint-checker-requires-store?
                    (default #f)))
 
+(define (check-name package)
+  "Check whether PACKAGE's name matches our guidelines."
+  ;; Currently checks only whether the name is too short.
+  (if (<= (string-length (package-name package)) 1)
+      (list
+       (make-warning package
+                     (G_ "name should be longer than a single character")
+                     #:field 'name))
+      '()))
+
 (define (properly-starts-sentence? s)
   (string-match "^[(\"'`[:upper:][:digit:]]" s))
 
@@ -1445,6 +1455,10 @@ them for PACKAGE."
 
 (define %local-checkers
   (list
+   (lint-checker
+     (name        'name)
+     (description "Validate package names")
+     (check       check-name))
    (lint-checker
      (name        'description)
      (description "Validate package descriptions")
-- 
2.30.1