aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/lint.scm27
-rw-r--r--tests/lint.scm25
2 files changed, 43 insertions, 9 deletions
diff --git a/guix/lint.scm b/guix/lint.scm
index 31d366af46..63d101ebf9 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021-2023 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2024 Gabriel Wicki <gabriel@erlikon.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -437,15 +438,23 @@ trademark sign '~a' at ~d")
'()))
(define (check-proper-start description)
- (if (or (string-null? description)
- (properly-starts-sentence? description)
- (string-prefix-ci? (package-name package) description))
- '()
- (list
- (make-warning
- package
- (G_ "description should start with an upper-case letter or digit")
- #:field 'description))))
+ (let* ((initial
+ (string-take description
+ (or (string-index description #\space)
+ 0)))
+ (first-word
+ (regexp-substitute/global #f "_" initial
+ 'pre "-" 'post)))
+ (if (or (string-null? description)
+ (properly-starts-sentence? description)
+ (string-prefix-ci? first-word (package-name package))
+ (string-suffix-ci? first-word (package-name package)))
+ '()
+ (list
+ (make-warning
+ package
+ (G_ "description should start with an upper-case letter or digit")
+ #:field 'description)))))
(define (check-end-of-sentence-space description)
"Check that an end-of-sentence period is followed by two spaces."
diff --git a/tests/lint.scm b/tests/lint.scm
index b899ebc700..9297bfbaac 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021, 2023 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2024 Gabriel Wicki <gabriel@erlikon.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -132,6 +133,30 @@
(description "x is a dummy package."))))
(check-description-style pkg)))
+(test-equal "description: may start with beginning of package name"
+ '()
+ (let ((pkg (dummy-package "xyz-0.1"
+ (description "xyz is a dummy package."))))
+ (check-description-style pkg)))
+
+(test-equal "description: may start with end of package name"
+ '()
+ (let ((pkg (dummy-package "foobar-xyz"
+ (description "xyz is a dummy package."))))
+ (check-description-style pkg)))
+
+(test-equal "description: may start with non-hyphenated package name"
+ '()
+ (let ((pkg (dummy-package "foobar-xyz-minimal"
+ (description "foobar_xyz is a dummy package."))))
+ (check-description-style pkg)))
+
+(test-equal "description: may start with end of package name"
+ '()
+ (let ((pkg (dummy-package "foo-bar"
+ (description "bar is some thing in foo."))))
+ (check-description-style pkg)))
+
(test-equal "description: two spaces after end of sentence"
"sentences in description should be followed by two spaces; possible infraction at 3"
(single-lint-warning-message
g-tooltip'>* gnu/installer/hardware.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * po/guix/POTFILES.in: Add it. * gnu/installer.scm (installer-steps): Pass #:pci-database to the 'welcome' step procedure. * gnu/installer/newt.scm (welcome-page): Add #:pci-database and pass it to 'run-welcome-page'. * gnu/installer/newt/welcome.scm (check-hardware-support): Add #:pci-database. Enumerate unsupported PCI devices and run an error page when unsupported devices are found. (run-welcome-page): Add #:pci-database and pass it to 'check-hardware-support' and to the recursive call. * gnu/installer/record.scm (<installer>)[welcome-page]: Adjust comment. * doc/guix.texi (Hardware Considerations): Mention it. Ludovic Courtès 2022-11-04nls: Update translations....* po/guix/lt.po: New file. * po/guix/LINGUAS: Add lt. Julien Lepiller 2022-10-08po: Fix syntax error in French translation....* po/doc/guix-manual.fr.po: Add missing space. Ricardo Wurmus 2022-10-08po: Fix syntax error in German translation....* po/doc/guix-manual.de.po: Remove double wrapping of @uref. Ricardo Wurmus 2022-10-06nls: Update translations.Julien Lepiller 2022-10-06services: dhcp-client: Implement and use a configuration record....* gnu/services/networking.scm (dhcp-client-configuration): New record configuration. (dhcp-client-shepherd-service): Implement a shepher service. Provide a deprication message for legacy configurations. (dhcp-client-service-type): Use dhcp-client-shepherd-service. * doc/guix.texi (Networking Setup): Update. * po/guix/POTFILES.in: Add 'gnu/services/networking.scm'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Alexey Abramov 2022-09-24services: Add samba service....* gnu/services/samba.scm: New file. * gnu/tests/samba.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. * po/guix/POTFILES.in Add 'gnu/services/samba.scm'. * doc/guix.texi: Document it. Signed-off-by: Lars-Dominik Braun <lars@6xq.net> Simon Streit 2022-09-04nls: Update translations.Julien Lepiller 2022-08-16ui: Describe package outputs....* guix/ui.scm (package->recutils): Output outputs with their descriptions, one per line. * po/packages/Makevars (XGETTEXT_OPTIONS): Add ‘output-synopsis’ as keyword. Liliana Marie Prikler 2022-08-11po: Add 'guix/read-print.scm'....This is a followup to b21d05d232ec0aba5abec20e83cc52c1d5163cc3. * po/guix/POTFILES.in: Add 'guix/read-print.scm'. Ludovic Courtès 2022-08-10nls: Update translations....po/guix/bn.po: New file. po/guix/LINGUAS: Add it. Julien Lepiller 2022-07-09nls: Update translations....po/guix/tr.po: New file. po/guix/LINGUAS: Add it. Julien Lepiller 2022-06-24services: configuration: Report the location of field type errors....Previously field type errors would be reported in a non-standard way, and without any source location information. This fixes it. * gnu/services/configuration.scm (configuration-field-error): Add a 'loc' parameter and honor it. Use 'formatted-message' instead of plain 'format'. (define-configuration-helper)[field-sanitizer]: New procedure. Use it. Use STEM as the identifier of the syntactic constructor of the record type. Add a 'sanitize' property to each field. Remove now useless STEM macro that would call 'validate-configuration'. * gnu/services/mail.scm (serialize-listener-configuration): Adjust to new 'configuration-field-error' prototype. * tests/services/configuration.scm ("wrong type for a field"): New test. * po/guix/POTFILES.in: Add gnu/services/configuration.scm. Ludovic Courtès 2022-06-17home: Add OpenSSH service....* gnu/home/services/ssh.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Secure Shell): New section. Ludovic Courtès 2022-06-04nls: Update translations....po/packages/tr.po: New file. po/packages/LINGUAS: Add it. Julien Lepiller 2022-06-04guix home: Add 'edit' sub-command....* guix/scripts/home/edit.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/home.scm (show-help): Add "edit". (process-command): Handle it. (guix-home): Add it. * po/guix/POTFILES.in: Add 'guix/scripts/home/edit.scm'. * doc/guix.texi (Invoking guix home): Document it. Ludovic Courtès 2022-06-04guix system: Add 'edit' sub-command....* guix/scripts/system/edit.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/system.scm (show-help): Mention "edit". (actions): Add it. (process-command): Handle it. * doc/guix.texi (Invoking guix system): Document it. * po/guix/POTFILES.in: Add guix/scripts/system/edit.scm. Ludovic Courtès 2022-05-01nls: Update translations....po/guix/ja.po: New file. po/guix/LINGUAS: Add it. Julien Lepiller 2022-04-02nls: Update translations....* po/packages/fi.po: New file. * po/packages/LINGUAS: Add it. Julien Lepiller 2022-04-02nls: Enforce translation thresholds....* po/doc/guix-cookbook.es.po: Remove file. * po/doc/guix-cookbook.fa.po: Remove file. * po/doc/guix-cookbook.fi.po: Remove file. * po/doc/guix-cookbook.pt_BR.po: Remove file. * po/doc/guix-cookbook.ru.po: Remove file. * po/doc/guix-cookbook.uk.po: Remove file. * po/doc/guix-cookbook.zh_Hans.po: Remove file. * po/doc/guix-manual.fa.po: Remove file. * po/doc/guix-manual.fi.po: Remove file. * po/doc/guix-manual.it.po: Remove file. * po/doc/guix-manual.ko.po: Remove file. * po/doc/guix-manual.sk.po: Remove file. * po/doc/local.mk: Remove them. * doc/local.mk: Remove them. Julien Lepiller 2022-03-18graph: Factorize 'lookup-backend'....* guix/graph.scm (lookup-backend): New procedure. * guix/scripts/graph.scm (lookup-backend): Remove. * guix/scripts/system.scm (lookup-backend): Remove. * po/guix/POTFILES.in: Add 'guix/graph.scm'. Ludovic Courtès 2022-03-01nls: Update translations....* po/doc/guix-cookbook.uk.po: New file. * po/doc/local.mk: Add uk cookbook. * doc/local.mk: Add uk cookbook. * po/guix/fa.po: New file. * po/guix/uk.po: New file. * po/guix/LINGUAS: Add fa and uk. Julien Lepiller 2022-02-04nls: Update translations....* po/doc/guix-cookbook.pt_BR.po: New file. * po/doc/local.mk: Add it. * doc/local.mk: Add pt_BR cookbook. Julien Lepiller