unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Should synopsis handle texinfo markup?
@ 2017-03-11 19:27 Alex Kost
  2017-03-11 19:34 ` John Darrington
  2017-03-15 16:14 ` Ludovic Courtès
  0 siblings, 2 replies; 8+ messages in thread
From: Alex Kost @ 2017-03-11 19:27 UTC (permalink / raw)
  To: guix-devel

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-11 19:27 Should synopsis handle texinfo markup? Alex Kost
@ 2017-03-11 19:34 ` John Darrington
  2017-03-15 16:14 ` Ludovic Courtès
  1 sibling, 0 replies; 8+ messages in thread
From: John Darrington @ 2017-03-11 19:34 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 796 bytes --]

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.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-11 19:27 Should synopsis handle texinfo markup? Alex Kost
  2017-03-11 19:34 ` John Darrington
@ 2017-03-15 16:14 ` Ludovic Courtès
  2017-03-16  8:53   ` Alex Kost
  1 sibling, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2017-03-15 16:14 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Hi Alex,

Alex Kost <alezost@gmail.com> 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’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-15 16:14 ` Ludovic Courtès
@ 2017-03-16  8:53   ` Alex Kost
  2017-03-16 22:29     ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2017-03-16  8:53 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

> Hi Alex,
>
> Alex Kost <alezost@gmail.com> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-16  8:53   ` Alex Kost
@ 2017-03-16 22:29     ` Ludovic Courtès
  2017-03-20 10:52       ` Alex Kost
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2017-03-16 22:29 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Alex Kost <alezost@gmail.com> skribis:

> Ludovic Courtès (2017-03-15 17:14 +0100) wrote:
>
>> Hi Alex,
>>
>> Alex Kost <alezost@gmail.com> 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’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-16 22:29     ` Ludovic Courtès
@ 2017-03-20 10:52       ` Alex Kost
  2017-03-24  9:38         ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2017-03-20 10:52 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]

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

> Alex Kost <alezost@gmail.com> skribis:
>
>> Ludovic Courtès (2017-03-15 17:14 +0100) wrote:
>>
>>> Alex Kost <alezost@gmail.com> 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.


[-- Attachment #2: 0001-ui-Support-Texinfo-markup-in-package-synopses.patch --]
[-- Type: text/x-patch, Size: 5214 bytes --]

From 8d8a79d69619b68dd3a798e7456bfd871fcb8395 Mon Sep 17 00:00:00 2001
From: Alex Kost <alezost@gmail.com>
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 <mthl@gnu.org>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2017 Alex Kost <alezost@gmail.com>
 ;;;
 ;;; 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 <nikita@karetnikov.org>
 ;;; Copyright © 2014 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
-;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2014, 2015, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -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=> (package-description package)
-         (compose texi->plain-text P_)))
+  (package-field-string package package-description))
+
+(define (package-synopsis-string package)
+  "Return a plain-text representation of PACKAGE synopsis field."
+  (package-field-string package package-synopsis))
 
 (define (string->recutils str)
   "Return a version of STR where newlines have been replaced by newlines
@@ -914,7 +923,7 @@ WIDTH columns."
           (string-map (match-lambda
                        (#\newline #\space)
                        (chr       chr))
-                      (or (and=> (package-synopsis p) P_)
+                      (or (and=> (package-synopsis-string p) P_)
                           "")))
   (format port "~a~2%"
           (string->recutils
-- 
2.10.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-20 10:52       ` Alex Kost
@ 2017-03-24  9:38         ` Ludovic Courtès
  2017-03-27  7:58           ` Alex Kost
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2017-03-24  9:38 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

Hi Alex,

Sorry for the delay.

Alex Kost <alezost@gmail.com> skribis:

> From 8d8a79d69619b68dd3a798e7456bfd871fcb8395 Mon Sep 17 00:00:00 2001
> From: Alex Kost <alezost@gmail.com>
> 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’.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Should synopsis handle texinfo markup?
  2017-03-24  9:38         ` Ludovic Courtès
@ 2017-03-27  7:58           ` Alex Kost
  0 siblings, 0 replies; 8+ messages in thread
From: Alex Kost @ 2017-03-27  7:58 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

> Hi Alex,
>
> Sorry for the delay.

No problem!  My delays are longer :-)

> Alex Kost <alezost@gmail.com> skribis:
>
>> From 8d8a79d69619b68dd3a798e7456bfd871fcb8395 Mon Sep 17 00:00:00 2001
>> From: Alex Kost <alezost@gmail.com>
>> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-03-27  7:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-11 19:27 Should synopsis handle texinfo markup? Alex Kost
2017-03-11 19:34 ` John Darrington
2017-03-15 16:14 ` Ludovic Courtès
2017-03-16  8:53   ` Alex Kost
2017-03-16 22:29     ` Ludovic Courtès
2017-03-20 10:52       ` Alex Kost
2017-03-24  9:38         ` Ludovic Courtès
2017-03-27  7:58           ` Alex Kost

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).