On 02/01/16 01:04, Ricardo Wurmus wrote:
Ben Woodcroft <b.woodcr...@uq.edu.au> writes:
On 01/01/16 18:25, Ricardo Wurmus wrote:
Alex Kost <alez...@gmail.com> writes:
Ricardo Wurmus (2015-12-31 12:52 +0300) wrote:
Ben Woodcroft <b.woodcr...@uq.edu.au> writes:
Do you know though, is there any way to get emacs to insert the extra
space in description strings and comments automatically (without it
messing things up of course). Perhaps we should modify the importers to
insert this automatically in the description field.
The CRAN and Bioconductor importers already do this. See
“beautify-description” in “guix/import/cran.scm”.
Hm, is it reliable? Not all dots specify an end of a sentence: there
are things like "e.g.", "i.e.", "etc.". Also there may be abbreviations
like "ATA S.M.A.R.T. reading and parsing library" (synopsis of
'libatasmart' package). Or even things like “<form> ... </form>”
(description of 'perl-html-form') — it should probably be wrapped in
@code{} by the way.
It’s not supposed to be maintenance-free. Descriptions often start with
sentence fragments, which cannot be detected easily. I found that
“beautify-description” works well enough to make packaging R stuff much
simpler for me.
I'd like to add this to the Ruby importer. Do you think it is a good
idea to make your beautify-description available in import/utils ?
I think it could be generally useful to have something like that for all
importers. Do you want to prepare a patch?
Pretty straightforward stuff. The first patch moves beautify-description
to import/utils and the second uses it in the rubygem importer. Any good?
ta,
ben
>From e3bad19a07d6a9fdf3045619232a24b77a1a5d12 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Wed, 6 Jan 2016 00:09:19 +1000
Subject: [PATCH 1/2] import: cran: Move beautify-description to utils module.
* guix/import/cran.scm (beautify-description): Move from here...
* guix/import/utils.scm: ... to here.
---
guix/import/cran.scm | 11 -----------
guix/import/utils.scm | 14 +++++++++++++-
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 45c679c..c66818c 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -136,17 +136,6 @@ empty list when the FIELD cannot be found."
(string-any char-set:whitespace item)))
(map string-trim-both items))))))
-(define (beautify-description description)
- "Improve the package DESCRIPTION by turning a beginning sentence fragment
-into a proper sentence and by using two spaces between sentences."
- (let ((cleaned (if (string-prefix? "A " description)
- (string-append "This package provides a"
- (substring description 1))
- description)))
- ;; Use double spacing between sentences
- (regexp-substitute/global #f "\\. \\b"
- cleaned 'pre ". " 'post)))
-
(define (description->package meta)
"Return the `package' s-expression for a CRAN package from the alist META,
which was derived from the R package's DESCRIPTION file."
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 0734fa1..44e004b 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -37,7 +37,8 @@
string->license
license->symbol
- snake-case))
+ snake-case
+ beautify-description))
(define (factorize-uri uri version)
"Factorize URI, a package tarball URI as a string, such that any occurrences
@@ -136,3 +137,14 @@ to in the (guix licenses) module, or #f if there is no such known license."
"Return a downcased version of the string STR where underscores are replaced
with dashes."
(string-join (string-split (string-downcase str) #\_) "-"))
+
+(define (beautify-description description)
+ "Improve the package DESCRIPTION by turning a beginning sentence fragment
+into a proper sentence and by using two spaces between sentences."
+ (let ((cleaned (if (string-prefix? "A " description)
+ (string-append "This package provides a"
+ (substring description 1))
+ description)))
+ ;; Use double spacing between sentences
+ (regexp-substitute/global #f "\\. \\b"
+ cleaned 'pre ". " 'post)))
--
2.6.3
>From eb65d0ef0140ac2828b608c31ae19893861fea3a Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Wed, 6 Jan 2016 00:17:36 +1000
Subject: [PATCH 2/2] import: gem: Beautify description field.
* guix/import/gem.scm (gem->guix-package): Use 'beautify-description'.
---
guix/import/gem.scm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/guix/import/gem.scm b/guix/import/gem.scm
index c64c4e9..3c42052 100644
--- a/guix/import/gem.scm
+++ b/guix/import/gem.scm
@@ -117,7 +117,8 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
(let ((name (assoc-ref package "name"))
(version (assoc-ref package "version"))
(hash (assoc-ref package "sha"))
- (description (assoc-ref package "info"))
+ (description (beautify-description
+ (assoc-ref package "info")))
(home-page (assoc-ref package "homepage_uri"))
(dependencies (map (lambda (dep)
(let ((name (assoc-ref dep "name")))
--
2.6.3