Subject: [bug#44882] [PATCH] gnu: ruby-solargraph: Update to 0.39.17 and add two dependencies

From: Leo Famulari <[email-masked]>
Date: Fri, 4 Dec 2020 14:44:08 -0500

On Thu, Nov 26, 2020 at 11:02:11AM +0100, Tomás Ortín Fernández via Guix-patches via wrote:
> * gnu/packages/ruby.scm (ruby-solargraph): Update to 0.39.17.
> * gnu/packages/ruby.scm (ruby-e2mmap): New variable.
> * gnu/packages/ruby.scm (ruby-benchmark): New variable.

Thanks! I read your followup email but I'm also replying with some
advice about this patch.

First, this patch should be split into 3 patches. Each new package
should be added in its own patch, and then the solargraph update should
be the third patch.

> +(define-public ruby-e2mmap
> +  (package
> +    (name "ruby-e2mmap")
> +    (version "0.1.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (rubygems-uri "e2mmap" version))
> +       (sha256
> +        (base32
> +         "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5"))))
> +    (build-system ruby-build-system)
> +    (propagated-inputs
> +     `(("bundler" ,bundler)))

Is this 'bundler' really used? If so, is it used only at build time? In
that case, it would be a native input.

I checked that the built ruby-e2mmap doesn't keep a reference to
bundler, and thus wouldn't be able to find it at run-time:

------
$ guix gc --references $(./pre-inst-env guix build --no-grafts ruby-e2mmap)          
/gnu/store/8ql9jjzl8q291ghsxlkm1wn5bpdvgcqw-ruby-2.6.5
/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16
------

> +    (description
> +     "Module for defining custom exceptions with specific messages.")

Descriptions should be "complete sentences". For example, this could be
written as "This package provides a Ruby module for defining custom
exceptions with specific messages."

I've attached a revised patchset to show what I mean. I was going to
push these revised patches until I read your followup message.
>From 50a2b025fade3fc2a305cd78d1611c516fe47510 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1s=20Ort=C3=ADn=20Fern=C3=A1ndez?=
 <[email-masked]>
Date: Fri, 4 Dec 2020 14:16:15 -0500
Subject: [PATCH 1/3] gnu: Add ruby-e2mmap.

* gnu/packages/ruby.scm (ruby-e2mmap): New variable.
---
 gnu/packages/ruby.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 8fc228f6ed..939a686114 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2020 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2020 Michael Rohleder <[email-masked]>
+;;; Copyright © 2020 Tomás Ortín Fernández <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -11637,6 +11638,26 @@ checking.")
     (home-page "https://solargraph.org/")
     (license license:expat)))
 
+(define-public ruby-e2mmap
+  (package
+    (name "ruby-e2mmap")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "e2mmap" version))
+       (sha256
+        (base32
+         "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f)) ;; There is a rakefile but no tests
+    (synopsis "Define custom exceptions for Ruby")
+    (description "This package provides a Ruby module for defining custom
+exceptions with specific messages.")
+    (home-page "https://github.com/ruby/e2mmap")
+    (license license:bsd-2)))
+
 (define-public ruby-wayback-machine-downloader
   (package
     (name "ruby-wayback-machine-downloader")
-- 
2.29.2

>From d1868eddf03ae24fc7ffbeb920e95a06838f6a8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1s=20Ort=C3=ADn=20Fern=C3=A1ndez?=
 <[email-masked]>
Date: Fri, 4 Dec 2020 14:16:49 -0500
Subject: [PATCH 2/3] gnu: Add ruby-benchmark.

* gnu/packages/ruby.scm (ruby-benchmark): New variable.
---
 gnu/packages/ruby.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 939a686114..bc1ca15d67 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -11658,6 +11658,24 @@ exceptions with specific messages.")
     (home-page "https://github.com/ruby/e2mmap")
     (license license:bsd-2)))
 
+(define-public ruby-benchmark
+  (package
+    (name "ruby-benchmark")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "benchmark" version))
+       (sha256
+        (base32
+         "0jadlpsl504ql436a6bx8ihp0bkg3rvxg7fbi4r1bmra3cqz0h88"))))
+    (build-system ruby-build-system)
+    (synopsis "Performance benchmarking for Ruby")
+    (description "This package provides methods for benchmarking Ruby code,
+giving detailed reports on the time taken for each task.")
+    (home-page "https://github.com/ruby/benchmark")
+    (license license:bsd-2)))
+
 (define-public ruby-wayback-machine-downloader
   (package
     (name "ruby-wayback-machine-downloader")
-- 
2.29.2

>From 9c8dd05ef67013b4599be78e21976b618b4d7e97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1s=20Ort=C3=ADn=20Fern=C3=A1ndez?=
 <[email-masked]>
Date: Fri, 4 Dec 2020 14:17:09 -0500
Subject: [PATCH 3/3] gnu: ruby-solargraph: Update to 0.39.17.

* gnu/packages/ruby.scm (ruby-solargraph): Update to 0.39.17.
[propagated-inputs]: Add ruby-benchmark and ruby-e2mmap.
---
 gnu/packages/ruby.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index bc1ca15d67..146263e0af 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -11587,19 +11587,20 @@ application.")
 (define-public ruby-solargraph
   (package
     (name "ruby-solargraph")
-    (version "0.36.0")
+    (version "0.39.17")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "solargraph" version))
        (sha256
         (base32
-         "0b93xzkgd1h06da9gdnwivj1mzbil8lc072y2838dy6i7bxgpy9i"))))
+         "06fby6dpq1jcq30x8ladig4dvz8j2pxd08mkrad3d41jx33zd2hg"))))
     (build-system ruby-build-system)
     (propagated-inputs
      `(("ruby-backport" ,ruby-backport)
        ("bundler" ,bundler)
-       ("ruby-htmlentities" ,ruby-htmlentities)
+       ("ruby-benchmark" ,ruby-benchmark)
+       ("ruby-e2mmap" ,ruby-e2mmap)
        ("ruby-jaro-winkler" ,ruby-jaro-winkler)
        ("ruby-maruku" ,ruby-maruku)
        ("ruby-nokogiri" ,ruby-nokogiri)
-- 
2.29.2