unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [Patch] ruby-byebug@9.0.5
@ 2016-05-31 15:38 Matthew Jordan
  2016-06-02 10:19 ` Ben Woodcroft
  0 siblings, 1 reply; 8+ messages in thread
From: Matthew Jordan @ 2016-05-31 15:38 UTC (permalink / raw)
  To: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Patch to add ruby-byebug package. --]
[-- Type: text/x-patch, Size: 1622 bytes --]

From db2eb23978143363861b780fa43e28301b70f464 Mon Sep 17 00:00:00 2001
From: Matthew Jordan <matthewjordandevops@yandex.com>
Date: Tue, 31 May 2016 07:31:37 -0400
Subject: [PATCH 3/4] gnu: Add ruby-byebug@9.0.5

* gnu/packages/rails.scm: Modified file.
---
 gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6eebd9a..595abeb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2721,6 +2721,31 @@ with PostgreSQL 8.4 and later.")
     (home-page "https://bitbucket.org/ged/ruby-pg")
     (license license:ruby)))
 
+(define-public ruby-byebug-9
+  (package
+    (name "ruby-byebug")
+    (version "9.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "byebug" version))
+       (sha256
+        (base32
+         "18sdnscwwm76i2kbcib2ckwfwpq8b1dbfr97gdcx3j1x547yqv9x"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:tests? #f))
+    (synopsis "Byebug is a Ruby 2 debugger.")
+    (description
+     "Byebug is a Ruby 2 debugger.  It's implemented using the Ruby 2
+TracePoint C API for execution control and the Debug Inspector C API for call
+stack navigation.  The core component provides support that front-ends can
+build on.  It provides breakpoint handling and bindings for stack frames among
+other things and it comes with an easy to use command line interface.")
+    (home-page
+     "http://github.com/deivid-rodriguez/byebug")
+    (license license:bsd-3)))
+
 (define-public ruby-byebug
   (package
     (name "ruby-byebug")
-- 
2.8.3


[-- Attachment #2: Type: text/plain, Size: 38 bytes --]


-- 
Matthew Jordan
Sent with my mu4e

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

* Re: [Patch] ruby-byebug@9.0.5
  2016-05-31 15:38 [Patch] ruby-byebug@9.0.5 Matthew Jordan
@ 2016-06-02 10:19 ` Ben Woodcroft
  2016-06-02 12:19   ` Ben Woodcroft
  0 siblings, 1 reply; 8+ messages in thread
From: Ben Woodcroft @ 2016-06-02 10:19 UTC (permalink / raw)
  To: Matthew Jordan, guix-devel

Hi Matthew.

Thank you for the patch.

On 06/01/2016 01:38 AM, Matthew Jordan wrote:
> +(define-public ruby-byebug-9

Is there a reason this variable includes "-9"? Since 9.0.5 is the newest 
version, I don't think it is necessary.

> +  (package
> +    (name "ruby-byebug")
> +    (version "9.0.5")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (rubygems-uri "byebug" version))
> +       (sha256
> +        (base32
> +         "18sdnscwwm76i2kbcib2ckwfwpq8b1dbfr97gdcx3j1x547yqv9x"))))
> +    (build-system ruby-build-system)
> +    (arguments
> +     `(#:tests? #f))

I imagine you disabled tests because there was no Rakefile in the gem. 
In that case, we should source byebug from a release on GitHub, so that 
we can run the tests. I hope there are not too many dependent packages.

> +    (synopsis "Byebug is a Ruby 2 debugger.")

Perhaps simply "A Ruby 2 debugger" omitting the full stop at the end as 
per 'guix lint'?

> +    (description
> +     "Byebug is a Ruby 2 debugger.  It's implemented using the Ruby 2
> +TracePoint C API for execution control and the Debug Inspector C API for call
> +stack navigation.  The core component provides support that front-ends can
> +build on.  It provides breakpoint handling and bindings for stack frames among
> +other things and it comes with an easy to use command line interface.")

Other than s/It's/It is/ I think. I'm not sure of the policy on 
abbreviations, but that feels right to me.

> +    (home-page
> +"http://github.com/deivid-rodriguez/byebug")
> +    (license license:bsd-3)))

Thanks,
ben

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

* Re: [Patch] ruby-byebug@9.0.5
  2016-06-02 10:19 ` Ben Woodcroft
@ 2016-06-02 12:19   ` Ben Woodcroft
  2016-06-05 21:22     ` Matthew Jordan
  0 siblings, 1 reply; 8+ messages in thread
From: Ben Woodcroft @ 2016-06-02 12:19 UTC (permalink / raw)
  To: Matthew Jordan, guix-devel

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

On 06/02/2016 08:19 PM, Ben Woodcroft wrote:
>
> On 06/01/2016 01:38 AM, Matthew Jordan wrote:
>> +(define-public ruby-byebug-9 

It seems I was off-base a bit here. There was already a ruby-byebug 
packaged, but it was somewhat out of date. Shall we simply update the 
existing package instead of creating a new package?

I had a go at re-enabling tests which were disabled in the original 
package - see the attached patch. Unfortunately it is still failing a 
few tests. Would you like to take a look into why this might be?

Thanks,
ben

[-- Attachment #2: 0001-gnu-ruby-byebug-Update-to-9.0.5.patch --]
[-- Type: text/x-patch, Size: 2756 bytes --]

From c75cc9bd3af585907ef019d43236f12cc70cf832 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Thu, 2 Jun 2016 22:06:46 +1000
Subject: [PATCH] gnu: ruby-byebug: Update to 9.0.5.

* gnu/packages/ruby.scm (ruby-byebug): Update to 9.0.5.
[source]: Use 'GitHub' source.
[arguments]: Enable tests.
[native-inputs]: Add dependencies for tests.
---
 gnu/packages/ruby.scm | 39 +++++++++++++++++++++++++++++++++++----
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6eebd9a..68e42be 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2724,17 +2724,48 @@ with PostgreSQL 8.4 and later.")
 (define-public ruby-byebug
   (package
     (name "ruby-byebug")
-    (version "6.0.2")
+    (version "9.0.5")
     (source
      (origin
        (method url-fetch)
-       (uri (rubygems-uri "byebug" version))
+       (uri (string-append
+             "https://github.com/deivid-rodriguez/byebug/archive/v" version
+             ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"))))
+         "0apgk5d2s68rzmzli09ryqigbk2nx7k5r01qw0iz51pp7m7hm34l"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:tests? #f)) ; no tests
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Most of the dependencies are not needed for building and testing,
+         ;; so remove them.
+         (add-before 'build 'remove-dependencies
+           (lambda _
+             (substitute* "Gemfile"
+               (("gem .*") ""))
+             (substitute* "Rakefile"
+               (("require 'chandler/tasks'") ""))
+             #t))
+         ;; Tests require an installed gem, so run tests after install phase.
+         (delete 'check)
+         (add-after 'install 'check-after-install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "GEM_PATH"
+                     (string-append
+                      (getenv "GEM_PATH")
+                      ":"
+                      (gem-home (assoc-ref outputs "out")
+                                ,(package-version ruby))))
+             (and (system* "rake" "compile")
+                  (zero? (system* "rake" "test"))))))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-yard" ,ruby-yard)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)
+       ("ruby-simplecov" ,ruby-simplecov)
+       ("ruby-pry" ,ruby-pry)))
     (synopsis "Debugger for Ruby 2")
     (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
 TracePoint C API for execution control and the Debug Inspector C API for call
-- 
2.7.4


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

* Re: [Patch] ruby-byebug@9.0.5
  2016-06-02 12:19   ` Ben Woodcroft
@ 2016-06-05 21:22     ` Matthew Jordan
  2016-06-05 21:43       ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Matthew Jordan @ 2016-06-05 21:22 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel

Good Day Ben Woodcroft,

This is what I have so far, although I'm not that familiar with byebug
though. I'll try to dig a bit deeper to get a better understanding of
what's going on.

> It seems I was off-base a bit here. There was already a ruby-byebug 
> packaged, but it was somewhat out of date. Shall we simply update the 
> existing package instead of creating a new package?

Wouldn't it be more useful to have one or versions of a package, since
guix is capable of handling multiple versions? Though I have no problems
upgrading the previous version, hopefully nothing will break.

> I had a go at re-enabling tests which were disabled in the original 
> package - see the attached patch. Unfortunately it is still failing a 
> few tests. Would you like to take a look into why this might be?

Here a summary of test info. The test
"Byebug::SaveTest#test_save_shows_a_success_message" seems to fail cause
it's looking for a file in a home directory that doesn't exist. Setting
the HOME variable seems to solve that.

As for the other failing tests, they seem to expect to finish in the
temporary guix build directory.  

$ grep 'Failure:' $BUILD_LOG
  1) Failure:
  2) Failure:
  5) Failure:
  9) Failure:
  10) Failure:

  1) Failure:
  Byebug::FinishAfterReturnTest#test_finish_does_not_stop_in_byebug_internal_frames
  [/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/commands/finish_test.rb:88]:
  Expected program to have finished.
  Expected
  [["/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/support/utils.rb:61:in
  `debug_code'",
    #<Byebug::FinishAfterReturnTest:0x005555567647a0
       @NAME="test_finish_does_not_stop_in_byebug_internal_frames",
          @assertions=1,
             @example_file=
                 #<File:/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-1myxp5a.rb>,
                    @example_folder="/tmp/guix-build-ruby-byebug-9.0.5.drv-0",
                       @failures=[]>,
                         Byebug::TestUtils,
                         ...

  2) Failure:
  Byebug::BasicNextTest#test_next_does_not_stop_at_byebug_internal_frames
  [/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/commands/next_test.rb:57]:
  Expected program to have finished.
  Expected
  [["/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/support/utils.rb:61:in
  `debug_code'",
    #<Byebug::BasicNextTest:0x0055555737b638
       @NAME="test_next_does_not_stop_at_byebug_internal_frames",
          @assertions=1,
             @example_file=
                 #<File:/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-xpb9f1.rb>,
                    @example_folder="/tmp/guix-build-ruby-byebug-9.0.5.drv-0",
                       @failures=[]>,
                       ...

  5) Failure:
  Byebug::SaveTest#test_save_shows_a_success_message
  [/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/support/matchers.rb:27]:
  Expected ["",
   "[1, 5] in
  /tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-lrr6ae.rb",
   "1: module Byebug",
    "2:   byebug",
     "=> 3:   a = 2",
      "4:   a + 3",
       "5: end",
        "(byebug)",
         "(byebug)"]
          to include ["Saved to '/homeless-shelter/.byebug_save'"]
           in order.
           ...

  9) Failure:
  Byebug::FrameTest#test_frame_minus_one_sets_frame_to_the_last_one
  [/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/commands/frame_test.rb:78]:
  Expected location to be
  /tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-1w3cvx7.rb:1,
  but was
  /gnu/store/j86y28xf4q42bwlz98vhfjipf4rfb5bn-ruby-2.3.1/bin/rake:23

 10) Failure:
 Byebug::WhereWithNotDeeplyNestedPathsTest#test_where_displays_current_backtrace_w_shorpaths_if_fullpath_disabled
 [/tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug-9.0.5/test/support/matchers.rb:27]:
 Expected ["",
  "[11, 20] in
 /tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-ojlsg9.rb",
  "11:       to_int(str + 'x') + 5",
   "12:     end",
    "13:",
     "14:     def to_int(str)",
      "15:       byebug",
       "=> 16:       str.ord",
        "17:     end",
         "18:   end",
          "19:",
           "20:   frame = ByebugTest2016060593Ojlsg9Class.new('f')",
            "(byebug)",
             "fullpath is off",
              "(byebug)",
               "--> #0
 Byebug::ByebugTest2016060593Ojlsg9Class.to_int(str#String) at
 .../tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-ojlsg9.rb:16",
  "#1  Byebug::ByebugTest2016060593Ojlsg9Class.encode(str#String) at
 .../tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-ojlsg9.rb:11",
  "#2  Byebug::ByebugTest2016060593Ojlsg9Class.initialize(l#String) at
 .../tmp/guix-build-ruby-byebug-9.0.5.drv-0/byebug_test20160605-93-ojlsg9.rb:7",
 ...
 
Respectfully,

--
Matthew Jordan
Sent with my mu4e

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

* Re: [Patch] ruby-byebug@9.0.5
  2016-06-05 21:22     ` Matthew Jordan
@ 2016-06-05 21:43       ` Leo Famulari
  2016-06-05 21:54         ` Matthew Jordan
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2016-06-05 21:43 UTC (permalink / raw)
  To: Matthew Jordan; +Cc: guix-devel

On Sun, Jun 05, 2016 at 05:22:02PM -0400, Matthew Jordan wrote:
> Wouldn't it be more useful to have one or versions of a package, since
> guix is capable of handling multiple versions? Though I have no problems
> upgrading the previous version, hopefully nothing will break.

In general, Guix handles this just fine. But somebody has to maintain
all those versions ;) We often suggest that if one user needs some old
version of a package, they maintain the package privately. For example,
using $GUIX_PACKAGE_PATH.

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

* Re: [Patch] ruby-byebug@9.0.5
  2016-06-05 21:43       ` Leo Famulari
@ 2016-06-05 21:54         ` Matthew Jordan
  2016-06-08 12:41           ` Ben Woodcroft
  2016-06-10 15:11           ` Leo Famulari
  0 siblings, 2 replies; 8+ messages in thread
From: Matthew Jordan @ 2016-06-05 21:54 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel


> In general, Guix handles this just fine. But somebody has to maintain
> all those versions ;) We often suggest that if one user needs some old
> version of a package, they maintain the package privately. For example,
> using $GUIX_PACKAGE_PATH.

Ah okay, that makes sense. Does this also also apply to compilers and
runtime environments? As I have two pachtes for the current versions of
node (JavaScript runtime), one is the reccomended version and the other
represents the latest stable version.

Although I have not submitted them yet.

Rsepectfully,

--
Matthew Jordan
Sent with my mu4e

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

* Re: [Patch] ruby-byebug@9.0.5
  2016-06-05 21:54         ` Matthew Jordan
@ 2016-06-08 12:41           ` Ben Woodcroft
  2016-06-10 15:11           ` Leo Famulari
  1 sibling, 0 replies; 8+ messages in thread
From: Ben Woodcroft @ 2016-06-08 12:41 UTC (permalink / raw)
  To: Matthew Jordan, Leo Famulari; +Cc: guix-devel



On 06/06/16 07:54, Matthew Jordan wrote:
>> In general, Guix handles this just fine. But somebody has to maintain
>> all those versions ;) We often suggest that if one user needs some old
>> version of a package, they maintain the package privately. For example,
>> using $GUIX_PACKAGE_PATH.
> Ah okay, that makes sense. Does this also also apply to compilers and
> runtime environments? As I have two pachtes for the current versions of
> node (JavaScript runtime), one is the reccomended version and the other
> represents the latest stable version.

There are some examples of multiple versions being included in Guix e.g. 
Ruby itself, GCC, etc, and we do tend to more commonly keep multiple 
versions of compilers and runtime environments.

> Although I have not submitted them yet.

Good luck. there are others working on node you may be able to 
coordinate with.

Thanks,
ben

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

* Re: [Patch] ruby-byebug@9.0.5
  2016-06-05 21:54         ` Matthew Jordan
  2016-06-08 12:41           ` Ben Woodcroft
@ 2016-06-10 15:11           ` Leo Famulari
  1 sibling, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2016-06-10 15:11 UTC (permalink / raw)
  To: Matthew Jordan; +Cc: guix-devel

On Sun, Jun 05, 2016 at 05:54:34PM -0400, Matthew Jordan wrote:
> 
> > In general, Guix handles this just fine. But somebody has to maintain
> > all those versions ;) We often suggest that if one user needs some old
> > version of a package, they maintain the package privately. For example,
> > using $GUIX_PACKAGE_PATH.
> 
> Ah okay, that makes sense. Does this also also apply to compilers and
> runtime environments? As I have two pachtes for the current versions of
> node (JavaScript runtime), one is the reccomended version and the other
> represents the latest stable version.

There's no hard rule that allows us to keep multiple versions of
compilers and runtimes. I think we keep those around for a variety of
reasons: bootstrapping chains; many packages still require the old
version; it was very difficult to make the package work so it's not
reasonable to ask users to recreate and maintain the old versions
themselves; etc.

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

end of thread, other threads:[~2016-06-10 15:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-31 15:38 [Patch] ruby-byebug@9.0.5 Matthew Jordan
2016-06-02 10:19 ` Ben Woodcroft
2016-06-02 12:19   ` Ben Woodcroft
2016-06-05 21:22     ` Matthew Jordan
2016-06-05 21:43       ` Leo Famulari
2016-06-05 21:54         ` Matthew Jordan
2016-06-08 12:41           ` Ben Woodcroft
2016-06-10 15:11           ` Leo Famulari

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