Re: Should synopsis handle texinfo markup?

2017-03-27 Thread Alex Kost
Ludovic Courtès (2017-03-24 10:38 +0100) wrote:

> Hi Alex,
>
> Sorry for the delay.

No problem!  My delays are longer :-)

> Alex Kost  skribis:
>
>> From 8d8a79d69619b68dd3a798e7456bfd871fcb8395 Mon Sep 17 00:00:00 2001
>> From: Alex Kost 
>> Date: Mon, 20 Mar 2017 13:41:41 +0300
>> Subject: [PATCH] ui: Support Texinfo markup in package synopses.
>>
>> * guix/ui.scm (package-field-string): New procedure.
>> (package-description-string): Use it.
>> (package-synopsis-string): New procedure.
>> (package->recutils): Use it.
>> * guix/scripts/lint.scm (check-synopsis-style)[check-texinfo-markup]:
>> New procedure.  Use it in checks.
>> * gnu/packages/perl.scm (perl-try-tiny)[synopsis]: Adjust for the
>> Texinfo markup.
>
> Could you add a test in tests/lint.scm that would be the same as
> "description: valid Texinfo markup" but for the synopsis?

Sure, done.

> Other than that it LGTM!

Committed, thanks!

-- 
Alex



Re: Should synopsis handle texinfo markup?

2017-03-24 Thread Ludovic Courtès
Hi Alex,

Sorry for the delay.

Alex Kost  skribis:

> From 8d8a79d69619b68dd3a798e7456bfd871fcb8395 Mon Sep 17 00:00:00 2001
> From: Alex Kost 
> Date: Mon, 20 Mar 2017 13:41:41 +0300
> Subject: [PATCH] ui: Support Texinfo markup in package synopses.
>
> * guix/ui.scm (package-field-string): New procedure.
> (package-description-string): Use it.
> (package-synopsis-string): New procedure.
> (package->recutils): Use it.
> * guix/scripts/lint.scm (check-synopsis-style)[check-texinfo-markup]:
> New procedure.  Use it in checks.
> * gnu/packages/perl.scm (perl-try-tiny)[synopsis]: Adjust for the
> Texinfo markup.

Could you add a test in tests/lint.scm that would be the same as
"description: valid Texinfo markup" but for the synopsis?

Other than that it LGTM!

Thank you!

Ludo’.



Re: Should synopsis handle texinfo markup?

2017-03-20 Thread Alex Kost
Ludovic Courtès (2017-03-16 23:29 +0100) wrote:

> Alex Kost  skribis:
>
>> Ludovic Courtès (2017-03-15 17:14 +0100) wrote:
>>
>>> Alex Kost  skribis:
>>>
 Hello, I've noticed that several packages contain "@code" structures in
 their synopses, but only 'description' field supports texinfo markup.
 For example, look at:

   guix package -s ruby-minitest-bonus-assertions

 So I wonder, should these synopses be adjusted to remove @code things,
 or would it be better to make sysnopses support it?
>>>
>>> Maybe we should support Texinfo in synopses after all.  I don’t think
>>> there were good reasons not to do it.
>>>
>>> Thoughts?
>>
>> I'm not aware of potential problems so I think it would be good to add
>> this support to synopses.
>
> Cool.  Would you or anyone like to give it a try?  Alternatively we can
> mail it to bug-guix for later.

I gave it a try (the patch is attached).  I hope I didn't miss anything.

>From 8d8a79d69619b68dd3a798e7456bfd871fcb8395 Mon Sep 17 00:00:00 2001
From: Alex Kost 
Date: Mon, 20 Mar 2017 13:41:41 +0300
Subject: [PATCH] ui: Support Texinfo markup in package synopses.

* guix/ui.scm (package-field-string): New procedure.
(package-description-string): Use it.
(package-synopsis-string): New procedure.
(package->recutils): Use it.
* guix/scripts/lint.scm (check-synopsis-style)[check-texinfo-markup]:
New procedure.  Use it in checks.
* gnu/packages/perl.scm (perl-try-tiny)[synopsis]: Adjust for the
Texinfo markup.
---
 gnu/packages/perl.scm |  2 +-
 guix/scripts/lint.scm | 22 +++---
 guix/ui.scm   | 17 +
 3 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 840e0b7..c415208 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -7580,7 +7580,7 @@ Tree::Simple::Visitor::* objects.")
  "068vdbpacfawc3lkfs0b82xxl27h3l0gj14iada3vlwk8rps9yv0"
 (build-system perl-build-system)
 (home-page "http://search.cpan.org/dist/Try-Tiny";)
-(synopsis "Minimal try/catch with proper preservation of $@")
+(synopsis "Minimal try/catch with proper preservation of $@@")
 (description "This module provides bare bones try/catch/finally statements
 that are designed to minimize common mistakes with eval blocks, and nothing
 else.")
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 66c82f0..811f167 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2015, 2016 Mathieu Lirzin 
 ;;; Copyright © 2016 Danny Milosavljevic 
 ;;; Copyright © 2016 Hartmut Goebel 
+;;; Copyright © 2017 Alex Kost 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -347,10 +348,25 @@ the synopsis")
 (_ "synopsis should not start with the package name")
 'synopsis)))
 
+  (define (check-texinfo-markup synopsis)
+"Check that SYNOPSIS can be parsed as a Texinfo fragment.  If the
+markup is valid return a plain-text version of SYNOPSIS, otherwise #f."
+(catch #t
+  (lambda () (texi->plain-text synopsis))
+  (lambda (keys . args)
+(emit-warning package
+  (_ "Texinfo markup in synopsis is invalid")
+  'synopsis)
+#f)))
+
   (define checks
-(list check-not-empty check-proper-start check-final-period
-  check-start-article check-start-with-package-name
-  check-synopsis-length))
+(list check-not-empty
+  check-proper-start
+  check-final-period
+  check-start-article
+  check-start-with-package-name
+  check-synopsis-length
+  check-texinfo-markup))
 
   (match (package-synopsis package)
 ((? string? synopsis)
diff --git a/guix/ui.scm b/guix/ui.scm
index 3a0a650..345bf49 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov 
 ;;; Copyright © 2014 Cyril Roelandt 
 ;;; Copyright © 2014 Cyrill Schenkel 
-;;; Copyright © 2014, 2015 Alex Kost 
+;;; Copyright © 2014, 2015, 2017 Alex Kost 
 ;;; Copyright © 2015 David Thompson 
 ;;; Copyright © 2015, 2016 Mathieu Lirzin 
 ;;; Copyright © 2016 Roel Janssen 
@@ -81,6 +81,7 @@
 fill-paragraph
 texi->plain-text
 package-description-string
+package-synopsis-string
 string->recutils
 package->recutils
 package-specification->name+version+output
@@ -848,10 +849,18 @@ converted to a space; sequences of more than one line break are preserved."
   (with-fluids ((%default-port-encoding "UTF-8"))
 (stexi->plain-text (texi-fragment->stexi str
 
+(define (package-field-string package field-accessor)
+  "Return a plain-text representation of PACKAGE field."
+  (and=> (field-accessor package)
+ (compose texi->plain-text P_)))
+
 (define (package-description-string package)
   "Return a plain-text representation of PACKAGE description field."
-  (and=> (p

Re: Should synopsis handle texinfo markup?

2017-03-16 Thread Ludovic Courtès
Alex Kost  skribis:

> Ludovic Courtès (2017-03-15 17:14 +0100) wrote:
>
>> Hi Alex,
>>
>> Alex Kost  skribis:
>>
>>> Hello, I've noticed that several packages contain "@code" structures in
>>> their synopses, but only 'description' field supports texinfo markup.
>>> For example, look at:
>>>
>>>   guix package -s ruby-minitest-bonus-assertions
>>>
>>> So I wonder, should these synopses be adjusted to remove @code things,
>>> or would it be better to make sysnopses support it?
>>
>> Maybe we should support Texinfo in synopses after all.  I don’t think
>> there were good reasons not to do it.
>>
>> Thoughts?
>
> I'm not aware of potential problems so I think it would be good to add
> this support to synopses.

Cool.  Would you or anyone like to give it a try?  Alternatively we can
mail it to bug-guix for later.

Ludo’.



Re: Should synopsis handle texinfo markup?

2017-03-16 Thread Alex Kost
Ludovic Courtès (2017-03-15 17:14 +0100) wrote:

> Hi Alex,
>
> Alex Kost  skribis:
>
>> Hello, I've noticed that several packages contain "@code" structures in
>> their synopses, but only 'description' field supports texinfo markup.
>> For example, look at:
>>
>>   guix package -s ruby-minitest-bonus-assertions
>>
>> So I wonder, should these synopses be adjusted to remove @code things,
>> or would it be better to make sysnopses support it?
>
> Maybe we should support Texinfo in synopses after all.  I don’t think
> there were good reasons not to do it.
>
> Thoughts?

I'm not aware of potential problems so I think it would be good to add
this support to synopses.

-- 
Alex



Re: Should synopsis handle texinfo markup?

2017-03-15 Thread Ludovic Courtès
Hi Alex,

Alex Kost  skribis:

> Hello, I've noticed that several packages contain "@code" structures in
> their synopses, but only 'description' field supports texinfo markup.
> For example, look at:
>
>   guix package -s ruby-minitest-bonus-assertions
>
> So I wonder, should these synopses be adjusted to remove @code things,
> or would it be better to make sysnopses support it?

Maybe we should support Texinfo in synopses after all.  I don’t think
there were good reasons not to do it.

Thoughts?

Ludo’.



Re: Should synopsis handle texinfo markup?

2017-03-11 Thread John Darrington
On Sat, Mar 11, 2017 at 10:27:57PM +0300, Alex Kost wrote:
 Hello, I've noticed that several packages contain "@code" structures in
 their synopses, but only 'description' field supports texinfo markup.
 For example, look at:
 
   guix package -s ruby-minitest-bonus-assertions
 
 So I wonder, should these synopses be adjusted to remove @code things,
 or would it be better to make sysnopses support it?

... and, if we decide that synopses may not have Texinfo markup, then we
should have guix lint check for it.

J'

-- 
Avoid eavesdropping.  Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.



signature.asc
Description: Digital signature


Should synopsis handle texinfo markup?

2017-03-11 Thread Alex Kost
Hello, I've noticed that several packages contain "@code" structures in
their synopses, but only 'description' field supports texinfo markup.
For example, look at:

  guix package -s ruby-minitest-bonus-assertions

So I wonder, should these synopses be adjusted to remove @code things,
or would it be better to make sysnopses support it?

-- 
Alex