Message ID | 55bea941-e029-69b7-0603-5548567659ef@mailbox.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#44882] gnu: ruby-solargraph: Update to 0.39.17 and add two dependencies | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hello, I have realized this patch isn't correct. I hadn't tested it on a clean environment before. Solargraph requires Rubocop 0.52 (!). In fact, the current version of Solargraph doesn't currently work, either: there are version issues with Rubocop and with ruby-thor. I need a more-or-less current Solargraph and Rubocop, that's why I have been updating some packages, but I realize now I wasn't doing it properly and that I'm getting tangled into a web of dependencies issues. How should I proceed? Clearly Rubocop should be updated, but I don't know how to keep Solargraph working and how to figure out which packages will need to be updated or checked in case they need an older version of Rubocop. I'm quite new to all of this, so sorry if I'm not doing things how I'm supposed to! Tomás
On Sat, Nov 28, 2020 at 09:53:20AM +0100, Tomás Ortín Fernández via Guix-patches via wrote: > I have realized this patch isn't correct. I hadn't tested it on a clean environment before. > Solargraph requires Rubocop 0.52 (!). In fact, the current version of Solargraph doesn't currently work, either: there are version issues with Rubocop and with ruby-thor. Okay, thanks for the followup email. > I need a more-or-less current Solargraph and Rubocop, that's why I have been updating some packages, but I realize now I wasn't doing it properly and that I'm getting tangled into a web of dependencies issues. > > How should I proceed? Clearly Rubocop should be updated, but I don't know how to keep Solargraph working and how to figure out which packages will need to be updated or checked in case they need an older version of Rubocop. It's not clear to me exactly what is wrong, so I can't give specific advice. If Solargraph is not currently working, you don't need to "keep it working" while doing other work, right? To check what packages will be rebuilt if the Rubocop package changes, you can use `guix refresh --list-dependents ruby-rubocop`. Building and testing the packages listed by that command will allow you to test the impact of any changes to ruby-rubocop. Currently, our ruby-rubocop package is at version 0.88.0. We don't usually downgrade packages, but you can add another package based on the earlier version 0.52. For example, something like this (untested!): ------ (define-public ruby-rubocop-0.52 (package (inherit ruby-rubocop) (version "0.52") (source (origin [...])))) ------ ... then use ruby-rubocop-0.52 as an input to the Solargraph package. In general, dealing with complex dependency graphs while updating packages is hard, but Guix makes it easier. I would start at the top of the graph: try building the new Solargraph, see which dependencies are too old, update them, repeat. Once Solargraph is working, you can use `guix refresh --list-dependents` for each changed package, fix any breakage, and so on. Does that make sense? Please don't hesitate to keep asking for advice, here or on our Freenode IRC channel #guix
Hi Tomás, On Sat, 28 Nov 2020 09:53:20 +0100 Tomás Ortín Fernández via Guix-patches via <guix-patches@gnu.org> wrote: > I have realized this patch isn't correct. I hadn't tested it on a > clean environment before. Solargraph requires Rubocop 0.52 (!). In > fact, the current version of Solargraph doesn't currently work, > either: there are version issues with Rubocop and with ruby-thor. Can you explain what you mean by that? What problems do you see? When I look at the Gem's page at https://rubygems.org/gems/solargraph/versions/0.40.0 I see that Solargraph needs rubocop >= 0.52 (NOT specific to 0.52). For thor, it needs ~>1.0. As we have 1.0.1, that should be fine. I tried to build the 0.40.0 version of Solargraph (had to add the kramdown-parser-gfm and kramdown-parser dependencies) and at least I was able to start it with the command: solargraph socket I'm not using an editor/IDE that makes use of Solargraph, so I don't see any problems here. Do you see more? @Leo: I'm fine with your updated patches, except with this question and that there are newer versions of ruby-benchmark and ruby-solargraph. Thanks, Björn
Hi Tomás, On Thu, 26 Nov 2020 11:02:11 +0100 Tomás Ortín Fernández via Guix-patches via <guix-patches@gnu.org> 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. Pushed with some slight modifications and an update to 0.40.3 as cc628f255248777225b4fe4e4a011f6bb503632b Thanks, Björn
... and closing. Björn
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2753403834..71a970e2b8 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -11587,19 +11588,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) @@ -11638,6 +11640,48 @@ 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) + (propagated-inputs + `(("bundler" ,bundler))) + (arguments + `(#:tests? #f)) ;; There is a rakefile but no tests + (synopsis + "Module for defining custom exceptions with specific messages") + (description + "Module for defining custom 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 library") + (description + "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")