From: Cyril Roelandt <tipecaml@gmail.com>
To: guix-devel@gnu.org
Subject: [PATCH 3/5] guix lint: check whether descriptions and synopses start with an upper-case letter.
Date: Sat, 27 Sep 2014 23:49:26 +0200 [thread overview]
Message-ID: <1411854568-11187-4-git-send-email-tipecaml@gmail.com> (raw)
In-Reply-To: <1411854568-11187-1-git-send-email-tipecaml@gmail.com>
* guix/scripts/lint.scm (check-description-style, check-synopsis-start-upper-case): New methods
* tests/lint.scm: Test them.
---
guix/scripts/lint.scm | 26 ++++++++++++++++++++++++++
tests/lint.scm | 18 ++++++++++++++++++
2 files changed, 44 insertions(+)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 12391ef..5f9b6e4 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -29,6 +29,7 @@
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
#:export (guix-lint
+ check-description-style
check-inputs-should-be-native
check-patches
check-synopsis-style))
@@ -110,6 +111,19 @@ Run a set of checkers on the specified package; if none is specified, run the ch
%checkers)
(exit 0))
+(define (start-with-upper-case s)
+ (char-set-contains? char-set:upper-case (string-ref s 0)))
+
+(define (check-description-style package)
+ ;; Emit a warning if stylistic issues are found in the description of PACKAGE.
+ (let ((description (package-description package)))
+ (when (and (string? description)
+ (not (string-null? description))
+ (not (start-with-upper-case description)))
+ (emit-warning package
+ "description should start with an upper-case letter"
+ 'description))))
+
(define (check-inputs-should-be-native package)
;; Emit a warning if some inputs of PACKAGE are likely to belong to its
;; native inputs.
@@ -146,9 +160,17 @@ Run a set of checkers on the specified package; if none is specified, run the ch
"synopsis should be less than 80 characters long"
'synopsis)))
+ (define (check-synopsis-start-upper-case synopsis)
+ (when (and (not (string-null? synopsis))
+ (not (start-with-upper-case synopsis)))
+ (emit-warning package
+ "synopsis should start with an upper-case letter"
+ 'synopsis)))
+
(let ((synopsis (package-synopsis package)))
(if (string? synopsis)
(begin
+ (check-synopsis-start-upper-case synopsis)
(check-final-period synopsis)
(check-start-article synopsis)
(check-synopsis-length synopsis)))))
@@ -172,6 +194,10 @@ Run a set of checkers on the specified package; if none is specified, run the ch
(define %checkers
(list
(lint-checker
+ (name "description")
+ (description "Validate package descriptions")
+ (check check-description-style))
+ (lint-checker
(name "inputs-should-be-native")
(description "Identify inputs that should be native inputs")
(check check-inputs-should-be-native))
diff --git a/tests/lint.scm b/tests/lint.scm
index e082908..ceb7abe 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -44,6 +44,24 @@
(thunk))
(get-output-string port)))
+(test-assert "description: does not start with an upper-case letter"
+ (->bool
+ (string-contains (call-with-warnings
+ (lambda ()
+ (let ((pkg (dummy-package "x"
+ (description "bad description."))))
+ (check-description-style pkg))))
+ "description should start with an upper-case letter")))
+
+(test-assert "synopsis: does not start with an upper-case letter"
+ (->bool
+ (string-contains (call-with-warnings
+ (lambda ()
+ (let ((pkg (dummy-package "x"
+ (synopsis "bad synopsis."))))
+ (check-synopsis-style pkg))))
+ "synopsis should start with an upper-case letter")))
+
(test-assert "synopsis: ends with a period"
(->bool
(string-contains (call-with-warnings
--
1.8.4.rc3
next prev parent reply other threads:[~2014-09-27 21:50 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-27 21:49 [PATCH 0/5] Add, fix and improve checkers in guix lint Cyril Roelandt
2014-09-27 21:49 ` [PATCH 1/5] guix lint: make sure check-patches retrieves patch names Cyril Roelandt
2014-09-28 10:08 ` Ludovic Courtès
2014-10-06 0:26 ` [PATCHv2 " Cyril Roelandt
2014-10-06 15:57 ` Ludovic Courtès
2014-09-27 21:49 ` [PATCH 2/5] guix lint: Make sure synopses are not too long Cyril Roelandt
2014-09-28 10:09 ` Ludovic Courtès
2014-09-27 21:49 ` Cyril Roelandt [this message]
2014-09-28 16:09 ` [PATCH 3/5] guix lint: check whether descriptions and synopses start with an upper-case letter Ludovic Courtès
2014-10-06 0:27 ` [PATCHv2 " Cyril Roelandt
2014-10-06 16:00 ` Ludovic Courtès
2014-10-06 0:28 ` [PATCH " Cyril Roelandt
2014-10-06 15:58 ` Ludovic Courtès
2014-09-27 21:49 ` [PATCH 4/5] guix lint: Make sure a synopsis cannot start with a lower-case article Cyril Roelandt
2014-09-28 16:11 ` Ludovic Courtès
2014-10-06 0:28 ` Cyril Roelandt
2014-09-27 21:49 ` [PATCH 5/5] guix lint: make sure synopses do not start with the package name Cyril Roelandt
2014-09-28 16:11 ` Ludovic Courtès
2014-09-28 16:49 ` [PATCH 0/5] Add, fix and improve checkers in guix lint Andreas Enge
2014-10-04 14:25 ` Cyril Roelandt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1411854568-11187-4-git-send-email-tipecaml@gmail.com \
--to=tipecaml@gmail.com \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).