~ruther/guix-local

510ad5d93c0ba6208aa42815863853ec522352e6 — Herman Rimm 2 years ago e62fd90
import: utils: End package descriptions with period.

* guix/import/utils.scm (beautify-description): Append period to last
words which do not end with one.
* tests/crate.scm: Append period to descriptions.
* tests/elm.scm: Append period to descriptions.
* tests/gem.scm: Append period to descriptions.
* tests/hexpm.scm: Append period to descriptions.
* tests/minetest.scm: Append period to descriptions.
* tests/pypi.scm: Append period to descriptions.
* tests/import-utils.scm ("beautify-description: transform fragment into
sentence"): Likewise.

Change-Id: I0b12c4d94cb26cf62fab5b7cbf7885e66ff6c10f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
M guix/import/utils.scm => guix/import/utils.scm +9 -0
@@ 370,6 370,15 @@ LENGTH characters."
             (cons* "This" "package"
                    (string-downcase first) rest))
            (_ words)))
         (new-words
           (match new-words
             ((rest ... last)
              (reverse (cons (if (or (string-suffix? "." last)
                                     (string-suffix? "!" last)
                                     (string-suffix? "?" last))
                               last
                               (string-append last "."))
                             (reverse rest))))))
         (cleaned
          (string-join (map fix-word new-words))))
    ;; Use double spacing between sentences

M tests/crate.scm => tests/crate.scm +18 -18
@@ 503,7 503,7 @@
                         (("rust-leaf-alice" ('unquote 'rust-leaf-alice-0.7))))))
                      (home-page "http://example.com")
                      (synopsis "summary")
                      (description "This package provides summary")
                      (description "This package provides summary.")
                      (license (list license:expat license:asl2.0))))

           (string=? test-source-hash hash))


@@ 592,7 592,7 @@
                 ('quasiquote (#:skip-build? #t)))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-leaf-alice-0.7
              (package


@@ 611,7 611,7 @@
                (arguments ('quasiquote (#:skip-build? #t)))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-leaf-bob-3
              (package


@@ 630,7 630,7 @@
                (arguments ('quasiquote (#:skip-build? #t)))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-intermediate-b-1
              (package


@@ 653,7 653,7 @@
                                 ('unquote rust-leaf-bob-3))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-intermediate-a-1
              (package


@@ 680,7 680,7 @@
                                 ('unquote rust-leaf-bob-3))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-root-1
              (package


@@ 711,7 711,7 @@
                                 ('unquote rust-intermediate-c-1))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0)))))
           #t)
          (x


@@ 740,7 740,7 @@
                                 ('unquote rust-leaf-alice-0.7))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-leaf-alice-0.7
              (package


@@ 758,7 758,7 @@
                (build-system cargo-build-system)
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-leaf-bob-3
              (package


@@ 776,7 776,7 @@
                (build-system cargo-build-system)
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-intermediate-b-1
              (package


@@ 798,7 798,7 @@
                                 ('unquote rust-leaf-bob-3))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-intermediate-a-1
              (package


@@ 824,7 824,7 @@
                                 ('unquote rust-leaf-bob-3))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-root-1
              (package


@@ 855,7 855,7 @@
                                 ('unquote rust-intermediate-c-1))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0)))))
           #t)
          (x


@@ 972,7 972,7 @@
                             ('unquote 'rust-leaf-bob-4.0.0-yanked))))))
            (home-page "http://example.com")
            (synopsis "summary")
            (description "This package provides summary")
            (description "This package provides summary.")
            (license (list license:expat license:asl2.0)))))
       #t)
      (x


@@ 1038,7 1038,7 @@
                (build-system cargo-build-system)
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-leaf-bob-3.0.2-yanked
              (package


@@ 1058,7 1058,7 @@
                (build-system cargo-build-system)
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-leaf-bob-3
              (package


@@ 1076,7 1076,7 @@
                (build-system cargo-build-system)
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0))))
            (define-public 'rust-bar-1
              (package


@@ 1103,7 1103,7 @@
                                 ('unquote 'rust-leaf-bob-4.0.0-yanked))))))
                (home-page "http://example.com")
                (synopsis "summary")
                (description "This package provides summary")
                (description "This package provides summary.")
                (license (list license:expat license:asl2.0)))))
            #t)
          (x

M tests/elm.scm => tests/elm.scm +1 -1
@@ 257,7 257,7 @@ package definition."
                 "https://package.elm-lang.org/packages/elm-guix/demo/3.0.0")
                (synopsis "A test for `(guix import elm)`")
                (description
                 "This package provides a test for `(guix import elm)`")
                 "This package provides a test for `(guix import elm)`.")
                (properties '((upstream-name . "elm-guix/demo")))
                (license license:gpl3+)))
            (equal? (directory-sha256 elm-guix-demo-dir)

M tests/gem.scm => tests/gem.scm +6 -6
@@ 117,7 117,7 @@
          (build-system ruby-build-system)
          (propagated-inputs (list bundler ruby-bar))
          (synopsis "A cool gem")
          (description "This package provides a cool gem")
          (description "This package provides a cool gem.")
          (home-page "https://example.com")
          (license (list license:expat license:asl2.0)))
       #t)


@@ 146,7 146,7 @@
          (build-system ruby-build-system)
          (propagated-inputs (list bundler ruby-bar))
          (synopsis "A cool gem")
          (description "This package provides a cool gem")
          (description "This package provides a cool gem.")
          (home-page "https://example.com")
          (license (list license:expat license:asl2.0)))
       #t)


@@ 182,7 182,7 @@
               (build-system ruby-build-system)
               (propagated-inputs (list bundler))
               (synopsis "Another cool gem")
               (description "Another cool gem")
               (description "Another cool gem.")
               (home-page "https://example.com")
               (license #f))                      ;no licensing info
             (package


@@ 198,7 198,7 @@
               (build-system ruby-build-system)
               (propagated-inputs (list bundler ruby-bar))
               (synopsis "A cool gem")
               (description "This package provides a cool gem")
               (description "This package provides a cool gem.")
               (home-page "https://example.com")
               (license (list license:expat license:asl2.0))))
           #t)


@@ 234,7 234,7 @@
               (build-system ruby-build-system)
               (propagated-inputs (list bundler))
               (synopsis "Another cool gem")
               (description "Another cool gem")
               (description "Another cool gem.")
               (home-page "https://example.com")
               (license #f))                      ;no licensing info
             (package


@@ 250,7 250,7 @@
               (build-system ruby-build-system)
               (propagated-inputs (list bundler ruby-bar))
               (synopsis "A cool gem")
               (description "This package provides a cool gem")
               (description "This package provides a cool gem.")
               (home-page "https://example.com")
               (license (list license:expat license:asl2.0))))
           #t)

M tests/hexpm.scm => tests/hexpm.scm +4 -4
@@ 152,7 152,7 @@
          (build-system rebar-build-system)
          (inputs (list erlang-blubb erlang-fasel))
          (synopsis "A cool package")
          (description "This package provides a cool package")
          (description "This package provides a cool package.")
          (home-page "https://hex.pm/packages/bla")
          (license (list license:expat license:asl2.0)))
       #t)


@@ 212,7 212,7 @@
               (build-system mix-build-system)
               (inputs (list erlang-fasel))
               (synopsis "Another cool package")
               (description "Another cool package")
               (description "Another cool package.")
               (home-page "https://hex.pm/packages/blubb")
               (license license:expat))
             (package


@@ 227,7 227,7 @@
                    "1k6d70mxwqgq78jrbr7yqnw187yki74jnagybi7nacrj4a67qjha"))))
               (build-system gnu-build-system)
               (synopsis "Yet another cool package")
               (description "Yet another cool package")
               (description "Yet another cool package.")
               (home-page "https://hex.pm/packages/fasel")
               (license "GPL"))
             (package


@@ 243,7 243,7 @@
               (build-system rebar-build-system)
               (inputs (list erlang-blubb erlang-fasel))
               (synopsis "A cool package")
               (description "This package provides a cool package")
               (description "This package provides a cool package.")
               (home-page "https://hex.pm/packages/bla")
               (license (list license:expat license:asl2.0))))
           #t)

M tests/import-utils.scm => tests/import-utils.scm +1 -1
@@ 43,7 43,7 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS."))

(test-equal "beautify-description: transform fragment into sentence"
  "This package provides a function to establish world peace"
  (beautify-description "A function to establish world peace"))
  (beautify-description "A function to establish world peace."))

(test-equal "beautify-description: remove single quotes"
  "CRAN likes to quote acronyms and function names."

M tests/minetest.scm => tests/minetest.scm +1 -1
@@ 48,7 48,7 @@
                            (home-page "https://example.org/foo")
                            (repo "https://example.org/foo.git")
                            (synopsis "synopsis")
                            (guix-description "description")
                            (guix-description "description.")
                            (guix-license
                             '(list license:cc-by-sa4.0 license:lgpl3+))
                            (inputs '())

M tests/pypi.scm => tests/pypi.scm +4 -4
@@ 315,7 315,7 @@ files specified by SPECS.  Return its file name."
            (native-inputs (list python-pytest))
            (home-page "http://example.com")
            (synopsis "summary")
            (description "summary")
            (description "summary.")
            (license license:lgpl2.0))
         (and (string=? default-sha256/base32 hash)
              (equal? (pypi->guix-package "foo" #:version "1.0.0")


@@ 356,7 356,7 @@ to make sure we're testing wheels"))))
            (native-inputs (list python-pytest))
            (home-page "http://example.com")
            (synopsis "summary")
            (description "summary")
            (description "summary.")
            (license license:lgpl2.0))
         (string=? default-sha256/base32 hash))
        (x


@@ 384,7 384,7 @@ to make sure we're testing wheels"))))
            (build-system pyproject-build-system)
            (home-page "http://example.com")
            (synopsis "summary")
            (description "summary")
            (description "summary.")
            (license license:lgpl2.0))
         (string=? default-sha256/base32 hash))
        (x


@@ 414,7 414,7 @@ to make sure we're testing wheels"))))
            (native-inputs (list python-pytest))
            (home-page "http://example.com")
            (synopsis "summary")
            (description "summary")
            (description "summary.")
            (license license:lgpl2.0))
         (string=? default-sha256/base32 hash))
        (x