diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index b61373760c..e8d3707080 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -140,11 +140,18 @@ (define (check-start-article synopsis) "no article allowed at the beginning of the synopsis" 'synopsis))) + (define (check-synopsis-length synopsis) + (if (>= (string-length synopsis) 80) + (emit-warning package + "synopsis should be less than 80 characters long" + 'synopsis))) + (let ((synopsis (package-synopsis package))) (if (string? synopsis) (begin (check-final-period synopsis) - (check-start-article synopsis))))) + (check-start-article synopsis) + (check-synopsis-length synopsis))))) (define (check-patches package) ;; Emit a warning if the patches requires by PACKAGE are badly named. diff --git a/tests/lint.scm b/tests/lint.scm index 56558c904f..e0829089b4 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -79,6 +79,15 @@ (define (call-with-warnings thunk) (check-synopsis-style pkg)))) "no article allowed at the beginning of the synopsis"))) +(test-assert "synopsis: too long" + (->bool + (string-contains (call-with-warnings + (lambda () + (let ((pkg (dummy-package "x" + (synopsis (make-string 80 #\x))))) + (check-synopsis-style pkg)))) + "synopsis should be less than 80 characters long"))) + (test-assert "inputs: pkg-config is probably a native input" (->bool (string-contains