[PATCH 000/182] Add FPM, update Rails and other Ruby additions/updates

  • Done
  • quality assurance status badge
Details
2 participants
  • Christopher Baines
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
normal
M
M
Maxim Cournoyer wrote on 15 Mar 03:59 +0100
(address . guix-patches@gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230315025946.14371-1-maxim.cournoyer@gmail.com
Hello Guix,

This series contains various Ruby updates and new packages. Some noteworthy
changes:

1. Update Rubocop & friends
2. Update Rails and partially enable its test suite
3. Add fpm
4. Various other updates and required packages additions.


Maxim Cournoyer (182):
gnu: Add ruby-cabin.
gnu: Add ruby-clamp.
gnu: Add ruby-stud.
gnu: Add ruby-insist.
gnu: ruby-standard: Update to 1.24.3.
gnu: ruby-oedipus-lex: Update to 2.6.0.
gnu: ruby-oedipus-lex: Fix indentation.
gnu: ruby-parser: Update to 3.2.1.1.
gnu: ruby-rubocop-ast: Update to 1.27.0.
gnu: Add ruby-rubocop-rake-minimal.
gnu: ruby-unicode-display-width: Update to 2.4.2.
gnu: Add ruby-rubocop-capybara-minimal.
gnu: ruby-rspec: Update to 3.12.0.
gnu: ruby-rspec-core: Update to 3.12.1.
gnu: ruby-rspec-support: Update to 3.12.0.
gnu: ruby-given-core: Update to 3.8.2.
gnu: ruby-rspec-mocks: Update to 3.12.4.
gnu: ruby-rspec-expectations: Update to 3.12.2.
gnu: ruby-rspec-given: Update to 3.8.2.
gnu: ruby-rubocop-performance: Update to 1.16.0.
gnu: Add ruby-simplecov-json-formatter.
gnu: ruby-simplecov-html: Update to 0.12.3.
gnu: ruby-simplecov: Update to 0.22.0.
gnu: Add ruby-rubocop-capybara.
gnu: ruby-rubocop-rspec: Update to 2.19.0 and inverse inheritance
relationship.
gnu: Add ruby-rubocop-rake.
gnu: ruby-rubocop: Update to 1.48.1
gnu: ruby-thor: Update to 1.2.1.
gnu: Add ruby-minitest-power-assert.
gnu: Add ruby-m.
gnu: Add ruby-language-server-protocol.
gnu: ruby-standard: Enable test suite.
gnu: ruby-standard: Relax requirements.
gnu: Add ruby-dotenv.
gnu: Add ruby-minitest-retry.
gnu: Add ruby-dalli.
gnu: redis: Update to 7.0.9.
gnu: redis: Use gexps and streamline.
gnu: hiredis: Update to 1.1.0.
gnu: Add ruby-hiredis.
gnu: ruby-minitest-5.14: Update to 5.15.0.
gnu: ruby-rake: Update to 13.0.6.
gnu: Add ruby-cucumber-compatibility-kit.
gnu: ruby-cucumber-messages: Update to 21.0.1.
gnu: Remove ruby-protobuf-cucumber.
gnu: ruby-cucumber-tag-expressions: Update to 5.0.1, fixing build.
gnu: ruby-cucumber-core: Update to 11.1.0.
gnu: ruby-cucumber-wire: Update to 6.2.1.
gnu: ruby-cucumber-html-formatter: Update to 20.2.1.
gnu: Add ruby-cucumber-ci-environment.
gnu: ruby-cucumber-expressions: Update to 16.1.2.
gnu: ruby-gherkin: Update to 26.0.3, fixing build.
gnu: ruby-gherkin: Rename to ruby-cucumber-gherkin.
gnu: ruby-cucumber: Update to 8.0.0.
gnu: Remove ruby-cucumber-create-meta.
gnu: Add ruby-rake-manifest.
gnu: ruby-aruba: Update to 2.1.0.
gnu: ruby-activesupport: Update to 7.0.4.3.
gnu: ruby-railties: Update to 7.0.4.3.
gnu: Add ruby-bcrypt.
gnu: ruby-activemodel: Update to 7.0.4.3 and enable tests.
gnu: ruby-activerecord: Update to 7.0.4.3 and enable tests.
gnu: Add ruby-simplecov-lcov.
gnu: ruby-actionview: Update to 7.0.4.3.
gnu: Add ruby-delayed-job.
gnu: Add ruby-minitest-proveit.
gnu: ruby-zeitwerk: Update to 2.6.7.
gnu: Add ruby-queue-classic.
gnu: ruby-activejob: Update to 7.0.4.3 and enable tests.
gnu: Add ruby-xpath.
gnu: ruby-addressable: Update to 2.8.1.
gnu: Add ruby-launchy.
gnu: Add ruby-websocket.
gnu: Add ruby-selenium-webdriver.
gnu: ruby-puma: Build with SSL support.
gnu: Add ruby-minitest-stub-const.
gnu: ruby-rack: Update to 2.2.6.3.
gnu: ruby-rack: Update home page URL.
gnu: Add ruby-rack-next.
gnu: Add ruby-rack-cache.
gnu: ruby-rack-test: Update to 2.1.0.
gnu: ruby-rack-test: Update home page.
gnu: ruby-rack-test: Honor #:tests? argument.
gnu: ruby-sinatra: Update to 3.0.5.
gnu: ruby-webrick: Update to 1.8.1.
gnu: Add ruby-rackup.
gnu: Add ruby-vcr-expat.
gnu: Add ruby-prettier-print.
gnu: Add ruby-syntax-tree.
gnu: Add ruby-subprocess.
gnu: Add ruby-rake-compiler-dock.
gnu: Add ruby-concurrent-ruby.
gnu: ruby-concurrent: Replace with ruby-concurrent-ruby.
gnu: Add ruby-concurrent-ruby-ext.
gnu: Add ruby-concurrent-ruby-edge.
gnu: Add ruby-sorbet-runtime.
gnu: Add ruby-rdiscount.
gnu: Add ruby-ruby2-keywords.
gnu: Add ruby-faraday-net-http.
gnu: ruby-faraday: Update to 2.7.4 and enable test suite.
gnu: ruby-octokit: Update to 6.1.0.
gnu: ruby-faraday: Propagate ruby-faraday-net-http.
gnu: ruby-sawyer: Update to 0.9.2.
gnu: ruby-pry-byebug: Avoid depending on ruby-chandler.
gnu: ruby-pry-byebug: Update to 3.10.1.
gnu: ruby-byebug: Do not depend on ruby-chandler.
gnu: Remove ruby-chandler.
gnu: Add ruby-multipart-parser.
gnu: Add ruby-faraday-multipart.
gnu: ruby-maxitest: Update to 4.4.1.
gnu: Add ruby-fileutils.
gnu: ruby-faraday-middleware: Add a deprecation comment and re-indent.
gnu: ruby-bandwidth-iris: Fix indentation.
gnu: ruby-bandwidth-iris: Update to 7.0.0.
gnu: ruby-octokit: Enable tests.
gnu: Add ruby-mapping.
gnu: Add ruby-fiber-local.
gnu: Add ruby-console.
gnu: Add ruby-ruby-memcheck.
gnu: Add ruby-msgpack.
gnu: Add ruby-covered.
gnu: Add ruby-samovar.
gnu: Add ruby-io-console.
gnu: Add ruby-reline.
gnu: Add ruby-irb.
gnu: Add ruby-debug.
gnu: Add ruby-rspec-debug.
gnu: Add ruby-bake.
gnu: Add ruby-bake-test.
gnu: Add ruby-bake-test-external.
gnu: Add ruby-sus.
gnu: Add ruby-timers.
gnu: Add ruby-localhost.
gnu: bundler: Update to 2.4.8.
gnu: ruby-puma: Update to 6.1.1 and enable test suite.
gnu: Add ruby-capybara.
gnu: Add ruby-rack-session.
gnu: ruby-rubyzip: Update to 2.3.2.
gnu: ruby-actionpack: Update to 7.0.4.3 and enable test suite.
gnu: Add ruby-event-emitter.
gnu: Add ruby-websocket-native.
gnu: Add ruby-websocket-eventmachine-base.
gnu: Add ruby-websocket-eventmachine-server.
gnu: Add ruby-websocket-client-simple.
gnu: ruby-actioncable: Update to 7.0.4.3 and enable tests.
gnu: ruby-mini-mime: Update to 1.1.2.
gnu: ruby-marcel: Update to 1.0.2.
gnu: ruby-marcel: Relocate to (gnu packages rails).
gnu: ruby-marcel: Enable tests.
gnu: ruby-activestorage: Update to 7.0.4.3.
gnu: ruby-actiontext: Update to 7.0.4.3.
gnu: Add ruby-timeout.
gnu: Add ruby-net-protocol.
gnu: Add ruby-date.
gnu: Add ruby-net-imap.
gnu: Add ruby-net-pop.
gnu: Add ruby-net-smtp.
gnu: ruby-actionmailbox: Update to 7.0.4.3.
gnu: ruby-actionmailer: Update to 7.0.4.3.
gnu: ruby-sprockets: Update to 4.2.0.
gnu: ruby-sprockets: Relocate to (gnu packages rails).
gnu: ruby-sprockets-rails: Update to 3.4.2.
gnu: Add ruby-bootsnap.
gnu: ruby-globalid: Update to 1.1.0.
gnu: ruby-globalid: Move to (gnu packages rails).
gnu: Add ruby-importmap-rails.
gnu: ruby-railties: Enable test suite.
gnu: Add ruby-propshaft.
gnu: Add ruby-stimulus-rails.
gnu: Add ruby-turbo-rails.
gnu: ruby-rails: Update to 7.0.4.3.
gnu: ruby-spring: Update to 4.1.1.
gnu: Add ruby-dotenv-rails.
gnu: Add ruby-flores.
gnu: Add ruby-pleaserun.
gnu: Add ruby-arr-pm.
gnu: Add perl-app-cpanminus.
gnu: ruby-minitest: Update home page URL.
gnu: ruby-minitest: Update to 5.18.0.
gnu: ruby-cucumber-html-formatter: Honor #:tests? argument.
gnu: ruby-rubocop-rspec-minimal: Update source and home page URL.
gnu: Add fpm.

gnu/local.mk | 1 +
gnu/packages/databases.scm | 128 +-
gnu/packages/package-management.scm | 80 +
.../ruby-hiredis-use-system-hiredis.patch | 52 +
gnu/packages/perl.scm | 21 +
gnu/packages/protobuf.scm | 18 +-
gnu/packages/rails.scm | 1210 ++++--
gnu/packages/ruby.scm | 3774 +++++++++++++----
8 files changed, 4161 insertions(+), 1123 deletions(-)
create mode 100644 gnu/packages/patches/ruby-hiredis-use-system-hiredis.patch


base-commit: d37b467631d5b0e965ea933b8bda8448993580e9
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 002/223] gnu: Add ruby-clamp.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-2-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-clamp): New variable.
---
gnu/packages/ruby.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 2fdac01841..b55e1c7b7a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2088,6 +2088,34 @@ (define-public ruby-crack
(home-page "https://github.com/jnunemaker/crack")
(license license:expat)))
+(define-public ruby-clamp
+ (package
+ (name "ruby-clamp")
+ (version "1.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "clamp" version))
+ (sha256
+ (base32
+ "08m0syh06bhx8dqn560ivjg96l5cs5s3l9jh2szsnlcdcyl9jsjg"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-require-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("require \"rubocop/rake_task\"")
+ "")
+ (("RuboCop::RakeTask.new")
+ "")))))))
+ (native-inputs (list ruby-rspec))
+ (synopsis "Command-line parsing library for Ruby")
+ (description "Clamp provides an object-model for command-line utilities.
+It handles parsing of command-line options, and generation of usage help.")
+ (home-page "https://github.com/mdub/clamp")
+ (license license:expat)))
+
(define-public ruby-cliver
(package
(name "ruby-cliver")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 003/223] gnu: Add ruby-stud.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-3-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-stud): New variable.
---
gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b55e1c7b7a..84ecdf14db 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1690,6 +1690,43 @@ (define-public ruby-gimme
(home-page "https://github.com/searls/gimme")
(license license:expat))))
+(define-public ruby-stud
+ (package
+ (name "ruby-stud")
+ (version "0.0.23")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "stud" version))
+ (sha256
+ (base32
+ "0qpb57cbpm9rwgsygqxifca0zma87drnlacv49cqs2n5iyi6z8kb"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-rspec))
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ ;; No Rakefile is included, so run rspec directly.
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (synopsis "Retries, worker supervision, resource pools and more for Ruby")
+ (description "The Stud Ruby library adds a few things missing from the
+standard Ruby library such as:
+@table @code
+@item {Stud::Try}
+Retry on failure, with back-off, where failure is any exception.
+@item {Stud::Pool}
+Generic resource pools.
+@item {Stud::Task}
+Tasks (threads that can return values, exceptions, etc.)
+@item {Stud.interval}
+Interval execution (do X every N seconds).
+@item {Stud::Buffer}
+Batch and flush behavior.
+@end itemize")
+ (home-page "https://github.com/jordansissel/ruby-stud")
+ (license license:asl2.0)))
+
(define-public ruby-standard
(package
(name "ruby-standard")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 001/223] gnu: Add ruby-cabin.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-1-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cabin): New variable.
---
gnu/packages/ruby.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 44e2c7c0ca..2fdac01841 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10685,6 +10685,25 @@ (define-public ruby-parallel
suited for map-reduce or e.g. parallel downloads/uploads.")
(license license:expat)))
+(define-public ruby-cabin
+ (package
+ (name "ruby-cabin")
+ (version "0.9.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "cabin" version))
+ (sha256
+ (base32
+ "0b3b8j3iqnagjfn1261b9ncaac9g44zrx1kcg81yg4z9i513kici"))))
+ (build-system ruby-build-system)
+ (arguments (list #:tests? #f)) ;no Rakefile in released gem
+ (synopsis "Structured and contextual logging experiments in Ruby")
+ (description "This Ruby library provides an experimental logging system
+that tries to make logging more flexible and more consumable than plain-text
+logging.")
+ (home-page "https://github.com/jordansissel/ruby-cabin")
+ (license license:asl2.0)))
+
(define-public ruby-cane
(package
(name "ruby-cane")

base-commit: 45fd01ac5d561d9dbe4687a6e3e927508af47cb8
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 010/223] gnu: Add ruby-rubocop-rake-minimal.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-10-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rubocop-rake-minimal): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0601c2bc11..5da56ec800 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1537,6 +1537,26 @@ (define-public ruby-typhoeus
(home-page "https://github.com/typhoeus/typhoeus")
(license license:expat)))
+(define ruby-rubocop-rake-minimal
+ (package
+ (name "ruby-rubocop-rake")
+ (version "0.6.0")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/rubocop/rubocop-rake")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1r53szwglikbir1fvpz4i51p915khrrkl6rp61zcx3dcrclkr3ld"))))
+ (build-system ruby-build-system)
+ (arguments (list #:tests? #f)) ;avoid extra dependencies
+ (synopsis "RuboCop plugin for Rake")
+ (description "This package provides a RuboCop plugin for Rake.")
+ (home-page "https://github.com/rubocop/rubocop-rake")
+ (license license:expat)))
+
(define-public ruby-rubocop-rspec
(package
(name "ruby-rubocop-rspec")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 004/223] gnu: Add ruby-insist.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-4-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-insist): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 84ecdf14db..4ed760cfd6 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4102,6 +4102,29 @@ (define-public ruby-idn-ruby
(home-page "https://github.com/deepfryed/idn-ruby")
(license license:asl2.0)))
+(define-public ruby-insist
+ (package
+ (name "ruby-insist")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "insist" version))
+ (sha256
+ (base32
+ "0bw3bdwns14mapbgb8cbjmr0amvwz8y72gyclq04xp43wpp5jrvg"))))
+ (build-system ruby-build-system)
+ (arguments (list #:phases #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "ruby" "test/testing.rb")))))))
+ (synopsis "Testing tool for Ruby")
+ (description "This package provides a simple block-driven assertion
+library for both testing and for production code that attempts to make test
+definitions more readable.")
+ (home-page "https://github.com/jordansissel/ruby-insist/")
+ (license license:asl2.0)))
+
(define-public ruby-instantiator
(package
(name "ruby-instantiator")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 005/223] gnu: ruby-standard: Update to 1.25.2
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-5-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-standard): Update to 1.25.2.
[arguments]: Delete trailing #t. Update comment.
---
gnu/packages/ruby.scm | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4ed760cfd6..981a5912f2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1730,7 +1730,7 @@ (define-public ruby-stud
(define-public ruby-standard
(package
(name "ruby-standard")
- (version "0.4.7")
+ (version "1.25.2")
(source
(origin
(method git-fetch) ;no test suite in distributed gem
@@ -1740,22 +1740,20 @@ (define-public ruby-standard
(file-name (git-file-name name version))
(sha256
(base32
- "0ylx0lm2pbbgr5h7fban592w96bl3wxmvfcpcdfrhkxnpg5kiwgv"))))
+ "0c0lsrvdl224s8166xrk9ibm19wbzn5l9s27cm7bjn0jr81j6agk"))))
(build-system ruby-build-system)
(arguments
- ;; TODO: the tests are currently broken due to using a newer Rubocop.
+ ;; TODO: the tests are currently broken due to using a different Rubocop
+ ;; version.
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-version-requiremens
(lambda _
(delete-file "Gemfile")
- (delete-file "Gemfile.lock")
- #t)))))
- (native-inputs
- (list ruby-gimme ruby-pry ruby-simplecov))
- (propagated-inputs
- (list ruby-rubocop ruby-rubocop-performance))
+ (delete-file "Gemfile.lock"))))))
+ (native-inputs (list ruby-gimme ruby-pry ruby-simplecov))
+ (propagated-inputs (list ruby-rubocop ruby-rubocop-performance))
(synopsis "Ruby Style Guide, with linter & automatic code fixer")
(description "Standard is a port of StandardJS. Like StandardJS, it aims
to save time in the following ways:
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 006/223] gnu: ruby-oedipus-lex: Update to 2.6.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-6-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-oedipus-lex): Update to 2.6.0.
---
gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 981a5912f2..7125bfe4b3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5598,14 +5598,14 @@ (define-public ruby-single-cov
(define-public ruby-oedipus-lex
(package
(name "ruby-oedipus-lex")
- (version "2.5.2")
+ (version "2.6.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "oedipus_lex" version))
(sha256
(base32
- "1v1rk78khwq87ar300lwll570zxpkq9rjnpgc9mgsyd6mm9qjz4w"))))
+ "094nd7jd3klv45mvprfn2ivcgw8cckq3jhlly77j903vlamfi0df"))))
(build-system ruby-build-system)
(native-inputs
(list ruby-hoe))
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:12 +0100
[PATCH 007/223] gnu: ruby-oedipus-lex: Fix indentation.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-7-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-oedipus-lex): Fix indentation.
---
gnu/packages/ruby.scm | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7125bfe4b3..14499789b4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5600,23 +5600,22 @@ (define-public ruby-oedipus-lex
(name "ruby-oedipus-lex")
(version "2.6.0")
(source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "oedipus_lex" version))
- (sha256
- (base32
- "094nd7jd3klv45mvprfn2ivcgw8cckq3jhlly77j903vlamfi0df"))))
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "oedipus_lex" version))
+ (sha256
+ (base32
+ "094nd7jd3klv45mvprfn2ivcgw8cckq3jhlly77j903vlamfi0df"))))
(build-system ruby-build-system)
- (native-inputs
- (list ruby-hoe))
+ (native-inputs (list ruby-hoe))
(synopsis "Ruby lexer")
(description
"Oedipus Lex is a lexer generator in the same family as Rexical and Rex.
It is based primarily on generating code much like you would a hand-written
lexer. It uses StrScanner within a multi-level case statement. As such,
Oedipus matches on the first match, not the longest.")
- (home-page "https://github.com/seattlerb/oedipus_lex")
- (license license:expat)))
+ (home-page "https://github.com/seattlerb/oedipus_lex")
+ (license license:expat)))
(define-public ruby-guard
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 097/223] gnu: Add ruby-faraday-net-http.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-97-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-faraday-net-http): New variable.
---
gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 960a75bf53..d05a1414ee 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12160,6 +12160,27 @@ (define-public ruby-jekyll-paginate-v2
logic in Jekyll. It calculates and generates the pagination pages.")
(license license:expat)))
+(define-public ruby-faraday-net-http
+ (package
+ (name "ruby-faraday-net-http")
+ (version "3.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "faraday-net_http" version))
+ (sha256
+ (base32
+ "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8"))))
+ (build-system ruby-build-system)
+ ;; Do not run the test suite here as it would introduce a dependency cycle
+ ;; with ruby-faraday, which uses it as part of its test suite.
+ (arguments (list #:tests? #f))
+ (synopsis "Faraday adapter for Net::HTTP")
+ (description "This gem is a Faraday adapter for the @code{Net::HTTP}
+library. Faraday is an HTTP client library that provides a common interface
+over many adapters.")
+ (home-page "https://github.com/lostisland/faraday-net_http")
+ (license license:expat)))
+
(define-public ruby-faraday
(package
(name "ruby-faraday")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 032/223] gnu: ruby-standard: Enable test suite.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-32-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-standard) [arguments]: Delete #:tests? argument.
Delete relax-version-requiremens phase. Add set-HOME and
delete-problematic-tests phases.
[propagated-inputs]: Add ruby-language-server-protocol.
---
gnu/packages/ruby.scm | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 265dd6e50a..b06bdbcb6b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1816,17 +1816,28 @@ (define-public ruby-standard
"0c0lsrvdl224s8166xrk9ibm19wbzn5l9s27cm7bjn0jr81j6agk"))))
(build-system ruby-build-system)
(arguments
- ;; TODO: the tests are currently broken due to using a different Rubocop
- ;; version.
- `(#:tests? #f
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'relax-version-requiremens
+ (add-after 'unpack 'set-HOME
(lambda _
- (delete-file "Gemfile")
- (delete-file "Gemfile.lock"))))))
- (native-inputs (list ruby-gimme ruby-pry ruby-simplecov))
- (propagated-inputs (list ruby-rubocop ruby-rubocop-performance))
+ ;; Some tests fail otherwise.
+ (setenv "HOME" "/tmp")))
+ (add-after 'unpack 'delete-problematic-tests
+ ;; These tests fail for unknown reasons (see:
+ ;; https://github.com/testdouble/standard/issues/532).
+ (lambda _
+ (for-each
+ delete-file
+ '("test/standard_test.rb"
+ "test/standard/cop/block_single_line_braces_test.rb")))))))
+ (native-inputs
+ (list ruby-gimme
+ ruby-pry
+ ruby-simplecov))
+ (propagated-inputs
+ (list ruby-language-server-protocol
+ ruby-rubocop
+ ruby-rubocop-performance))
(synopsis "Ruby Style Guide, with linter & automatic code fixer")
(description "Standard is a port of StandardJS. Like StandardJS, it aims
to save time in the following ways:
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 029/223] gnu: Add ruby-minitest-power-assert.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-29-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-minitest-power-assert): New variable.
---
gnu/packages/ruby.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index cf270a0d34..ceeda5647d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4625,6 +4625,24 @@ (define-public ruby-minitest-focus
(home-page "https://github.com/seattlerb/minitest-focus")
(license license:expat)))
+(define-public ruby-minitest-power-assert
+ (package
+ (name "ruby-minitest-power-assert")
+ (version "0.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest-power_assert" version))
+ (sha256
+ (base32
+ "1dazl6nbxjvvmi5jamrsygkz396s29b7cd841ni6qy4izk8jd9b7"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-minitest ruby-power-assert))
+ (synopsis "Power Assert implementation for Minitest")
+ (description "This gem provides a Power Assert implementation for
+Minitest. It is inspired by the @code{test-unit-power_assert} gem.")
+ (home-page "https://github.com/hsbt/minitest-power_assert")
+ (license license:bsd-2)))
+
(define-public ruby-minitest-pretty-diff
;; Use git reference because gem is out of date and does not contain testing
;; script. There are no releases on GitHub.
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 050/223] gnu: ruby-gherkin: Update to 26.0.3, fixing build.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-50-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-gherkin): Update to 26.0.3.
[source]: Adjust URL.
[arguments]: Add a #:phases argument.
[home-page]: Adjust URL.
[native-inputs]: Move ruby-cucumber-messages to...
[propagated-inputs]: ... here.
---
gnu/packages/ruby.scm | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4aa7b0da4c..8cc0acc26d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8025,26 +8025,29 @@ (define-public ruby-cucumber-messages
(define-public ruby-gherkin
(package
(name "ruby-gherkin")
- (version "14.0.1")
+ (version "26.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cucumber/gherkin-ruby")
+ (url "https://github.com/cucumber/gherkin")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1dwa8632nc6kijv8p257jl64rsjmc0fimlaqvxlkdi2h9n1nympb"))))
+ "0iyl20vngwy9qdnyzilzxcixd4y9sz913iczng9aly1vfdmyx055"))))
(build-system ruby-build-system)
- (native-inputs
- (list ruby-cucumber-messages ruby-rspec))
- (arguments
- `(#:test-target "spec"))
+ (arguments (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "ruby"))))))
+ (native-inputs (list ruby-rspec))
+ (propagated-inputs (list ruby-cucumber-messages))
(synopsis "Gherkin parser for Ruby")
(description "Gherkin is a parser and compiler for the Gherkin language.
It is intended be used by all Cucumber implementations to parse
@file{.feature} files.")
- (home-page "https://github.com/cucumber/gherkin-ruby")
+ (home-page "https://github.com/cucumber/gherkin")
(license license:expat)))
(define-public ruby-gherkin-ruby
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 065/223] gnu: ruby-zeitwerk: Update to 2.6.7.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-65-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-zeitwerk): Update to 2.6.7.
[native-inputs]: Add ruby-minitest-proveit.
---
gnu/packages/ruby.scm | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b743d24021..01bc491918 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12564,21 +12564,23 @@ (define-public ruby-wayback-machine-downloader
(define-public ruby-zeitwerk
(package
(name "ruby-zeitwerk")
- (version "2.4.2")
+ (version "2.6.7")
(source
(origin
- (method git-fetch)
+ (method git-fetch) ;for tests
(uri (git-reference
- ;; No tests in the released gem.
(url "https://github.com/fxn/zeitwerk")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "119fgdyb57gmss2yvfwfr47wcy8nny38sai72446krpihyavpizw"))))
+ "10p1ycv72yas1fdqrmdyz1aiqf8axj6q1kyllni2wknhk059jvi0"))))
(build-system ruby-build-system)
(native-inputs
- (list ruby-minitest ruby-minitest-focus ruby-minitest-reporters))
+ (list ruby-minitest
+ ruby-minitest-focus
+ ruby-minitest-proveit
+ ruby-minitest-reporters))
(synopsis "Efficient and thread-safe code loader for Ruby")
(description
"Zeitwerk implements constant autoloading with Ruby semantics. Each gem
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 069/223] gnu: ruby-addressable: Update to 2.8.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-69-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-addressable): Update to 2.8.1.
[arguments]: Delete trailing #t. Add disable-bundler phase.
[native-inputs]: Sort.
---
gnu/packages/ruby.scm | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)

Toggle diff (63 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 159de488bc..a90ecc9f6c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10644,38 +10644,40 @@ (define-public ruby-public-suffix
(define-public ruby-addressable
(package
(name "ruby-addressable")
- (version "2.7.0")
+ (version "2.8.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "addressable" version))
(sha256
(base32
- "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"))))
+ "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw"))))
(build-system ruby-build-system)
(arguments
'(#:test-target "spec"
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'disable-bundler
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ (("require 'bundler/setup'") ""))))
(add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile
- (lambda _
- (substitute* "Gemfile"
- (("git: 'https://github.com/sporkmonger/rack-mount.git',") "")
- ((".*launchy.*") "")
- ((".*rake.*") "gem 'rake'\n")
- ((".*redcarpet.*") ""))
- #t))
+ (lambda _
+ (substitute* "Gemfile"
+ (("git: 'https://github.com/sporkmonger/rack-mount.git',") "")
+ ((".*launchy.*") "")
+ ((".*rake.*") "gem 'rake'\n")
+ ((".*redcarpet.*") ""))))
(add-before 'check 'delete-network-dependent-test
(lambda _
- (delete-file "spec/addressable/net_http_compat_spec.rb")
- #t)))))
+ (delete-file "spec/addressable/net_http_compat_spec.rb"))))))
(native-inputs
- (list ruby-rspec
- bundler
+ (list bundler
ruby-idn-ruby
- ruby-sporkmonger-rack-mount
+ ruby-rspec
ruby-rspec-its-minimal
- ruby-yard
- ruby-simplecov))
+ ruby-simplecov
+ ruby-sporkmonger-rack-mount
+ ruby-yard))
(propagated-inputs
(list ruby-public-suffix))
(home-page "https://github.com/sporkmonger/addressable")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 023/223] gnu: ruby-simplecov: Update to 0.22.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-23-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-simplecov): Update to 0.22.0.
[native-inputs]: Delete field.
[propagated-inputs]: Add ruby-simplecov-json-formatter.
(ruby-rubycop-ast) [phases]: Add a relax-dependencies phase.
[home-page]: Update URL.
---
gnu/packages/ruby.scm | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)

Toggle diff (52 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e6d80f8bbe..e7cb2900a1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3406,26 +3406,27 @@ (define-public ruby-simplecov-json-formatter
(define-public ruby-simplecov
(package
(name "ruby-simplecov")
- (version "0.17.1")
+ (version "0.22.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "simplecov" version))
(sha256
(base32
- "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw"))))
+ "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"))))
(build-system ruby-build-system)
;; Simplecov depends on rubocop for code style checking at build time.
;; Rubocop needs simplecov at build time.
(arguments `(#:tests? #f))
(propagated-inputs
- (list ruby-json ruby-docile ruby-simplecov-html))
- (native-inputs
- (list bundler))
+ (list ruby-json
+ ruby-docile
+ ruby-simplecov-html
+ ruby-simplecov-json-formatter))
(synopsis "Code coverage framework for Ruby")
(description "SimpleCov is a code coverage framework for Ruby with a
powerful configuration library and automatic merging of coverage across test
suites.")
- (home-page "https://github.com/colszowka/simplecov")
+ (home-page "https://github.com/simplecov-ruby/simplecov")
(license license:expat)))
(define-public ruby-useragent
@@ -7134,6 +7135,11 @@ (define-public ruby-rubocop-ast
(arguments
`(#:test-target "spec"
#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'relax-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem 'simplecov', '~> 0.10', '< 0.18'")
+ "gem 'simplecov', '~> 0.10'"))))
(add-before 'build 'generate-lexer
(lambda _
(setenv "RUBOCOP_VERSION" "none")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 088/223] gnu: Add ruby-subprocess.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-88-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-subprocess): New variable.
---
gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 492468c296..279e9d8041 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12226,6 +12226,27 @@ (define-public ruby-language-server-protocol
(home-page "https://github.com/mtsmfm/language_server-protocol-ruby")
(license license:expat)))
+(define-public ruby-subprocess
+ (package
+ (name "ruby-subprocess")
+ (version "1.5.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "subprocess" version))
+ (sha256
+ (base32
+ "0v49ahfx9b75qg42sl8a3l367g2vihc16g8z5f2raxpxjl1wh2s2"))))
+ (build-system ruby-build-system)
+ ;; Do not run the test suite, as there its test dependency ruby-sord would
+ ;; introduce a cycle with ruby-sorbet-runtime.
+ (arguments (list #:tests? #f))
+ (native-inputs (list ruby-minitest ruby-pry))
+ (synopsis "Ruby library to control and communicate with spawned processes")
+ (description "This Ruby library is controlling and communicating with
+spawned processes. It is designed after Python's @code{subprocess} module.")
+ (home-page "https://github.com/stripe/subprocess")
+ (license license:expat)))
+
(define-public ruby-syntax-tree
(package
(name "ruby-syntax-tree")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 024/223] gnu: Add ruby-rubocop-capybara.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-24-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rubocop-capybara): New variable.
---
gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e7cb2900a1..44ac7fb538 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1557,6 +1557,31 @@ (define ruby-rubocop-capybara-minimal
(home-page "https://github.com/rubocop/rubocop-capybara")
(license license:expat)))
+(define-public ruby-rubocop-capybara
+ (package
+ (inherit ruby-rubocop-capybara-minimal)
+ (arguments
+ (list #:tests? #t
+ #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem 'rubocop-rspec', '~> 2.16.0'")
+ "gem 'rubocop-rspec', '>= 2.16.0'")))))))
+ (native-inputs
+ (list ruby-bump
+ ruby-rack
+ ruby-rake
+ ruby-rspec
+ ruby-rubocop
+ ruby-rubocop-performance-minimal
+ ruby-rubocop-rake-minimal
+ ruby-rubocop-rspec-minimal
+ ruby-simplecov
+ ruby-yard))))
+
+;;; A minimal variant used to build ruby-rubocop itself.
(define ruby-rubocop-rake-minimal
(package
(name "ruby-rubocop-rake")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 102/223] gnu: ruby-pry-byebug: Avoid depending on ruby-chandler.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-1-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-pry-byebug) [phases]: Add sanitize-dependencies
phase.
[native-inputs]: Remove ruby-chandler, an unmaintained library.
---

gnu/packages/ruby.scm | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

Toggle diff (28 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 65d0274d99..b63b4d4d23 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7963,14 +7963,15 @@ (define-public ruby-pry-byebug
(build-system ruby-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'sanitize-dependencies
+ (lambda _
+ (substitute* "Rakefile"
+ ((".*chandler/tasks.*") ""))))
(add-before 'check 'set-home
(lambda _
- (setenv "HOME" (getcwd))
- #t)))))
- (native-inputs
- (list ruby-chandler ruby-rubocop ruby-simplecov))
- (propagated-inputs
- (list ruby-byebug ruby-pry))
+ (setenv "HOME" (getcwd)))))))
+ (native-inputs (list ruby-rubocop ruby-simplecov))
+ (propagated-inputs (list ruby-byebug ruby-pry))
(synopsis "Step-by-step debugging and stack navigation in Pry")
(description "This package adds step-by-step debugging and stack
navigation capabilities to @code{pry}, using @code{byebug}.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 063/223] gnu: Add ruby-delayed-job.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-63-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-delayed-job): New variable.
---
gnu/packages/ruby.scm | 47 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 57a4d52ce4..d0ea01aa76 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5022,6 +5022,53 @@ (define-public ruby-deep-merge
you to merge elements inside a hash together recursively.")
(license license:expat)))
+(define-public ruby-delayed-job
+ (package
+ (name "ruby-delayed-job")
+ (version "4.1.11")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "delayed_job" version))
+ (sha256
+ (base32
+ "0s2xg72ljg4cwmr05zi67vcyz8zib46gvvf7rmrdhsyq387m2qcq"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-bundler
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'bundler/setup'") "")
+ (("Bundler::GemHelper\\.install_tasks") ""))))
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask.new") ""))))
+ (add-after 'extract-gemspec 'remove-dependency-on-actionmailer
+ (lambda _
+ (substitute* "spec/helper.rb"
+ (("require 'action_mailer'") ""))
+ (substitute* "delayed_job.gemspec"
+ (("\"spec/performable_mailer_spec.rb\".freeze, ") ""))
+ (delete-file "spec/performable_mailer_spec.rb"))))))
+ (native-inputs
+ (list ruby-activerecord
+ ruby-rspec
+ ruby-simplecov
+ ruby-simplecov-lcov
+ ruby-zeitwerk))
+ (propagated-inputs
+ (list ruby-activesupport))
+ (synopsis "Asynchronous background tasks execution library")
+ (description "Delayed_job (or DJ) encapsulates the common pattern of
+asynchronously executing longer tasks in the background. It is a direct
+extraction from Shopify where the job table is responsible for a multitude of
+core tasks.")
+ (home-page "https://github.com/collectiveidea/delayed_job")
+ (license license:expat)))
+
(define-public ruby-git
(package
(name "ruby-git")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 103/223] gnu: ruby-pry-byebug: Update to 3.10.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-2-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-pry-byebug): Update to 3.10.1.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b63b4d4d23..7d0c029865 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7949,7 +7949,7 @@ (define-public ruby-chandler
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
- (version "3.9.0")
+ (version "3.10.1")
(source
(origin
(method git-fetch)
@@ -7959,7 +7959,7 @@ (define-public ruby-pry-byebug
(file-name (git-file-name name version))
(sha256
(base32
- "1kchrwccai92068p50zyd6mh524ywqnm0jw5g3lks7iwmf0xkmgc"))))
+ "0z8rhvmr9qmlbk8c8h6jbig5qd5xbdg9qihvx3g0cv1whqzbfikq"))))
(build-system ruby-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 104/223] gnu: ruby-byebug: Do not depend on ruby-chandler.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-3-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-byebug) [phases]
{sanitize-dependencies}: New phase.
[native-inputs]: Delete ruby-chandler.
---

gnu/packages/ruby.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Toggle diff (25 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7d0c029865..8eed3b3e47 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6950,6 +6950,10 @@ (define-public ruby-byebug
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'sanitize-dependencies
+ (lambda _
+ (substitute* "Rakefile"
+ ((".*chandler/tasks.*") ""))))
(add-after 'unpack 'skip-tmp-path-sensitive-test
(lambda _
(substitute* "test/commands/where_test.rb"
@@ -6969,7 +6973,6 @@ (define-public ruby-byebug
(setenv "HOME" (getcwd)))))))
(native-inputs
(list bundler
- ruby-chandler
;; Using minitest 5.17 would cause 5 new bug failures. This is
;; probably related to
;; https://github.com/deivid-rodriguez/byebug/pull/837. Use
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 105/223] gnu: Remove ruby-chandler.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-4-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-chandler): Delete variable.
---

gnu/packages/ruby.scm | 23 -----------------------
1 file changed, 23 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 8eed3b3e47..ad5cc1ebf8 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7926,29 +7926,6 @@ (define-public ruby-octokit
(home-page "https://github.com/octokit/octokit.rb")
(license license:expat)))
-(define-public ruby-chandler
- (package
- (name "ruby-chandler")
- (version "0.9.0")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "chandler" version))
- (sha256
- (base32
- "1n8a4mr2jkcz5vaaps45g2rxa2pzy1wb7cylgw85xmmyyp14lnrr"))))
- (build-system ruby-build-system)
- (native-inputs
- (list ruby-rubocop))
- (propagated-inputs
- (list ruby-netrc ruby-octokit))
- (synopsis "Sync CHANGELOG entries to GitHub's release notes")
- (description "Chandler syncs a project's CHANGELOG file entries to
-GitHub's release notes to remove the need of manually entering release
-notes.")
- (home-page "https://github.com/mattbrictson/chandler")
- (license license:expat)))
-
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 112/223] gnu: ruby-bandwidth-iris: Update to 7.0.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-11-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-bandwidth-iris): Update to 7.0.0.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a725a78767..536775cf74 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13885,13 +13885,13 @@ (define-public ruby-faraday-multipart
(define-public ruby-bandwidth-iris
(package
(name "ruby-bandwidth-iris")
- (version "5.1.0")
+ (version "7.0.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "ruby-bandwidth-iris" version))
(sha256
- (base32 "1hmrxs0dif6fw5npyzcshk4nq9qr2kbmnx7mdjr5v1nhzlfr0678"))))
+ (base32 "131c4jhyvnrwbhizkks17fi9g85cwsq5f1p8zi408zyf63n7230d"))))
(build-system ruby-build-system)
(arguments
;; XXX: Tests don't require helper for some reason, so all fail.
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 106/223] gnu: Add ruby-multipart-parser.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-5-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-multipart-parser): New variable.
---

gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ad5cc1ebf8..e969107c1a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5271,6 +5271,41 @@ (define-public ruby-multi-xml
(home-page "https://github.com/sferik/multi_xml")
(license license:expat)))
+(define-public ruby-multipart-parser
+ (package
+ (name "ruby-multipart-parser")
+ (version "0.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multipart-parser" version))
+ (sha256
+ (base32
+ "0xb4p475yrfm883h9kn80a021myn17dvs50wpa1djzcmlq7p0882"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-failing-test
+ ;; One test fails for unknown reasons (see:
+ ;; https://github.com/danabr/multipart-parser/issues/7).
+ (lambda _
+ (substitute* "test/multipart_parser/reader_test.rb"
+ (("def test_long" all)
+ (string-append all "\n return true"))))))))
+ (synopsis "Parser for multipart MIME messages")
+ (description "@code{multipart-parser} is a simple parser for multipart
+MIME messages, written in Ruby, based on felixge/node-formidable's parser. It
+has the following characteristics:
+@itemize
+@item Pure Ruby
+@item Event-driven API
+@item Only supports one level of multipart parsing
+@item Does not perform I/O
+@item Does not depend on any other library.
+@end itemize")
+ (home-page "https://github.com/danabr/multipart-parser")
+ (license license:expat)))
+
(define-public ruby-multipart-post
(package
(name "ruby-multipart-post")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 107/223] gnu: Add ruby-faraday-multipart.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-6-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-faraday-multipart): New variable.
---

gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e969107c1a..0ed73e91d7 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13828,6 +13828,29 @@ (define-public ruby-faraday-middleware
Faraday-based API wrappers.")
(license license:expat)))
+(define-public ruby-faraday-multipart
+ (package
+ (name "ruby-faraday-multipart")
+ (version "1.0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lostisland/faraday-multipart")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ywxhff40a688n50lxrn4d8y096l8sbrwp1jfz4zd3kdiiygclka"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "spec"))
+ (native-inputs (list ruby-faraday ruby-multipart-parser ruby-rspec))
+ (propagated-inputs (list ruby-multipart-post))
+ (synopsis "Multipart-post requests extension for Faraday")
+ (description "This Ruby gem extends Faraday to perform multipart-post
+requests.")
+ (home-page "https://github.com/lostisland/faraday-multipart")
+ (license license:expat)))
+
(define-public ruby-bandwidth-iris
(package
(name "ruby-bandwidth-iris")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 114/223] gnu: Add ruby-mapping.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-13-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-mapping): New variable.
---

gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 2345c344b9..6ac419edd6 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3940,6 +3940,30 @@ (define-public ruby-test-unit
(home-page "https://test-unit.github.io/")
(license (list license:psfl license:ruby))))
+(define-public ruby-mapping
+ (package
+ (name "ruby-mapping")
+ (version "1.1.1")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ioquatix/mapping")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yhmqp8mprjqf9m7wzc4hhi50qbfax86r89w852csns0ijaffjjs"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "spec"))
+ (native-inputs (list ruby-rspec))
+ (synopsis "Map model objects based on their class to a given output model")
+ (description "The @code{mapping} gem maps model objects based on their
+class to a given output model. It is useful for versioning external
+interfaces (e.g. JSON APIs) or processing structured data from one format to
+another.")
+ (home-page "https://github.com/ioquatix/mapping")
+ (license license:expat)))
+
(define-public ruby-markaby
(package
(name "ruby-markaby")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:21 +0100
[PATCH 108/223] gnu: ruby-maxitest: Update to 4.4.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-7-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-maxitest): Update to 4.4.1.
[arguments]: Delete trailing #t.
[native-inputs]: Delete labels.
---

gnu/packages/ruby.scm | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0ed73e91d7..b8a6b0c4f5 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4416,7 +4416,7 @@ (define-public ruby-rerun
(define-public ruby-maxitest
(package
(name "ruby-maxitest")
- (version "3.6.0")
+ (version "4.4.1")
(home-page "https://github.com/grosser/maxitest")
(source (origin
;; Pull from git because the gem does not contain tests.
@@ -4427,7 +4427,7 @@ (define-public ruby-maxitest
(file-name (git-file-name name version))
(sha256
(base32
- "07b3j0bv3dx5j42jlvpvl07aaxplyi6wq688y3jl8y528ww2hjz8"))))
+ "0l646lgrgsfgg9qh05b8a3jd43kgrmr6xzbdvyspmdlhchk1qszg"))))
(build-system ruby-build-system)
(arguments
'(#:test-target "default"
@@ -4436,27 +4436,24 @@ (define-public ruby-maxitest
(lambda _
(substitute* "maxitest.gemspec"
(("`git ls-files lib/ bin/ MIT-LICENSE Readme.md`")
- "`find lib/ bin/ MIT-LICENSE Readme.md -type f | sort`"))
- #t))
+ "`find lib/ bin/ MIT-LICENSE Readme.md -type f | sort`"))))
(add-before 'check 'remove-version-constraints
(lambda _
;; Don't use specific versions of dependencies, instead
;; take whatever is available in Guix.
- (delete-file "Gemfile.lock")
- #t))
+ (delete-file "Gemfile.lock")))
(add-before 'check 'add-mtest-on-PATH
(lambda _
;; Tests use 'mtest' which is not automatically added on
;; PATH.
(setenv "PATH" (string-append (getcwd) "/bin:"
- (getenv "PATH")))
- #t)))))
+ (getenv "PATH"))))))))
(native-inputs
- `(("ps" ,procps)
- ("ruby-bump" ,ruby-bump)
- ("ruby-byebug" ,ruby-byebug)
- ("ruby-rspec" ,ruby-rspec)
- ("ruby-wwtd" ,ruby-wwtd)))
+ (list procps
+ ruby-bump
+ ruby-byebug
+ ruby-rspec
+ ruby-wwtd))
(propagated-inputs
(list ruby-minitest))
(synopsis "Minitest with extra features")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 046/223] gnu: ruby-cucumber-html-formatter: Update to 20.2.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-46-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber-html-formatter): Update to 20.2.1.
[arguments]: Use gexps. Add a relax-requirements phase.
[native-inputs]: Add ruby-cucumber-compatibility-kit.
[home-page]: Update URL.
---
gnu/packages/ruby.scm | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)

Toggle diff (51 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c8029efa0b..b0e23a4116 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8204,31 +8204,32 @@ (define-public ruby-cucumber-create-meta
(define-public ruby-cucumber-html-formatter
(package
(name "ruby-cucumber-html-formatter")
- (version "7.0.0")
+ (version "20.2.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "cucumber-html-formatter" version))
(sha256
(base32
- "0lshj4sw9jw7687wrhknyb9kffblai3l843zgrznyqij3ga0bc62"))))
+ "0c7r9mfmph4c6yzc7y3dkr92rhwvpyksr0mdhpqp67xmmr8z1br4"))))
(build-system ruby-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (invoke "rspec"))))))
- (native-inputs
- (list ruby-rspec))
- (propagated-inputs
- (list ruby-cucumber-messages))
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (substitute* ".gemspec"
+ (("~> 18.0") "~> 21.0")))) ;cucumber-messages
+ (replace 'check
+ (lambda _
+ (invoke "rspec"))))))
+ (native-inputs (list ruby-cucumber-compatibility-kit ruby-rspec))
+ (propagated-inputs (list ruby-cucumber-messages))
(synopsis "HTML formatter for Cucumber")
(description "Cucumber HTML Formatter produces a HTML report for Cucumber
runs. It is built on top of cucumber-react and works with any Cucumber
implementation with a protocol buffer formatter that outputs Cucumber
messages.")
- (home-page "https://github.com/cucumber/cucumber/tree/\
-master/html-formatter/ruby")
+ (home-page "https://github.com/cucumber/html-formatter")
(license license:expat)))
(define-public ruby-cucumber
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 051/223] gnu: ruby-gherkin: Rename to ruby-cucumber-gherkin.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-51-maxim.cournoyer@gmail.com
To reflect the same change upstream.

* gnu/packages/ruby.scm (ruby-gherkin): Rename to...
(ruby-cucumber-gherkin): ... this.
(ruby-cucumber) [propagated-inputs]: Adjust accordingly.
(ruby-cucumber-core): Likewise (and adjust indentation).
(ruby-gherkin): Define as a deprecated package.
---
gnu/packages/ruby.scm | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)

Toggle diff (74 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 8cc0acc26d..eb618d5c2d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -84,6 +84,7 @@ (define-module (gnu packages ruby)
#:use-module (gnu packages version-control)
#:use-module (gnu packages serialization)
#:use-module (guix packages)
+ #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
@@ -5391,7 +5392,7 @@ (define-public ruby-cuke-modeler
(build-system ruby-build-system)
(arguments `(#:tests? #f)) ;no test suite in gem
(propagated-inputs
- (list ruby-gherkin))
+ (list ruby-cucumber-gherkin))
(synopsis "Gherkin test suite analysis tool")
(description "CukeModeler facilitates modeling a test suite that is
written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by
@@ -8022,9 +8023,9 @@ (define-public ruby-cucumber-messages
Cucumber.")
(license license:expat)))
-(define-public ruby-gherkin
+(define-public ruby-cucumber-gherkin
(package
- (name "ruby-gherkin")
+ (name "ruby-cucumber-gherkin")
(version "26.0.3")
(source (origin
(method git-fetch)
@@ -8050,6 +8051,8 @@ (define-public ruby-gherkin
(home-page "https://github.com/cucumber/gherkin")
(license license:expat)))
+(define-deprecated ruby-gherkin ruby-cucumber-gherkin)
+
(define-public ruby-gherkin-ruby
(package
(name "ruby-gherkin-ruby")
@@ -8300,11 +8303,11 @@ (define-public ruby-cucumber
(list ruby-builder
ruby-cucumber-core
ruby-cucumber-create-meta
+ ruby-cucumber-gherkin
ruby-cucumber-html-formatter
ruby-cucumber-messages
ruby-cucumber-wire
ruby-diff-lcs
- ruby-gherkin
ruby-multi-json
ruby-multi-test))
(native-inputs
@@ -8407,10 +8410,14 @@ (define-public ruby-cucumber-core
(("'cucumber-tag-expressions',.*")
"'cucumber-tag-expressions', '>=4.1.0'\n")))))))
(native-inputs
- (list ruby-rspec ruby-coveralls ruby-rubocop ruby-simplecov
+ (list ruby-rspec
+ ruby-coveralls
+ ruby-rubocop
+ ruby-simplecov
ruby-unindent))
(propagated-inputs
- (list ruby-cucumber-messages ruby-gherkin
+ (list ruby-cucumber-gherkin
+ ruby-cucumber-messages
ruby-cucumber-tag-expressions))
(synopsis "Core library for the Cucumber BDD app")
(description "Cucumber is a tool for running automated tests
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 045/223] gnu: ruby-cucumber-wire: Update to 6.2.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-45-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber-wire): Update to 6.2.1.
[arguments]: Delete #:phases argument.
---
gnu/packages/ruby.scm | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f8da5eb1c4..c8029efa0b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8422,24 +8422,17 @@ (define-public ruby-cucumber-expressions
(define-public ruby-cucumber-wire
(package
(name "ruby-cucumber-wire")
- (version "3.1.0")
+ (version "6.2.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "cucumber-wire" version))
(sha256
(base32
- "0z1n13lqv70zb2lcrvs2263lm0gsb3gz8gbv890kxzwp8cvd433k"))))
+ "1pmydrh9lcckj7p0cn67jw7msxdkgr9zir86cs19h3mf2zlcv7b9"))))
(build-system ruby-build-system)
(arguments
- '(#:tests? #f ;tests use cucumber, causing a cycle
- #:phases
- (modify-phases %standard-phases
- (add-after 'extract-gemspec 'relax-version-requirements
- (lambda _
- (substitute* ".gemspec"
- ((" 10\\.1") " 10.2"))
- #t)))))
+ (list #:tests? #f)) ;tests use cucumber, causing a cycle
(propagated-inputs
(list ruby-cucumber-core ruby-cucumber-expressions
ruby-cucumber-messages))
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 052/223] gnu: ruby-cucumber: Update to 8.0.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-52-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber): Update to 8.0.0.
[arguments]: Delete trailing #t. Adjust disable-rubocop phase. Refine the
strip-version-requirements phase. Set #:test-target to "spec".
[propagated-inputs]: Add ruby-cucumber-ci-environment, ruby-mime-types and
ruby-sys-uname. Remove ruby-cucumber-create-meta and ruby-multi-json.
[native-inputs]: Remove ruby-aruba-without-tests and ruby-rubocop.
Add ruby-cucumber-compatibility-kit.
(ruby-aruba-without-tests): Delete variable.
---
gnu/packages/ruby.scm | 77 +++++++++++++++++++------------------------
1 file changed, 33 insertions(+), 44 deletions(-)

Toggle diff (116 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index eb618d5c2d..d7a5cd81a5 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8139,18 +8139,6 @@ (define-public ruby-aruba
(home-page "https://github.com/cucumber/aruba")
(license license:expat)))
-;; A version of ruby-aruba without tests run so that circular dependencies can
-;; be avoided.
-(define ruby-aruba-without-tests
- (package
- (inherit ruby-aruba)
- (arguments '(#:tests? #f))
- (propagated-inputs
- `(("ruby-cucumber" ,ruby-cucumber-without-tests)
- ,@(alist-delete "ruby-cucumber"
- (package-propagated-inputs ruby-aruba))))
- (native-inputs '())))
-
(define-public ruby-sys-uname
(package
(name "ruby-sys-uname")
@@ -8265,7 +8253,7 @@ (define-public ruby-cucumber-ci-environment
(define-public ruby-cucumber
(package
(name "ruby-cucumber")
- (version "4.1.0")
+ (version "8.0.0")
(source
(origin
(method git-fetch)
@@ -8275,49 +8263,50 @@ (define-public ruby-cucumber
(file-name (git-file-name name version))
(sha256
(base32
- "0g9rqfslbzkkrq2kvl14fgknrhfbji3bjjpjxff5nc9wzd3hd549"))))
+ "1dz880fdz6rfbh1nwwcq21v65byik46jnf9gppnrqf3p5k61i55r"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "default"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'disable-rubocop
- ;; Rubocop lint check fails with our more recent version.
- (lambda _
- (substitute* "Rakefile"
- (("spec cucumber rubocop")
- "spec cucumber"))
- #t))
- (add-after 'extract-gemspec 'strip-version-requirements
- (lambda _
- (delete-file "Gemfile") ;do not use Bundler
- (substitute* "cucumber.gemspec"
- (("(.*add_.*dependency '[_A-Za-z0-9-]+').*" _ stripped)
- (string-append stripped "\n")))
- #t))
- (add-before 'check 'set-home
- (lambda _
- (setenv "HOME" (getcwd))
- #t)))))
+ (list #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-rubocop
+ ;; Remove extraneous Lint checks.
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'")
+ "")
+ (("RuboCop::RakeTask.new")
+ ""))))
+ (add-after 'extract-gemspec 'strip-version-requirements
+ (lambda _
+ (delete-file "Gemfile") ;do not use Bundler
+ (substitute* "cucumber.gemspec"
+ ;; The dependency specifications are often trailing
+ ;; behind and appear stricter than necessary, since the
+ ;; test suite passes with the newer component versions.
+ (("(.*add_.*dependency '[_A-Za-z0-9-]+')(.*)"
+ _ stripped rest)
+ (string-append stripped " # " rest "\n")))))
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" (getcwd)))))))
(propagated-inputs
(list ruby-builder
+ ruby-cucumber-ci-environment
ruby-cucumber-core
- ruby-cucumber-create-meta
ruby-cucumber-gherkin
ruby-cucumber-html-formatter
ruby-cucumber-messages
ruby-cucumber-wire
ruby-diff-lcs
- ruby-multi-json
- ruby-multi-test))
+ ruby-mime-types
+ ruby-multi-test
+ ruby-sys-uname))
(native-inputs
- (list ;; Use a untested version of aruba, to avoid a circular dependency, as
- ;; ruby-aruba depends on ruby-cucumber.
- ruby-aruba-without-tests
- ruby-rspec
- ruby-pry
+ (list ruby-cucumber-compatibility-kit
ruby-nokogiri
- ruby-rubocop))
+ ruby-pry
+ ruby-rspec))
(synopsis "Describe automated tests in plain language")
(description "Cucumber is a tool for running automated tests written in
plain language. It's designed to support a Behaviour Driven Development (BDD)
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 047/223] gnu: ruby-cucumber-html-formatter: Honor #:tests? argument.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-47-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber-html-formatter)
[arguments]: Honor #:tests? in check phase override.
---
gnu/packages/ruby.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b0e23a4116..403c3d0520 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8220,8 +8220,9 @@ (define-public ruby-cucumber-html-formatter
(substitute* ".gemspec"
(("~> 18.0") "~> 21.0")))) ;cucumber-messages
(replace 'check
- (lambda _
- (invoke "rspec"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
(native-inputs (list ruby-cucumber-compatibility-kit ruby-rspec))
(propagated-inputs (list ruby-cucumber-messages))
(synopsis "HTML formatter for Cucumber")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 054/223] gnu: Add ruby-rake-manifest.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-54-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rake-manifest): New variable.
---
gnu/packages/ruby.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ac8f30116a..fe5f4466f3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10413,6 +10413,40 @@ (define-public ruby-rake
(home-page "https://github.com/ruby/rake")
(license license:expat)))
+(define-public ruby-rake-manifest
+ (package
+ (name "ruby-rake-manifest")
+ (version "0.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mvz/rake-manifest")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "16k2yvg773c25kp2vhzhp01rhf53k0nhrcmpv34k1fridw90r2k8"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:test-target "default"
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'check) ;moved after the install phase
+ (add-after 'install 'check
+ (assoc-ref %standard-phases 'check))
+ (add-before 'check 'set-GEM_PATH
+ (lambda _
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby")))))))
+ (native-inputs (list ruby-rspec ruby-simplecov))
+ (synopsis "Rake tasks to generate and check a manifest file")
+ (description "This package provides Rake tasks to generate and check a
+manifest file.")
+ (home-page "https://github.com/mvz/rake-manifest")
+ (license license:expat)))
+
(define-public ruby-childprocess
(package
(name "ruby-childprocess")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 049/223] gnu: ruby-cucumber-expressions: Update to 16.1.2.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-49-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber-expressions): Update to 16.1.2.
[source]: Update URL.
[arguments]: Add a #:phases argument.
[home-page]: Update URL.
---
gnu/packages/ruby.scm | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d022151451..4aa7b0da4c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8421,27 +8421,30 @@ (define-public ruby-cucumber-core
(define-public ruby-cucumber-expressions
(package
(name "ruby-cucumber-expressions")
- (version "10.2.0")
+ (version "16.1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cucumber/cucumber-expressions-ruby")
+ (url "https://github.com/cucumber/cucumber-expressions")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1aivhcpjrmbvp9bg0y7g6zxh2swfvylvg0sapq5jc4i1y74k8npd"))))
+ "1dhq88k9x2x8svam5bc7rrcd166fqymda8wxryqkbkffhnzla0id"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "spec"))
- (native-inputs
- (list ruby-rspec ruby-simplecov))
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "ruby"))))))
+ (native-inputs (list ruby-rspec ruby-simplecov))
(synopsis "Simpler alternative to Regular Expressions")
(description "Cucumber Expressions offer similar functionality to Regular
Expressions, with a syntax that is easier to read and write. Cucumber
Expressions are extensible with parameter types.")
- (home-page "https://github.com/cucumber/cucumber-expressions-ruby")
+ (home-page "https://github.com/cucumber/cucumber-expressions/")
(license license:expat)))
(define-public ruby-cucumber-wire
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 058/223] gnu: Add ruby-bcrypt.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-58-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-bcrypt): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 92b384d646..efdb62e991 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9593,6 +9593,26 @@ (define-public ruby-systemu
(home-page "https://github.com/ahoward/systemu")
(license license:ruby)))
+(define-public ruby-bcrypt
+ (package
+ (name "ruby-bcrypt")
+ (version "3.1.18")
+ ;; FIXME: Unbundle the bcrypt library used.
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "bcrypt" version))
+ (sha256
+ (base32
+ "048z3fvcknqx7ikkhrcrykxlqmf9bzc7l0y5h1cnvrc9n2qf0k8m"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "default")) ;compile + spec
+ (native-inputs (list ruby-rake-compiler ruby-rspec))
+ (synopsis "Ruby bcrypt wrapper")
+ (description "This Ruby library provides a simple wrapper to bcrypt, a
+secure hash algorithm for hashing passwords.")
+ (home-page "https://github.com/bcrypt-ruby/bcrypt-ruby")
+ (license license:expat)))
+
(define-public ruby-bio-commandeer
(package
(name "ruby-bio-commandeer")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 056/223] gnu: ruby-activesupport: Update to 7.0.4.3.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-56-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-activesupport): Move to...
* gnu/packages/rails.scm (ruby-activesupport): ... here.
(%ruby-rails-version, ruby-rails-monorepo): New variables.
(ruby-activesupport): Update to 7.0.4.3.
[arguments]: Use gexps. Add the delete-gemfiles, chdir, check-setup and
delete-problematic-tests phases. Delete check phase override.
[native-inputs]: New field.
[propagated-inputs]: Remove ruby-zeitwerk. Replace ruby-minitest with
ruby-minitest-5.15.
[home-page]: Update URL.
---
gnu/packages/protobuf.scm | 1 +
gnu/packages/rails.scm | 84 +++++++++++++++++++++++++++++++++++++++
gnu/packages/ruby.scm | 33 ---------------
3 files changed, 85 insertions(+), 33 deletions(-)

Toggle diff (164 lines)
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 82c5b7b5f8..a746b7de9c 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -49,6 +49,7 @@ (define-module (gnu packages protobuf)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages rails)
#:use-module (gnu packages ruby)
#:use-module (srfi srfi-1))
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 8f5bda4638..3af90bc913 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,10 +25,93 @@ (define-module (gnu packages rails)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages node)
#:use-module (gnu packages ruby)
#:use-module (guix build-system ruby))
+(define %ruby-rails-version "7.0.4.3")
+
+(define ruby-rails-monorepo
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rails/rails")
+ (commit (string-append "v" %ruby-rails-version))))
+ (file-name (git-file-name "ruby-rails" %ruby-rails-version))
+ (sha256
+ (base32
+ "0f5f8r8wdmdmbyl07b0z555arai4ys2j8dj3fy0mq63y9bfhcqqk"))))
+
+(define-public ruby-activesupport
+ (package
+ (name "ruby-activesupport")
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-gemfiles
+ (lambda _
+ (delete-file "Gemfile")
+ (delete-file "Gemfile.lock")))
+ (add-after 'delete-gemfiles 'chdir
+ (lambda _
+ (chdir "activesupport")))
+ (add-before 'check 'check-setup
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ ;; Multiple tests require to set the timezone.
+ (setenv "TZDIR" (search-input-directory (or native-inputs inputs)
+ "share/zoneinfo"))
+ ;; The test suite requires a memcached and a redis server.
+ (invoke "memcached" "-d")
+ (invoke "redis-server" "--daemonize" "yes")))
+ (add-before 'check 'delete-problematic-tests
+ (lambda _
+ ;; These tests fail non-deterministically.
+ (substitute* "test/cache/behaviors.rb"
+ ((".*behaviors/cache_store_behavior.*")
+ "")
+ ((".*behaviors/encoded_key_cache_behavior.*")
+ ""))
+ (delete-file "test/evented_file_update_checker_test.rb")
+ ;; These tests require cache_store_behavior, disabled above.
+ (delete-file "test/cache/stores/file_store_test.rb")
+ (delete-file "test/cache/stores/mem_cache_store_test.rb")
+ (delete-file "test/cache/stores/memory_store_test.rb")
+ (delete-file "test/cache/stores/redis_cache_store_test.rb"))))))
+ (native-inputs
+ (list memcached
+ redis
+ ruby-builder
+ ruby-connection-pool
+ ruby-dalli
+ ruby-hiredis
+ ruby-libxml
+ ruby-listen
+ ruby-rack
+ ruby-redis
+ ruby-rexml
+ tzdata-for-tests))
+ (propagated-inputs
+ (list ruby-concurrent
+ ruby-i18n
+ ;; This is sub-optimal, but apparently necessary (see:
+ ;; https://github.com/rails/rails/commit/
+ ;; 9766eb4a833c26c64012230b96dd1157ebb8e8a2).
+ ruby-minitest-5.15
+ ruby-tzinfo
+ ruby-tzinfo-data))
+ (synopsis "Ruby on Rails utility library")
+ (description "ActiveSupport is a toolkit of support libraries and Ruby
+core extensions extracted from the Rails framework. It includes support for
+multibyte strings, internationalization, time zones, and testing.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
(define-public ruby-spring
(package
(name "ruby-spring")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 132a06bc57..92b384d646 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6547,39 +6547,6 @@ (define-public ruby-loofah
documents and fragments. It's built on top of Nokogiri and libxml2.")
(license license:expat)))
-(define-public ruby-activesupport
- (package
- (name "ruby-activesupport")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "activesupport" version))
- (sha256
- (base32
- "00a4db64g8w5yyk6hzak2nqrmdfvyh5zc9cvnm9gglwbi87ss28h"))))
- (build-system ruby-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda _
- ;; There are no tests, instead attempt to load the library.
- (invoke "ruby" "-Ilib" "-r" "active_support"))))))
- (propagated-inputs
- (list ruby-concurrent
- ruby-i18n
- ruby-minitest
- ruby-tzinfo
- ruby-tzinfo-data
- ruby-zeitwerk))
- (synopsis "Ruby on Rails utility library")
- (description "ActiveSupport is a toolkit of support libraries and Ruby
-core extensions extracted from the Rails framework. It includes support for
-multibyte strings, internationalization, time zones, and testing.")
- (home-page "https://www.rubyonrails.org")
- (license license:expat)))
-
(define-public ruby-crass
(package
(name "ruby-crass")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 059/223] gnu: ruby-activemodel: Update to 7.0.4.3 and enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-59-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-activemodel): Update to 7.0.4.3. Fix
indentation.
[source]: Use ruby-rails-monorepo.
[arguments]: Remove #:tests? argument. Add #:phases argument.
[native-inputs]: New field.
---
gnu/packages/rails.scm | 42 ++++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 20 deletions(-)

Toggle diff (57 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 9fa0f23ad8..329bacdaef 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -260,28 +260,30 @@ (define-public ruby-autoprefixer-rails
(define-public ruby-activemodel
(package
- (name "ruby-activemodel")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "activemodel" version))
- (sha256
- (base32
- "07m85r00cd1dzxg65zr9wjrdqppw51b5ka9c5mrz92vnw18kfb70"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-activesupport))
- (synopsis "Toolkit for building modeling frameworks like Active Record")
- (description
- "This package provides a toolkit for building modeling frameworks like
+ (name "ruby-activemodel")
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "activemodel")))
+ (add-after 'chdir 'delete-problematic-tests
+ (lambda _
+ ;; We do not want to depend on ruby-railties at this stage.
+ (delete-file "test/cases/railtie_test.rb"))))))
+ (native-inputs (list ruby-bcrypt))
+ (propagated-inputs (list ruby-activesupport))
+ (synopsis "Toolkit for building modeling frameworks like Active Record")
+ (description
+ "This package provides a toolkit for building modeling frameworks like
Active Record. ActiveSupport handles attributes, callbacks, validations,
serialization, internationalization, and testing.")
- (home-page "https://rubyonrails.org/")
- (license license:expat)))
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
(define-public ruby-activerecord
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 060/223] gnu: ruby-activerecord: Update to 7.0.4.3 and enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-60-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-activerecord): Update to 7.0.4.3.
[source]: Use ruby-rails-monorepo.
[arguments]: Remove #:tests? argument. Add #:phases argument.
[native-inputs]: New field.
[propagated-inputs]: Remove ruby-arel. Add ruby-sqlite3.
---
gnu/packages/rails.scm | 55 +++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 20 deletions(-)

Toggle diff (69 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 329bacdaef..4dc9392201 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -287,27 +287,42 @@ (define-public ruby-activemodel
(define-public ruby-activerecord
(package
- (name "ruby-activerecord")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "activerecord" version))
- (sha256
- (base32
- "03kr6vslwd9iw89jidjpjlp7prr2rf7kpsfa4fz03g9by0kliivs"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-activemodel ruby-activesupport ruby-arel))
- (synopsis "Ruby library to connect to relational databases")
- (description
- "Active Record connects classes to relational database table to establish
+ (name "ruby-activerecord")
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "activerecord")))
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Avoid running the database tests, which require railties
+ ;; and/or database servers.
+ (invoke "ruby" "-Itest" "test/cases/base_test.rb"))))
+ (add-before 'check 'set-GEM_PATH
+ (lambda _
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby"))))
+ (add-before 'check 'check-setup
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ ;; A few tests require to set the timezone.
+ (setenv "TZDIR" (search-input-directory (or native-inputs inputs)
+ "share/zoneinfo")))))))
+ (native-inputs (list tzdata-for-tests))
+ (propagated-inputs (list ruby-activemodel ruby-activesupport ruby-sqlite3))
+ (synopsis "Ruby library to connect to relational databases")
+ (description
+ "Active Record connects classes to relational database table to establish
an almost zero-configuration persistence layer for applications.")
- (home-page "https://rubyonrails.org")
- (license license:expat)))
+ (home-page "https://rubyonrails.org")
+ (license license:expat)))
(define-public ruby-rspec-rails
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 066/223] gnu: Add ruby-queue-classic.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-66-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-queue-classic): New variable.
---
gnu/packages/ruby.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 01bc491918..9b680f4ac5 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9853,6 +9853,28 @@ (define-public ruby-que
(home-page "https://github.com/chanks/que")
(license license:expat)))
+(define-public ruby-queue-classic
+ (package
+ (name "ruby-queue-classic")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "queue_classic" version))
+ (sha256
+ (base32
+ "0npyhajf2fc80apkw9s2kj0n254w5lcl4xpjidg5d5w1fb19abh6"))))
+ (build-system ruby-build-system)
+ (arguments (list #:tests? #f)) ;tests require a postgresql server
+ (native-inputs (list ruby-activerecord ruby-minitest-reporters))
+ (propagated-inputs (list ruby-pg))
+ (synopsis "Queuing library for Ruby")
+ (description "@code{queue_classic} is a queuing library for Ruby
+applications (Rails, Sinatra, etc.) @code{queue_classic} features
+asynchronous job polling, database maintained locks and has a single
+dependency, @code{pg}.")
+ (home-page "https://github.com/QueueClassic/queue_classic")
+ (license license:expat)))
+
(define-public ruby-ae
(package
(name "ruby-ae")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 061/223] gnu: Add ruby-simplecov-lcov.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-61-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-simplecov-lcov): New variable.
---
gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index efdb62e991..57a4d52ce4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3459,6 +3459,33 @@ (define-public ruby-simplecov
(home-page "https://github.com/simplecov-ruby/simplecov")
(license license:expat)))
+(define-public ruby-simplecov-lcov
+ (package
+ (name "ruby-simplecov-lcov")
+ (version "0.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "simplecov-lcov" version))
+ (sha256
+ (base32
+ "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581"))))
+ (build-system ruby-build-system)
+ ;; The test suite fails half of its tests; it seems to rely on older
+ ;; versions of simplecov, rspec, possibly others (see:
+ ;; https://github.com/fortissimo1997/simplecov-lcov/issues/29).
+ (arguments (list #:tests? #f
+ #:test-target "spec"))
+ (native-inputs
+ (list ruby-activesupport
+ ruby-coveralls
+ ruby-rspec
+ ruby-simplecov))
+ (synopsis "SimpleCov formatter to generate a lcov style coverage")
+ (description "This package provides a SimpleCov formatter to generate a
+lcov-style coverage report.")
+ (home-page "https://github.com/fortissimo1997/simplecov-lcov")
+ (license license:expat)))
+
(define-public ruby-useragent
(package
(name "ruby-useragent")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 068/223] gnu: Add ruby-xpath.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-68-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-xpath): New variable.
---
gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9b680f4ac5..159de488bc 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2753,6 +2753,30 @@ (define-public ruby-xml-simple
(home-page "https://github.com/maik/xml-simple")
(license license:ruby)))
+(define-public ruby-xpath
+ (package
+ (name "ruby-xpath")
+ (version "3.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "xpath" version))
+ (sha256
+ (base32
+ "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"))))
+ (build-system ruby-build-system)
+ (arguments (list #:phases #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec" "spec" )))))))
+ (native-inputs (list ruby-pry ruby-rspec))
+ (propagated-inputs (list ruby-nokogiri))
+ (synopsis "Ruby DSL for generating XPath expressions")
+ (description "XPath is a Ruby domain-specific language (DSL) for
+generating XPath expressions.")
+ (home-page "https://github.com/teamcapybara/xpath")
+ (license license:expat)))
+
(define-public ruby-thor
(package
(name "ruby-thor")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 070/223] gnu: Add ruby-launchy.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-70-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-launchy): New variable.
---
gnu/packages/ruby.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a90ecc9f6c..b094e0146e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -82,6 +82,7 @@ (define-module (gnu packages ruby)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages web-browsers)
#:use-module (gnu packages serialization)
#:use-module (guix packages)
#:use-module (guix deprecation)
@@ -11778,6 +11779,27 @@ (define-public ruby-mercenary
command-line apps in Ruby.")
(license license:expat)))
+(define-public ruby-launchy
+ (package
+ (name "ruby-launchy")
+ (version "2.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "launchy" version))
+ (sha256
+ (base32
+ "06r43899384das2bkbrpsdxsafyyqa94il7111053idfalb4984a"))))
+ (build-system ruby-build-system)
+ (native-inputs (list curl links ruby-simplecov))
+ (propagated-inputs (list ruby-addressable))
+ (synopsis "Ruby helper class for launching applications")
+ (description
+ "Launchy is helper class for launching applications in a fire and forget
+manner. The aim of Launchy is to provide a common approach to launching
+external applications from within Ruby programs.")
+ (home-page "https://github.com/copiousfreetime/launchy")
+ (license license:isc)))
+
(define-public ruby-liquid
(package
(name "ruby-liquid")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 064/223] gnu: Add ruby-minitest-proveit.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-64-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-minitest-proveit): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d0ea01aa76..b743d24021 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4740,6 +4740,26 @@ (define-public ruby-minitest-pretty-diff
(home-page "https://github.com/adammck/minitest-pretty_diff")
(license license:expat))))
+(define-public ruby-minitest-proveit
+ (package
+ (name "ruby-minitest-proveit")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest-proveit" version))
+ (sha256
+ (base32
+ "0k1hpr8lgkgygfivgcsnnib7xjlf9ribgpn7yidvb4q0l0q2yfmr"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-hoe))
+ (propagated-inputs (list ruby-minitest))
+ (synopsis "Assertion-based tests extension for MiniTest")
+ (description "The @code{minitest-proveit} MiniTest extension ensures all
+tests to prove success (via at least one assertion) rather than rely on the
+absence of failure.")
+ (home-page "https://github.com/seattlerb/minitest-proveit")
+ (license license:expat)))
+
(define-public ruby-minitest-moar
(package
(name "ruby-minitest-moar")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 072/223] gnu: Add ruby-selenium-webdriver.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-72-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-selenium-webdriver): New variable.
---
gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 241f78c684..48defe1dae 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13492,6 +13492,31 @@ (define-public ruby-bandwidth-iris
Dashboard. It is a Ruby Client library for IRIS / BBS API.")
(license license:expat)))
+(define-public ruby-selenium-webdriver
+ (package
+ (name "ruby-selenium-webdriver")
+ (version "4.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "selenium-webdriver" version))
+ (sha256
+ (base32
+ "00nn3k3vk3lpf9691xlij66xdmhydw5df2i8bywiwqzjd52zav9i"))))
+ (build-system ruby-build-system)
+ ;; FIXME: The gem release lacks test files, and the git checkout lacks
+ ;; JavaScript source that is generated using Bazel, which isn't available
+ ;; in Guix yet, so disable the test suite for now.
+ (arguments (list #:tests? #f))
+ (propagated-inputs (list ruby-rexml ruby-rubyzip ruby-websocket))
+ (synopsis "Selenium browser automation bindings for Ruby")
+ (description "Selenium implements the W3C WebDriver protocol to automate
+popular browsers. It aims to mimic the behaviour of a real user as it
+interacts with the application's HTML. It's primarily intended for web
+application testing, but any web-based task can be automated. This package
+provides the Ruby bindings of Selenium.")
+ (home-page "https://www.selenium.dev/")
+ (license license:asl2.0)))
+
(define-public ruby-sentry-core
(package
(name "ruby-sentry-core")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 074/223] gnu: Add ruby-minitest-stub-const.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-74-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-minitest-stub-const): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6858f0f5b0..7cf4d34ebf 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4667,6 +4667,26 @@ (define-public ruby-minitest-sprint
(home-page "https://github.com/seattlerb/minitest-sprint")
(license license:expat)))
+(define-public ruby-minitest-stub-const
+ (package
+ (name "ruby-minitest-stub-const")
+ (version "0.6") ;for Rakefile
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/adammck/minitest-stub-const")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0cz4r9fxplx94c7wakx0998n2gv7l21prn8pfpw6z2c33k3g2xar"))))
+ (build-system ruby-build-system)
+ (synopsis "Stub constants for the duration of a block in MiniTest")
+ (description "This package provides a MiniTest extension to stub constants
+for the duration of a block in MiniTest.")
+ (home-page "https://github.com/adammck/minitest-stub-const")
+ (license license:expat)))
+
(define-public ruby-minitest-bacon
(package
(name "ruby-minitest-bacon")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 075/223] gnu: ruby-rack: Update to 2.2.6.3.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-75-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rack): Update to 2.2.6.3.
[source]: Move snippet to...
[arguments]: ... the fix-test phase. Use gexps and delete trailing #t.
---
gnu/packages/ruby.scm | 68 ++++++++++++++++++++-----------------------
1 file changed, 32 insertions(+), 36 deletions(-)

Toggle diff (89 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7cf4d34ebf..29c4ae8bf8 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7115,50 +7115,46 @@ (define-public ruby-racc
(define-public ruby-rack
(package
(name "ruby-rack")
- (version "2.2.3")
+ ;; Do not upgrade to version 3, as Rails doesn't support it yet.
+ (version "2.2.6.3")
(source
(origin
- (method git-fetch)
- ;; Download from GitHub so that the snippet can be applied and tests run.
+ (method git-fetch) ;for tests
(uri (git-reference
- (url "https://github.com/rack/rack")
- (commit version)))
+ (url "https://github.com/rack/rack")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1qrm5z5v586738bnkr9188dvz0s25nryw6sgvx18jjlkizayw1g4"))
- ;; Ignore test which fails inside the build environment but works
- ;; outside.
- (modules '((guix build utils)))
- (snippet
- '(begin (substitute* "test/spec_files.rb"
- (("res.body.must_equal expected_body") ""))
- #t))))
+ "19n33q0v15qjh7kbp2painyzyqg16kkf0mp68vcnlswghmmjcyzq"))))
(build-system ruby-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'fix-tests
- (lambda _
- ;; A few of the tests use the length of a file on disk for
- ;; Content-Length and Content-Range headers. However, this file
- ;; has a shebang in it which an earlier phase patches, growing
- ;; the file size from 193 to 239 bytes when the store prefix is
- ;; "/gnu/store".
- (let ((size-diff (- (string-length (which "ruby"))
- (string-length "/usr/bin/env ruby"))))
- (substitute* '("test/spec_files.rb")
- (("208" bytes)
- (number->string (+ (string->number bytes) size-diff)))
- (("bytes(.)22-33" all delimiter)
- (string-append "bytes"
- delimiter
- (number->string (+ 22 size-diff))
- "-"
- (number->string (+ 33 size-diff))))))
- #t)))))
- (native-inputs
- (list ruby-minitest ruby-minitest-global-expectations))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'fix-tests
+ (lambda _
+ ;; This test fails in the build environment (and passes outside
+ ;; of it).
+ (substitute* "test/spec_files.rb"
+ (("res.body.must_equal expected_body") ""))
+ ;; A few of the tests use the length of a file on disk for
+ ;; Content-Length and Content-Range headers. However, this file
+ ;; has a shebang in it which an earlier phase patches, growing
+ ;; the file size from 193 to 239 bytes when the store prefix is
+ ;; "/gnu/store".
+ (let ((size-diff (- (string-length (which "ruby"))
+ (string-length "/usr/bin/env ruby"))))
+ (substitute* '("test/spec_files.rb")
+ (("208" bytes)
+ (number->string (+ (string->number bytes) size-diff)))
+ (("bytes(.)22-33" all delimiter)
+ (string-append "bytes"
+ delimiter
+ (number->string (+ 22 size-diff))
+ "-"
+ (number->string (+ 33 size-diff)))))))))))
+ (native-inputs (list ruby-minitest ruby-minitest-global-expectations))
(synopsis "Unified web application interface for Ruby")
(description "Rack provides a minimal, modular and adaptable interface for
developing web applications in Ruby. By wrapping HTTP requests and responses,
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 071/223] gnu: Add ruby-websocket.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-71-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-websocket): New variable.
---
gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b094e0146e..241f78c684 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13556,6 +13556,31 @@ (define-public ruby-webrick
HTTPS server, a proxy server, and a virtual-host server.")
(license license:bsd-2)))
+(define-public ruby-websocket
+ (package
+ (name "ruby-websocket")
+ (version "1.2.9")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket" version))
+ (sha256
+ (base32
+ "0dib6p55sl606qb4vpwrvj5wh881kk4aqn2zpfapf8ckx7g14jw8"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask.new") "")))))))
+ (native-inputs (list ruby-rspec))
+ (synopsis "WebSocket protocol Ruby library")
+ (description "This package provides a Ruby library to handle the WebSocket
+protocol.")
+ (home-page "https://github.com/imanel/websocket-ruby")
+ (license license:expat)))
+
(define-public ruby-interception
(package
(name "ruby-interception")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 079/223] gnu: ruby-rack-test: Update to 2.1.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-79-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rack-test): Update to 2.1.0.
---
gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index bda6e3f363..dbe9a5ff97 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7206,14 +7206,14 @@ (define-public ruby-rack-cache
(define-public ruby-rack-test
(package
(name "ruby-rack-test")
- (version "0.8.3")
+ (version "2.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "rack-test" version))
(sha256
(base32
- "14ij39zywvr1i9f6jsixfg4zxi2q1m1n1nydvf47f0b6sfc9mv1g"))))
+ "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"))))
(build-system ruby-build-system)
(arguments
;; Disable tests because of circular dependencies: requires sinatra,
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 120/223] gnu: Add ruby-samovar.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-19-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-samovar): New variable.
---

gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a9922e1f3c..1db758ea97 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6881,6 +6881,30 @@ (define-public ruby-crass
(define-public ruby-nokogumbo
(deprecated-package "ruby-nokogumbo" ruby-nokogiri))
+(define-public ruby-samovar
+ (package
+ (name "ruby-samovar")
+ (version "2.1.4")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ioquatix/samovar")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05pc5xlbv44anx0sfqssh0xhxg297bvl5slsl7k1vnka4k5fhax6"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-covered ruby-rspec))
+ (propagated-inputs (list ruby-console ruby-mapping))
+ (synopsis "Flexible option parser for Ruby")
+ (description "Samovar is a modern framework for building command-line
+tools and applications. It provides a declarative class-based DSL for
+building command-line parsers that include automatic documentation generation.
+It helps you keep your functionality clean and isolated where possible.")
+ (home-page "https://github.com/ioquatix/samovar")
+ (license license:expat)))
+
(define-public ruby-sanitize
(package
(name "ruby-sanitize")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 115/223] gnu: Add ruby-fiber-local.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-14-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-fiber-local): New variable.
---

gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6ac419edd6..abb3947c6e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3718,6 +3718,43 @@ (define-public ruby-fast-gettext
;; Some parts are covered by the Ruby license, see file headers.
(license (list license:expat license:ruby))))
+(define-public ruby-fiber-local
+ (package
+ (name "ruby-fiber-local")
+ (version "1.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/socketry/fiber-local")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0pp5b81h0lysdnphgprkixh1az0fkrgir5sbcp0mm8arxf3f8m90"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'sanitize-dependencies
+ (lambda _
+ ;; This pulls in extraneous maintenance dependencies.
+ (delete-file "gems.rb")
+ ;; Depending on ruby-covered would introduce a dependency
+ ;; cycle with it.
+ (substitute* '("fiber-local.gemspec" "spec/spec_helper.rb")
+ ((".*covered.*") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (native-inputs (list ruby-rspec))
+ (synopsis "Ruby module to simplify fiber-local state management")
+ (description "This package provides a class-level mixin to make managing
+fiber-local state easy. It provides easy access to a fiber-local state from a
+fiber, and defaults to a shared thread-local state.")
+ (home-page "https://github.com/socketry/fiber-local")
+ (license license:expat)))
+
(define-public ruby-net-http-persistent
(package
(name "ruby-net-http-persistent")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 121/223] gnu: Add ruby-io-console.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-20-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-io-console): New variable.
---

gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1db758ea97..ee39e509ec 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -513,6 +513,33 @@ (define-public ruby-i18n
(home-page "https://github.com/ruby-i18n/i18n")
(license license:expat)))
+(define-public ruby-io-console
+ (package
+ (name "ruby-io-console")
+ (version "0.6.0")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/io-console/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gwxrp29b6awkid1sf85sbh529mnq6hb86m8c2443cm6nc4vr8qb"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-rakelib-files
+ (lambda _
+ ;; These depend on git and other extraneous
+ ;; dependencies, and are loaded by rake.
+ (delete-file-recursively "rakelib"))))))
+ (native-inputs (list ruby-rake-compiler))
+ (synopsis "Console capabilities library for IO instances")
+ (description "IO.console adds console capabilities to Ruby IO instances.")
+ (home-page "https://github.com/ruby/io-console")
+ (license license:bsd-2)))
+
(define-public ruby-iruby
(package
(name "ruby-iruby")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 116/223] gnu: Add ruby-console.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-15-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-console): New variable.
---

gnu/packages/ruby.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index abb3947c6e..d2377a8d2c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2173,6 +2173,34 @@ (define-public ruby-ci-reporter
(home-page "https://github.com/nicksieger/ci_reporter")
(license license:expat)))
+(define-public ruby-console
+ (package
+ (name "ruby-console")
+ (version "1.16.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "console" version))
+ (sha256
+ (base32
+ "0y1bv3kd1l9p0k5n3anvvjxdrcq113pyngz2g29i9mvdgbbx7kq2"))))
+ (build-system ruby-build-system)
+ ;; XXX: Disable test suite to avoid dependency cycles with ruby-samovar.
+ (arguments (list #:tests? #f))
+ (propagated-inputs (list ruby-fiber-local))
+ (synopsis "Console logging library for Ruby")
+ (description "This gem provides beautiful console logging for Ruby
+applications. It implements fast, buffered log output and has the following
+features:
+@itemize
+@item Thread safe global logger with per-fiber context
+@item Carry along context with nested loggers
+@item Enable/disable log levels per class
+@item Detailed logging of exceptions
+@item Beautiful logging to the terminal or structured logging using JSON.
+@end itemize")
+ (home-page "https://github.com/socketry/console")
+ (license license:expat)))
+
(define-public ruby-contracts
(package
(name "ruby-contracts")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 123/223] gnu: Add ruby-irb.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-22-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-irb): New variable.
---

gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b3196781d0..29bdd367c5 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -540,6 +540,27 @@ (define-public ruby-io-console
(home-page "https://github.com/ruby/io-console")
(license license:bsd-2)))
+(define-public ruby-irb
+ (package
+ (name "ruby-irb")
+ (version "1.6.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "irb" version))
+ (sha256
+ (base32
+ "1h9s07n5v3z029v18924ws9vdkdc80n6llp9ccx77yg1krv2g0f3"))))
+ (build-system ruby-build-system)
+ ;; XXX: Disable the test suite, as it requires debug, which requires this
+ ;; package (dependency cycle).
+ (arguments (list #:tests? #f))
+ (propagated-inputs (list ruby-reline))
+ (synopsis "Ruby command-line tool for REPL (Read Eval Print Loop)")
+ (description "IRB is an interactive Ruby command-line tool for REPL (Read
+Eval Print Loop).")
+ (home-page "https://github.com/ruby/irb")
+ (license license:bsd-2)))
+
(define-public ruby-iruby
(package
(name "ruby-iruby")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 117/223] gnu: Add ruby-ruby-memcheck.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-16-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-ruby-memcheck): New variable.
---

gnu/packages/ruby.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d2377a8d2c..18e1ee36bb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -82,6 +82,7 @@ (define-module (gnu packages ruby)
#:use-module (gnu packages rsync)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web-browsers)
#:use-module (gnu packages serialization)
@@ -8268,6 +8269,46 @@ (define-public ruby-ruby-prof
(home-page "https://github.com/ruby-prof/ruby-prof")
(license license:bsd-2)))
+(define-public ruby-ruby-memcheck
+ (package
+ (name "ruby-ruby-memcheck")
+ (version "1.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shopify/ruby_memcheck")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1sx8nhx7w4z5s5vj6kq6caqsfznswqzwca372j82cd80hf9iznra"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-valgrind-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/ruby_memcheck/configuration.rb"
+ (("DEFAULT_VALGRIND = \"valgrind\"")
+ (format #f "DEFAULT_VALGRIND = ~s"
+ (search-input-file inputs "bin/valgrind"))))))
+ (add-before 'replace-git-ls-files 'standardize-git-ls-files
+ (lambda _
+ (substitute* "ruby_memcheck.gemspec"
+ (("%x\\(git ls-files -z)")
+ "`git ls-files -z`")))))))
+ (native-inputs (list ruby-rake-compiler ruby-rspec))
+ (inputs (list valgrind/interactive))
+ (propagated-inputs (list ruby-nokogiri))
+ (synopsis "Valgrind memcheck tool for Ruby")
+ (description "The @code{ruby_memcheck} gem provides a sane way to use
+Valgrind's memcheck on your native extension gem, that filters out all the
+false positives caused by Ruby not freeing all of the memory it allocates
+during shutdown.")
+ (home-page "https://github.com/Shopify/ruby_memcheck")
+ (license license:expat)))
+
(define-public ruby-memory-profiler
(package
(name "ruby-memory-profiler")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 118/223] gnu: Add ruby-msgpack.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-17-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-msgpack): New variable.
---

gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 18e1ee36bb..db4e88ca05 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4153,6 +4153,33 @@ (define-public ruby-mkmf-lite
(home-page "https://github.com/djberg96/mkmf-lite")
(license license:asl2.0)))
+(define-public ruby-msgpack
+ (package
+ (name "ruby-msgpack")
+ (version "1.6.1")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/msgpack/msgpack-ruby")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08wi853nv02clrdwx8s6dg9lmcyzq5fk84l4rb94pglps76rlvz7"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "spec"))
+ (native-inputs
+ (list ruby-rake-compiler
+ ruby-ruby-memcheck
+ ruby-rspec
+ ruby-yard))
+ (synopsis "Efficient object serialization library for Ruby")
+ (description "MessagePack is a binary-based efficient object serialization
+library. It enables to exchange structured objects between many languages
+like JSON. Unlike JSON, it is very fast and small.")
+ (home-page "https://msgpack.org/")
+ (license license:asl2.0)))
+
(define-public ruby-mspec
(package
(name "ruby-mspec")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 122/223] gnu: Add ruby-reline.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-21-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-reline): New variable.
---

gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ee39e509ec..b3196781d0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4533,6 +4533,27 @@ (define-public ruby-redcarpet
(home-page "https://github.com/vmg/redcarpet")
(license license:expat)))
+(define-public ruby-reline
+ (package
+ (name "ruby-reline")
+ (version "0.3.2")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/reline")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "103rz95gnra846r9118k5bfascv00ywfjnhbmw1k42jpp6jpszqn"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-io-console))
+ (synopsis "GNU Readline or Editline implementation in Ruby")
+ (description "Reline is a pure Ruby alternative GNU Readline or Editline
+implementation.")
+ (home-page "https://github.com/ruby/reline")
+ (license (list license:bsd-2 license:ruby)))) ;dual license
+
(define-public ruby-rerun
(package
(name "ruby-rerun")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 129/223] gnu: Add ruby-sus.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-28-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-sus): New variable.
---

gnu/packages/ruby.scm | 51 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (64 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 51d35868c2..d63afbad2c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12858,6 +12858,57 @@ (define-public ruby-subprocess
(home-page "https://github.com/stripe/subprocess")
(license license:expat)))
+(define-public ruby-sus
+ (package
+ (name "ruby-sus")
+ (version "0.20.3")
+ (source (origin
+ (method git-fetch) ;for gems.rb
+ (uri (git-reference
+ (url "https://github.com/ioquatix/sus")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0j4rkh9li79674h3lfkxlcdygscmb22l77i7hwhxl3gw103gkpdr"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'prune-gems.rb
+ (lambda _
+ (substitute* "gems.rb"
+ (("gem \"bake-modernize\"") "")
+ (("gem \"bake-gem\"") "")
+ (("gem \"utopia-project\"") ""))))
+ (add-before 'build 'remove-missing-signing-key
+ (lambda _
+ ;; Otherwise, the build fails with ENOENT.
+ (substitute* "sus.gemspec"
+ ((".*spec.signing_key.*") ""))))
+ (delete 'check) ;moved after install
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "CONSOLE_LEVEL" "debug")
+ (setenv "HOME" "/tmp")
+ ;; 'bundle exec' must be used to workaround a problem
+ ;; when using bake test and GEM_PATH (see:
+ ;; https://github.com/ioquatix/bake/issues/11).
+ (invoke "bundle" "exec" "bake" "test"))))
+ (add-before 'check 'set-paths
+ (lambda _
+ (setenv "PATH" (string-append (getenv "PATH") ":"
+ #$output "/bin"))
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby")))))))
+ (native-inputs (list ruby-bake-test ruby-bake-test-external ruby-covered))
+ (synopsis "Fast and scalable test runner for Ruby")
+ (description "This package provides a fast and scalable test runner for Ruby.")
+ (home-page "https://github.com/ioquatix/sus")
+ (license license:expat)))
+
(define-public ruby-syntax-tree
(package
(name "ruby-syntax-tree")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 130/223] gnu: Add ruby-timers.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-29-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-timers): New variable.
---

gnu/packages/ruby.scm | 46 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)

Toggle diff (59 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d63afbad2c..7fa86de56b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6370,6 +6370,52 @@ (define-public ruby-spinach
define executable specifications of your code.")
(license license:expat)))
+(define-public ruby-timers
+ (package
+ (name "ruby-timers")
+ (version "4.3.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/socketry/timers")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vvahlhk6i1xks1bsha6s64pjjxhagmzvvf1q9h6z3lpcba43rpx"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'prune-gems.rb
+ (lambda _
+ (substitute* "gems.rb"
+ ;; These are only required for maintenance.
+ ((".*gem \"bake-modernize\".*") "")
+ ((".*gem \"bake-gem\".*") "")
+ ;; Not actually required by the tests.
+ ((".*gem 'benchmark-ips'.*") "")
+ ((".*gem \"ruby-prof\".*") ""))))
+ (add-before 'build 'remove-missing-signing-key
+ (lambda _
+ ;; Otherwise, the build fails with ENOENT.
+ (substitute* "timers.gemspec"
+ ((".*spec.signing_key.*") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bake" "test")))))))
+ (native-inputs
+ (list ruby-covered
+ ruby-bake-test
+ ruby-bake-test-external
+ ruby-sus))
+ (synopsis "Collection of Ruby timer classes")
+ (description "Timers offers a collections of one-shot and periodic timers,
+intended for use with event loops such as async.")
+ (home-page "https://github.com/socketry/timers")
+ (license license:expat)))
+
(define-public ruby-tilt
(package
(name "ruby-tilt")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 078/223] gnu: Add ruby-rack-cache.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-78-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rack-cache): New variable.
---
gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 77cae8d78a..bda6e3f363 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7179,6 +7179,30 @@ (define-public ruby-rack-next
"0msf14655nfcq1kgmib6932lgzm9nw3nb0m3c7nh6nj4sx30yxfr"))))
(arguments '())))
+(define-public ruby-rack-cache
+ (package
+ (name "ruby-rack-cache")
+ (version "1.13.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rack-cache" version))
+ (sha256
+ (base32
+ "1cqpax628h2mhnsjfg91c3klxwx2pkvaj061cisb0saqa99b0jgm"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ ;; The test suite depends on ruby-memcached, which is not available in
+ ;; Guix and bundles a very dated copy of memcached (undesirable).
+ #:tests? #f))
+ (propagated-inputs (list ruby-rack))
+ (synopsis "Component to enable HTTP caching for Rack-based applications")
+ (description "Rack::Cache is suitable as a drop-in component to enable
+HTTP caching for Rack-based applications that produce freshness (Expires,
+Cache-Control) and/or validation (Last-Modified, ETag) information.")
+ (home-page "https://github.com/rtomayko/rack-cache")
+ (license license:expat)))
+
(define-public ruby-rack-test
(package
(name "ruby-rack-test")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 127/223] gnu: Add ruby-bake-test.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-26-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-bake-test): New variable.
---

gnu/packages/ruby.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4e687e7c20..30b117c77f 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3792,6 +3792,28 @@ (define-public ruby-bake
(home-page "https://github.com/ioquatix/bake")
(license license:expat)))
+(define-public ruby-bake-test
+ (package
+ (name "ruby-bake-test")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "bake-test" version))
+ (sha256
+ (base32
+ "1p6kfpncj0s4zyynrrq6c735jvh0dnwyv7kfqym4rpyka4f85qdp"))))
+ (build-system ruby-build-system)
+ ;; XXX: Disable the test suite to avoid a circular dependency with
+ ;; ruby-sus.
+ (arguments (list #:tests? #f))
+ (propagated-inputs (list ruby-bake))
+ (synopsis "Test suite automatic runner for Ruby")
+ (description "@command{bake-test} automatically discovers how to run local
+test suites for Ruby projects. It supports @command{rspec}, @command{sus}, as
+well as @samp{rake}.")
+ (home-page "https://github.com/ioquatix/bake-test")
+ (license license:expat)))
+
(define-public ruby-connection-pool
(package
(name "ruby-connection-pool")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 134/223] gnu: Add ruby-capybara.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-33-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-capybara): New variable.
---

gnu/packages/ruby.scm | 48 +++++++++++++++++++++++++++++++++++++++++--
1 file changed, 46 insertions(+), 2 deletions(-)

Toggle diff (68 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 13d299fd3c..97ed984811 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1664,8 +1664,7 @@ (define-public ruby-rubocop-capybara
(package
(inherit ruby-rubocop-capybara-minimal)
(arguments
- (list #:tests? #t
- #:test-target "spec"
+ (list #:test-target "spec"
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
@@ -11997,6 +11996,51 @@ (define-public ruby-cabin
(home-page "https://github.com/jordansissel/ruby-cabin")
(license license:asl2.0)))
+(define-public ruby-capybara
+ (package
+ (name "ruby-capybara")
+ (version "3.38.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "capybara" version))
+ (sha256
+ (base32
+ "123198zk2ak8mziwa5jc3ckgpmsg08zn064n3aywnqm9s1bwjv3v"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:tests? #f ;sinatra is currently broken with rack 3
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'remove-extraneous-requirements
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ ((".*require 'selenium_statistics'.*") "")
+ ((".*SeleniumStatistics.print_results.*") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec" "spec")))))))
+ (native-inputs
+ (list ruby-puma
+ ruby-rspec
+ ruby-selenium-webdriver
+ ruby-sinatra))
+ (propagated-inputs
+ (list ruby-addressable
+ ruby-launchy
+ ruby-matrix
+ ruby-mini-mime
+ ruby-nokogiri
+ ruby-rack
+ ruby-rack-test
+ ruby-regexp-parser
+ ruby-xpath))
+ (synopsis "Integration testing tool for rack-based web applications")
+ (description "Capybara is an integration testing tool for rack based web
+applications. It simulates how a user would interact with a website.")
+ (home-page "https://github.com/teamcapybara/capybara")
+ (license license:expat)))
+
(define-public ruby-cane
(package
(name "ruby-cane")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 135/223] gnu: Add ruby-rack-session.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-34-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rack-session): New variable.
---

gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 97ed984811..965980a783 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7708,6 +7708,33 @@ (define-public ruby-rack-test
(home-page "https://github.com/rack/rack-test")
(license license:expat)))
+(define-public ruby-rack-session
+ (package
+ (name "ruby-rack-session")
+ ;; Stay on version 1 until all the rack users such as Rails can use rack 3
+ ;; (rack-session 2 requires rack 3).
+ (version "1.0.1")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/rack/rack-session")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0rv955wd7ckp5jgy5c229wmajh48jpcy8s0iv5i8ma61wf7qw0i1"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ (list ruby-minitest-global-expectations
+ ruby-minitest-sprint))
+ (propagated-inputs
+ (list ruby-rack))
+ (synopsis "Session management for Rack")
+ (description "This package provides a session management implementation
+for Rack.")
+ (home-page "https://github.com/rack/rack-session")
+ (license license:expat)))
+
(define-public ruby-rack-protection
(package
(name "ruby-rack-protection")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 136/223] gnu: ruby-rubyzip: Update to 2.3.2.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-35-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rubyzip): Update to 2.3.2.
[arguments]: Streamline patch-tests phase. Add disable-rubocop and
disable-problematic-tests phases.
---

gnu/packages/ruby.scm | 82 ++++++++++++++++++++++++++++---------------
1 file changed, 53 insertions(+), 29 deletions(-)

Toggle diff (95 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 965980a783..0e1fc0d3d5 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3515,35 +3515,59 @@ (define-public ruby-rubygems-tasks
(define-public ruby-rubyzip
(package
- (name "ruby-rubyzip")
- (version "1.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "rubyzip" version))
- (sha256
- (base32
- "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz"))))
- (build-system ruby-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'patch-tests
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "test/gentestfiles.rb"
- (("/usr/bin/zip")
- (string-append
- (assoc-ref inputs "zip") "/bin/zip")))
- (substitute* "test/input_stream_test.rb"
- (("/usr/bin/env ruby") (which "ruby")))
- #t)))))
- (native-inputs
- (list bundler ruby-simplecov zip unzip))
- (synopsis "Ruby module is for reading and writing zip files")
- (description
- "The rubyzip module provides ways to read from and create zip files.")
- (home-page "https://github.com/rubyzip/rubyzip")
- (license license:bsd-2)))
+ (name "ruby-rubyzip")
+ (version "2.3.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rubyzip/rubyzip")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03p8c990n6c1r4g64w0vv7z2iaswisl07l2f1lbh1s78cvmlmfxx"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask.new") ""))))
+ (add-before 'check 'patch-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "test/gentestfiles.rb"
+ (("/usr/bin/zip") (which "zip")))
+ (substitute* "test/input_stream_test.rb"
+ (("/usr/bin/env ruby") (which "ruby")))))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (let-syntax ((skip-tests
+ (syntax-rules ()
+ ((_ file test ...)
+ (substitute* file
+ (((string-append "def " test ".*") all)
+ (string-append
+ all " skip('fails on guix')\n")) ...)))))
+ ;; The test failures were reported here:
+ ;; https://github.com/rubyzip/rubyzip/issues/552.
+ (skip-tests "test/stored_support_test.rb"
+ "test_read")
+ (skip-tests "test/stored_support_test.rb"
+ "test_encrypted_read")
+ (skip-tests "test/output_stream_test.rb"
+ "test_put_next_entry_using_zip_entry_creates_\
+entries_with_correct_timestamps")
+ (skip-tests "test/file_options_test.rb"
+ "test_restore_times_true")))))))
+ (native-inputs
+ (list bundler ruby-simplecov zip unzip))
+ (synopsis "Ruby module is for reading and writing zip files")
+ (description
+ "The rubyzip module provides ways to read from and create zip files.")
+ (home-page "https://github.com/rubyzip/rubyzip")
+ (license license:bsd-2)))
(define-public ruby-simplecov-html
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 138/223] gnu: Add ruby-event-emitter.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-37-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-event-emitter): New variable.
---

gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0e1fc0d3d5..612dc452eb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9552,6 +9552,29 @@ (define-public ruby-pygmentize
(home-page "https://github.com/djanowski/pygmentize")
(license license:expat)))
+(define-public ruby-event-emitter
+ (package
+ (name "ruby-event-emitter")
+ (version "0.2.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "event_emitter" version))
+ (sha256
+ (base32
+ "148k9qv8102l3m6klc24dwip79f9y4bjr5z19dckd7ffbjyrf9n7"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (substitute* "event_emitter.gemspec"
+ (("~> 1.15") ">= 1.15")))))))
+ (synopsis "Ruby port of EventEmitter from Node.js")
+ (description
+ "This package provides a Ruby port of EventEmitter from Node.js.")
+ (home-page "https://shokai.github.io/event_emitter/")
+ (license license:expat)))
+
(define-public ruby-eventmachine
(package
(name "ruby-eventmachine")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 137/223] gnu: ruby-actionpack: Update to 7.0.4.3 and enable test suite.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-36-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-actionpack): Update to 7.0.4.3.
[source]: Use ruby-rails-monorepo.
[arguments]: Delete #:tests? argument. Add #:phases argument.
[native-inputs]: New field.
[propagated-inputs]: Add ruby-rack-cache and ruby-rack-session.
---

gnu/packages/rails.scm | 106 +++++++++++++++++++++++++++++++----------
1 file changed, 81 insertions(+), 25 deletions(-)

Toggle diff (120 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index bff4e09264..d3712a93c9 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -468,32 +468,88 @@ (define-public ruby-actionview
(define-public ruby-actionpack
(package
- (name "ruby-actionpack")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "actionpack" version))
- (sha256
- (base32
- "030yyaskzlic5cp4d9zbwwr3rhf4k6hsls44a7ihsfd6r8mlivq5"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-actionview
- ruby-activesupport
- ruby-rack
- ruby-rack-test
- ruby-rails-dom-testing
- ruby-rails-html-sanitizer))
- (synopsis "Conventions for building and testing MVC web applications")
- (description
- "ActionPack provides conventions for building and testing MVC web
+ (name "ruby-actionpack")
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "actionpack")))
+ (add-before 'check 'delete-problematic-tests
+ (lambda _
+ (let-syntax ((skip-tests
+ (syntax-rules ()
+ ((_ file test ...)
+ (substitute* file
+ ;; ActiveSupport test case.
+ (((string-append "test \"" test "\".*") all)
+ (string-append
+ all " skip 'fails on guix'\n")) ...
+ ;; MiniTest test case.
+ (((string-append "def " test ".*") all)
+ (string-append
+ all " skip('fails on guix')\n")) ...)))))
+
+ (with-directory-excursion "test"
+ (for-each delete-file
+ ;; These tests depend on rails, which depends on
+ ;; this package.
+ '("dispatch/mount_test.rb"
+ "dispatch/prefix_generation_test.rb"
+ "dispatch/routing_assertions_test.rb"
+ "dispatch/routing/inspector_test.rb"
+ "controller/live_stream_test.rb"
+ "controller/integration_test.rb"
+ "controller/test_case_test.rb"))
+
+ ;; The following test failures have been reported upstream
+ ;; (see: https://github.com/rails/rails/issues/47615).
+ (skip-tests "controller/new_base/render_streaming_test.rb"
+ ;; These tests fail due to white space
+ ;; characters in the compared strings.
+ "rendering with streaming no layout"
+ "rendering with streaming enabled at the \
+class level"
+ "rendering with streaming given to render"
+ "rendering with layout exception"
+ "rendering with template exception"
+ "rendering with streaming do not override \
+explicit cache control given to render")
+
+ (skip-tests "dispatch/system_testing/driver_test.rb"
+ ;; These tests require Firefox.
+ "define extra capabilities using headless_firefox"
+ "define extra capabilities using firefox")
+
+ (skip-tests "dispatch/session/cache_store_test.rb"
+ ;; This test fails with: "NoMethodError:
+ ;; undefined method `hash_for' for
+ ;; #<Rack::Test::CookieJar:0x0000000003572170>".
+ "test_getting_session_value_after_session_reset"))))))))
+ (native-inputs
+ (list ruby-activemodel
+ ruby-capybara
+ ruby-selenium-webdriver
+ ruby-zeitwerk))
+ (propagated-inputs
+ (list ruby-actionview
+ ruby-activesupport
+ ruby-rack
+ ruby-rack-cache
+ ruby-rack-session
+ ruby-rack-test
+ ruby-rails-dom-testing
+ ruby-rails-html-sanitizer))
+ (synopsis "Conventions for building and testing MVC web applications")
+ (description
+ "ActionPack provides conventions for building and testing MVC web
applications. These work with any Rack-compatible server.")
- (home-page "https://rubyonrails.org/")
- (license license:expat)))
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
(define-public ruby-actioncable
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 139/223] gnu: Add ruby-websocket-native.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-38-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-websocket-native): New variable.
---

gnu/packages/ruby.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 612dc452eb..a78c7462a1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10169,6 +10169,35 @@ (define-public ruby_version
(home-page "https://github.com/janlelis/ruby_version")
(license license:expat)))
+(define-public ruby-websocket-native
+ (package
+ (name "ruby-websocket-native")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket-native" version))
+ (sha256
+ (base32
+ "1kgvd3gyzh7hk0ddzn85jrs4csxm54qnvla95ldyn6rzgfbjchdn"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (substitute* "spec/websocket_spec.rb"
+ (("it \"should have mask_native defined\"" all)
+ (string-append "x" all)))))
+ (add-after 'build 'compile
+ (lambda _
+ (invoke "rake" "compile"))))))
+ (native-inputs (list ruby-rake-compiler ruby-rspec))
+ (synopsis "Native Ruby extension for the WebSocket gem")
+ (description "This package provides a native extension that can increase
+performance by about 25% compared to the pure Ruby WebSocket implementation.")
+ (home-page "https://github.com/imanel/websocket-ruby-native")
+ (license license:expat)))
+
(define-public ruby-websocket-driver
(package
(name "ruby-websocket-driver")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 140/223] gnu: Add ruby-websocket-eventmachine-base.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-39-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-websocket-eventmachine-base): New variable.
---

gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a78c7462a1..83176a134e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10169,6 +10169,27 @@ (define-public ruby_version
(home-page "https://github.com/janlelis/ruby_version")
(license license:expat)))
+(define-public ruby-websocket-eventmachine-base
+ (package
+ (name "ruby-websocket-eventmachine-base")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket-eventmachine-base" version))
+ (sha256
+ (base32
+ "0wiz61mcwgs3k21cdr5l9b4jpg29gl6mflfampww2v525yc3hr1r"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:tests? #f)) ;no test suite
+ (propagated-inputs (list ruby-eventmachine ruby-websocket
+ ruby-websocket-native))
+ (synopsis "WebSocket base for Ruby client and server")
+ (description "This package provides a WebSocket base for a Ruby client and
+server.")
+ (home-page "https://github.com/imanel/websocket-eventmachine-base")
+ (license license:expat)))
+
(define-public ruby-websocket-native
(package
(name "ruby-websocket-native")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 141/223] gnu: Add ruby-websocket-eventmachine-server.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-40-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-websocket-eventmachine-server): New variable.
---

gnu/packages/ruby.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 83176a134e..aa1b5a22c0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10190,6 +10190,25 @@ (define-public ruby-websocket-eventmachine-base
(home-page "https://github.com/imanel/websocket-eventmachine-base")
(license license:expat)))
+(define-public ruby-websocket-eventmachine-server
+ (package
+ (name "ruby-websocket-eventmachine-server")
+ (version "1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket-eventmachine-server" version))
+ (sha256
+ (base32
+ "0iqpzc8s028nck1flqaj784gvyn64wy1h3svpa4y2847wklg8sms"))))
+ (build-system ruby-build-system)
+ ;; TODO: The test suite requires Autobahn, not yet packaged in Guix.
+ (arguments (list #:tests? #f))
+ (propagated-inputs (list ruby-websocket-eventmachine-base))
+ (synopsis "WebSocket server for Ruby")
+ (description "This package provides a WebSocket server for Ruby.")
+ (home-page "https://github.com/imanel/websocket-eventmachine-server")
+ (license license:expat)))
+
(define-public ruby-websocket-native
(package
(name "ruby-websocket-native")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 142/223] gnu: Add ruby-websocket-client-simple.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-41-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-websocket-client-simple): New variable.
---

gnu/packages/ruby.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index aa1b5a22c0..2ce20d24d2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10169,6 +10169,25 @@ (define-public ruby_version
(home-page "https://github.com/janlelis/ruby_version")
(license license:expat)))
+(define-public ruby-websocket-client-simple
+ (package
+ (name "ruby-websocket-client-simple")
+ (version "0.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket-client-simple" version))
+ (sha256
+ (base32
+ "1ypl4xvlh5c99zbn20sifv7gv04zi20ly464vsgikfrpn5f37bid"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "default"))
+ (native-inputs (list ruby-eventmachine ruby-websocket-eventmachine-server))
+ (propagated-inputs (list ruby-event-emitter ruby-websocket))
+ (synopsis "Simple WebSocket client for Ruby")
+ (description "This package provides a simple WebSocket client for Ruby.")
+ (home-page "https://github.com/ruby-jp/websocket-client-simple")
+ (license license:expat)))
+
(define-public ruby-websocket-eventmachine-base
(package
(name "ruby-websocket-eventmachine-base")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 147/223] gnu: ruby-marcel: Enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-46-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-marcel) [source]: Fetch from git.
[arguments]: Drop #:tests?. Add #:phases.
[native-inputs]: New field.
---

gnu/packages/rails.scm | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 9638aee3ae..540c69ec2f 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -730,19 +730,30 @@ (define-public ruby-marcel
(package
(name "ruby-marcel")
(version "1.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "marcel" version))
- (sha256
- (base32
- "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"))))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rails/marcel")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1i1x24afmn09n48fj4yz2pdm6vlfnq14gism0cgxsyqmlrvsxajn"))))
(build-system ruby-build-system)
(arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-mimemagic))
+ (list #:test-target "default"
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (substitute* "test/mime_type_test.rb"
+ ;; One test fails because of the newer rack
+ ;; version used (see:
+ ;; https://github.com/rails/marcel/issues/91).
+ (("test \"gets content type.*" all)
+ (string-append
+ all " skip('fails on guix')\n"))))))))
+ (native-inputs (list ruby-byebug ruby-nokogiri ruby-rack))
+ (propagated-inputs (list ruby-mimemagic))
(synopsis "MIME type detection using magic numbers, filenames and extensions")
(description
"@code{marcel} provides @acronym{MIME, Multipurpose Internet Mail
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 048/223] gnu: Add ruby-cucumber-ci-environment.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-48-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber-ci-environment): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 403c3d0520..d022151451 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8233,6 +8233,29 @@ (define-public ruby-cucumber-html-formatter
(home-page "https://github.com/cucumber/html-formatter")
(license license:expat)))
+(define-public ruby-cucumber-ci-environment
+ (package
+ (name "ruby-cucumber-ci-environment")
+ (version "9.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "cucumber-ci-environment" version))
+ (sha256
+ (base32
+ "1nmn2hfrjlbazgcryr3hwvsa5v4csfbjqxb4q7wbjhaxl9xxn0k7"))))
+ (build-system ruby-build-system)
+ (arguments (list #:phases #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (native-inputs (list ruby-rspec))
+ (synopsis "Detect CI Environment from environment variables")
+ (description "This is a Ruby utility library for Cucumber that detects a
+CI environment from environment variables.")
+ (home-page "https://github.com/cucumber/ci-environment")
+ (license license:expat)))
+
(define-public ruby-cucumber
(package
(name "ruby-cucumber")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 150/223] gnu: Add ruby-timeout.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-49-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-timeout): New variable.
---

gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index df42b713b8..38248841eb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13518,6 +13518,26 @@ (define-public ruby-sinatra
(home-page "https://sinatrarb.com/")
(license license:expat)))
+(define-public ruby-timeout
+ (package
+ (name "ruby-timeout")
+ (version "0.3.2")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/timeout")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lzhs2c4znzg781w146dhvczhbx7h3wkb90i4v6h68zvm2zfylgj"))))
+ (build-system ruby-build-system)
+ (synopsis "Timeout library for Ruby")
+ (description "Timeout provides a way to auto-terminate a potentially
+long-running operation if it hasn't finished in a fixed amount of time.")
+ (home-page "https://github.com/ruby/timeout")
+ (license (list license:bsd-2))))
+
(define-public ruby-thin
(package
(name "ruby-thin")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 152/223] gnu: Add ruby-date.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-51-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-date): New variable.
---

gnu/packages/ruby.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index dc23a52f6c..b309c30d0b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -670,6 +670,28 @@ (define-public ruby-rspec-core-2
"0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
(propagated-inputs `())))
+(define-public ruby-date
+ (package
+ (name "ruby-date")
+ (version "3.3.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ruby/date")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jiqjnaap1jk1r8z37iicnzqha1rhc713qmcir17f4vnz8ac8v75"))))
+ (build-system ruby-build-system)
+ (arguments (list #:test-target "default"))
+ (native-inputs (list ruby-rake-compiler))
+ (synopsis "Ruby @code{Object} subclass with date comparison capability")
+ (description "This package provides a subclass of @code{Object} that
+includes the @code{Comparable} module for handling dates.")
+ (home-page "https://github.com/ruby/date")
+ (license license:bsd-2)))
+
(define-public ruby-diff-lcs
(package
(name "ruby-diff-lcs")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 090/223] gnu: Add ruby-concurrent-ruby.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-90-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-concurrent-ruby): New variable.
---
gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 2a1fb7a1f5..a1a4521805 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10474,6 +10474,44 @@ (define-public ruby-concurrent
(home-page "http://www.concurrent-ruby.com")
(license license:expat)))
+(define-public ruby-concurrent-ruby
+ (package
+ (name "ruby-concurrent-ruby")
+ (version "1.2.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference ;for tests
+ (url "https://github.com/ruby-concurrency/concurrent-ruby")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vz4rl0nplq14dk9nx45g59i1sk2h53w1mjlrdiyjf780q4a1i38"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ;the test suite is run in ruby-concurrent-ruby-edge
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-unwanted-gemspecs
+ (lambda _
+ (for-each delete-file
+ '("concurrent-ruby-ext.gemspec"
+ "concurrent-ruby-edge.gemspec"))))
+ (add-after 'unpack 'do-not-install-concurrent_ruby.jar
+ (lambda _
+ ;; This file is only built when building the Java
+ ;; extension.
+ (substitute* "concurrent-ruby.gemspec"
+ (("'lib/concurrent-ruby/concurrent/concurrent_ruby.jar'")
+ "")))))))
+ (synopsis "Concurrency library for Ruby")
+ (description "Concurrent Ruby includes concurrency tools such as agents,
+futures, promises, thread pools, actors, supervisors, and more. It is
+inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency
+patterns.")
+ (home-page "https://github.com/ruby-concurrency/concurrent-ruby")
+ (license license:expat)))
+
(define-public ruby-pkg-config
(package
(name "ruby-pkg-config")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 149/223] gnu: ruby-actiontext: Update to 7.0.4.3.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-48-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-actiontext): Update to 7.0.4.3.
[source]: Use ruby-rail-monorepo.
[arguments]: Add #:phases argument.
---

gnu/packages/rails.scm | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)

Toggle diff (43 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 6c41466ac3..6e26c8966a 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -415,21 +415,23 @@ (define-public ruby-rails-dom-testing
(define-public ruby-actiontext
(package
(name "ruby-actiontext")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "actiontext" version))
- (sha256
- (base32
- "04k4z4xj40sbzbgx0x9m6i8k0nc22jb6dkrlslj16p2z2dfnwhqg"))))
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
(build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
+ (arguments
+ (list
+ #:tests? #f ;avoid a cycle with ruby-rails
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "actiontext"))))))
(propagated-inputs
- (list ruby-actionpack ruby-activerecord ruby-activestorage
- ruby-activesupport ruby-nokogiri))
+ (list ruby-actionpack
+ ruby-activerecord
+ ruby-activestorage
+ ruby-activesupport
+ ruby-nokogiri))
(synopsis "Edit and display rich text in Rails applications")
(description
"ActionText edits and displays rich text in Rails applications.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 157/223] gnu: ruby-actionmailer: Update to 7.0.4.3.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-56-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-actionmailer): Update to 7.0.4.3.
[source]: Use ruby-rail-monorepo.
[arguments]: Add #:phases argument.
[propagated-inputs]: Add ruby-net-imap, ruby-net-pop and ruby-net-smtp.
---

gnu/packages/rails.scm | 52 ++++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 25 deletions(-)

Toggle diff (66 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 86ef853ca9..26a1ffc121 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -704,32 +704,34 @@ (define-public ruby-actionmailbox
(define-public ruby-actionmailer
(package
- (name "ruby-actionmailer")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "actionmailer" version))
- (sha256
- (base32
- "0lic4mc6wqi3p9ipdqljl64vd9ndabm0k8hww0m07sfdhwsl5ba9"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-actionpack
- ruby-actionview
- ruby-activejob
- ruby-activesupport
- ruby-mail
- ruby-rails-dom-testing))
- (synopsis "Work with emails using the controller/view pattern")
- (description
- "Compose, deliver, receive, and test emails using the controller/view
+ (name "ruby-actionmailer")
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ;avoid a cycle with ruby-rails
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "actionmailer"))))))
+ (propagated-inputs
+ (list ruby-actionpack
+ ruby-actionview
+ ruby-activejob
+ ruby-activesupport
+ ruby-mail
+ ruby-net-imap
+ ruby-net-pop
+ ruby-net-smtp
+ ruby-rails-dom-testing))
+ (synopsis "Work with emails using the controller/view pattern")
+ (description
+ "Compose, deliver, receive, and test emails using the controller/view
pattern. Including support for multipart email and attachments.")
- (home-page "https://rubyonrails.org/")
- (license license:expat)))
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
(define-public ruby-marcel
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 151/223] gnu: Add ruby-net-protocol.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-50-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-net-protocol): New variable.
---

gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 38248841eb..dc23a52f6c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -11340,6 +11340,27 @@ (define-public ruby-mail
(home-page "https://github.com/mikel/mail")
(license license:expat)))
+(define-public ruby-net-protocol
+ (package
+ (name "ruby-net-protocol")
+ (version "0.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ruby/net-protocol")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0niivmjx7bc6vsylc1ag17mw6mnvjxw02s7cin1f0422xyr8msq9"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-timeout))
+ (synopsis "Abstract interface for Ruby network clients")
+ (description "This Ruby library provides an abstract interface for network
+clients.")
+ (home-page "https://github.com/ruby/net-protocol")
+ (license (list license:bsd-2))))
+
(define-public ruby-email-reply-trimmer
(package
(name "ruby-email-reply-trimmer")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 062/223] gnu: ruby-actionview: Update to 7.0.4.3.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-62-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-actionview): Update to 7.0.4.3.
[source]: Use ruby-rails-monorepo.
[arguments]: Add explanatory comment w.r.t. disabling tests. Add the #:phases
and #:test-target arguments.
[propagated-inputs]: Re-indent.
---
gnu/packages/rails.scm | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 4dc9392201..338c92ddaa 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -438,21 +438,27 @@ (define-public ruby-actiontext
(define-public ruby-actionview
(package
(name "ruby-actionview")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "actionview" version))
- (sha256
- (base32
- "1s5kc1abi7id1g54lz1npgc42zl7pbz172wp8pi7j3s7qljafzw5"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ ;; XXX: This gem appears to load action_controller, provided by
+ ;; ruby-actionpack, but actionpack propagates ruby-actionview,
+ ;; introducing a circular dependency.
+ #:tests? #f
+ #:test-target "test:template"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "actionview"))))))
(propagated-inputs
- (list ruby-activesupport ruby-builder ruby-erubi
- ruby-rails-dom-testing ruby-rails-html-sanitizer))
+ (list ruby-activesupport
+ ruby-builder
+ ruby-erubi
+ ruby-rails-dom-testing
+ ruby-rails-html-sanitizer))
(synopsis "Conventions and helpers for building web pages")
(description
"ActionView provides conventions and helpers for building web pages in
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 153/223] gnu: Add ruby-net-imap.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-52-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-net-imap): New variable.
---

gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b309c30d0b..1544b40224 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4015,6 +4015,41 @@ (define-public ruby-net-http-persistent
(home-page "https://github.com/drbrain/net-http-persistent")
(license license:expat)))
+(define-public ruby-net-imap
+ (package
+ (name "ruby-net-imap")
+ (version "0.3.4")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/net-imap")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nx49i1n9q1wpancqaac2srrpb8mb43mc8wryyqyhpgki2grwyxw"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; The test suite appears to rely on RFCs it tries fetching from the
+ ;; network (see: https://github.com/ruby/net-imap/issues/136).
+ (list #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'replace-git-ls-files 'adjust-for-git-ls-files
+ (lambda _
+ ;; Adjust the git ls-files invocation so that it matches
+ ;; the expected pattern.
+ (substitute* "net-imap.gemspec"
+ (("`git ls-files -z 2>/dev/null`")
+ "`git ls-files -z`")))))))
+ (propagated-inputs (list ruby-date ruby-net-protocol))
+ (synopsis "Ruby client api for Internet Message Access Protocol")
+ (description "@code{Net::IMAP} implements Internet Message Access
+Protocol (IMAP) client functionality. The protocol is described in
+@url{https://tools.ietf.org/html/rfc3501, IMAP}.")
+ (home-page "https://github.com/ruby/net-imap")
+ (license license:bsd-2)))
+
(define-public ruby-power-assert
(package
(name "ruby-power-assert")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 159/223] gnu: ruby-sprockets: Move to (gnu packages rails).
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-58-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-sprockets): Move to...
* gnu/packages/rails.scm (ruby-sprockets): ... here.
---

gnu/packages/rails.scm | 24 ++++++++++++++++++++++++
gnu/packages/ruby.scm | 24 ------------------------
2 files changed, 24 insertions(+), 24 deletions(-)

Toggle diff (72 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 26a1ffc121..efe4a57f31 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -792,6 +792,30 @@ (define-public ruby-railties
(home-page "https://rubyonrails.org")
(license license:expat)))
+(define-public ruby-sprockets
+ (package
+ (name "ruby-sprockets")
+ (version "4.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sprockets" version))
+ (sha256
+ (base32
+ "0k0236g4h3ax7v6vp9k0l2fa0w6f1wqp7dn060zm4isw4n3k89sw"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ (list ruby-concurrent ruby-rack))
+ (synopsis "Sprockets is a Rack-based asset packaging system")
+ (description
+ "Sprockets is a Rack-based asset packaging system that concatenates and
+serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
+ (home-page "https://github.com/rails/sprockets")
+ (license license:expat)))
+
(define-public ruby-sprockets-rails
(package
(name "ruby-sprockets-rails")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 16ddbe7071..d47c630169 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13238,30 +13238,6 @@ (define-public ruby-globalid
(home-page "https://rubyonrails.org/")
(license license:expat)))
-(define-public ruby-sprockets
- (package
- (name "ruby-sprockets")
- (version "4.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "sprockets" version))
- (sha256
- (base32
- "0k0236g4h3ax7v6vp9k0l2fa0w6f1wqp7dn060zm4isw4n3k89sw"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-concurrent ruby-rack))
- (synopsis "Sprockets is a Rack-based asset packaging system")
- (description
- "Sprockets is a Rack-based asset packaging system that concatenates and
-serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
- (home-page "https://github.com/rails/sprockets")
- (license license:expat)))
-
(define-public ruby-language-server-protocol
(package
(name "ruby-language-server-protocol")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 156/223] gnu: ruby-actionmailbox: Update to 7.0.4.3.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-55-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-actionmailbox): Update to 7.0.4.3.
[source]: Use ruby-rail-monorepo.
[arguments]: Add #:phases argument.
[propagated-inputs]: Add ruby-net-imap, ruby-net-pop and ruby-net-smtp.
---

gnu/packages/rails.scm | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)

Toggle diff (46 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 6e26c8966a..86ef853ca9 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -675,25 +675,27 @@ (define-public ruby-activestorage
(define-public ruby-actionmailbox
(package
(name "ruby-actionmailbox")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "actionmailbox" version))
- (sha256
- (base32
- "0wv2p24xn4f0kj8kiyagkn934hzrcp98vzjqxwd4r75qq0cijadp"))))
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
(build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
+ (arguments
+ (list
+ #:tests? #f ;avoid a cycle with ruby-rails
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "actionmailbox"))))))
(propagated-inputs
(list ruby-actionpack
ruby-activejob
ruby-activerecord
ruby-activestorage
ruby-activesupport
- ruby-mail))
+ ruby-mail
+ ruby-net-imap
+ ruby-net-pop
+ ruby-net-smtp))
(synopsis "Receive and process incoming emails in Rails applications")
(description
"ActionMailbox receives and processes incoming emails in Rails applications.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 162/223] gnu: ruby-globalid: Update to 1.1.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-61-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-globalid): Update to 1.1.0.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d47c630169..f7d663f931 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13217,14 +13217,14 @@ (define-public ruby-nio4r
(define-public ruby-globalid
(package
(name "ruby-globalid")
- (version "0.4.2")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "globalid" version))
(sha256
(base32
- "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"))))
+ "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk"))))
(build-system ruby-build-system)
(arguments
'(;; No included tests
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 099/223] gnu: ruby-octokit: Update to 6.1.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-99-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-octokit): Update to 6.1.0.
---
gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1af6fe4354..3f828cd351 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7905,14 +7905,14 @@ (define-public ruby-sawyer
(define-public ruby-octokit
(package
(name "ruby-octokit")
- (version "4.18.0")
+ (version "6.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "octokit" version))
(sha256
(base32
- "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6"))))
+ "03i37mdhwlm5y6piqaby0izrhda9m5ggbrmm62ww3ln2l86h78l2"))))
(build-system ruby-build-system)
(arguments '(#:tests? #f)) ;no test suite in the gem release
(propagated-inputs
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 163/223] gnu: ruby-globalid: Move to (gnu packages rails).
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-62-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-globalid): Move to...
* gnu/packages/rails.scm (ruby-globalid): ... here, with minor cosmetic
adjustments.
---

gnu/packages/rails.scm | 23 +++++++++++++++++++++++
gnu/packages/ruby.scm | 24 ------------------------
2 files changed, 23 insertions(+), 24 deletions(-)

Toggle diff (71 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 33c0af70b2..802c4b9dec 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -113,6 +113,29 @@ (define-public ruby-activesupport
(home-page "https://rubyonrails.org/")
(license license:expat)))
+(define-public ruby-globalid
+ (package
+ (name "ruby-globalid")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "globalid" version))
+ (sha256
+ (base32
+ "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ;no included tests
+ (propagated-inputs
+ (list ruby-activesupport))
+ (synopsis "Generate URIs idenfitying model instances in Ruby")
+ (description
+ "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
+uniquely identify it.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
(define-public ruby-spring
(package
(name "ruby-spring")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f7d663f931..4bc2439192 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13214,30 +13214,6 @@ (define-public ruby-nio4r
(home-page "https://github.com/socketry/nio4r")
(license license:expat)))
-(define-public ruby-globalid
- (package
- (name "ruby-globalid")
- (version "1.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "globalid" version))
- (sha256
- (base32
- "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-activesupport))
- (synopsis "Generate URIs idenfitying model instances in Ruby")
- (description
- "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
-uniquely identify it.")
- (home-page "https://rubyonrails.org/")
- (license license:expat)))
-
(define-public ruby-language-server-protocol
(package
(name "ruby-language-server-protocol")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 158/223] gnu: ruby-sprockets: Update to 4.2.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-57-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-sprockets): Update to 4.2.0.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 2927509d56..16ddbe7071 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13241,14 +13241,14 @@ (define-public ruby-globalid
(define-public ruby-sprockets
(package
(name "ruby-sprockets")
- (version "3.7.2")
+ (version "4.2.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "sprockets" version))
(sha256
(base32
- "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"))))
+ "0k0236g4h3ax7v6vp9k0l2fa0w6f1wqp7dn060zm4isw4n3k89sw"))))
(build-system ruby-build-system)
(arguments
'(;; No included tests
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 164/223] gnu: Add ruby-importmap-rails.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-63-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-importmap-rails-bootstrap): New private variable.
(ruby-importmap-rails): New variable.
---

gnu/packages/rails.scm | 73 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)

Toggle diff (93 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 802c4b9dec..4abecb8409 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -26,6 +26,7 @@ (define-module (gnu packages rails)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages base)
#:use-module (gnu packages databases)
#:use-module (gnu packages node)
@@ -795,6 +796,78 @@ (define-public ruby-bootsnap
(home-page "https://github.com/Shopify/bootsnap")
(license license:expat)))
+;;; A private variant used to bootstrap railties.
+(define ruby-importmap-rails-bootstrap
+ (package
+ (name "ruby-importmap-rails-bootstrap")
+ (version "1.1.5")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/rails/importmap-rails")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d8pqqqrvsnm8rpr7qkpcxpscif61xymi509v1c62laadvhcmklg"))))
+ (build-system ruby-build-system)
+ (arguments (list #:tests? #f)) ;avoid all extra dependencies
+ ;; Leave out ruby-railties, for bootstrapping purposes.
+ (propagated-inputs (list ruby-actionpack))
+ (synopsis "Tool to manage modern JavaScript in Rails")
+ (description "Import maps can import JavaScript modules using logical
+names that map to versioned/digested files -- directly from the browser. It
+makes it possible to build modern JavaScript applications using JavaScript
+libraries made for ES modules (ESM) without the need for transpiling or
+bundling, which removes the need for Webpack, Yarn, npm, or any other part of
+the JavaScript toolchain. All that is needed is the asset pipeline that is
+already included in Rails.")
+ (home-page "https://github.com/rails/importmap-rails")
+ (license license:expat)))
+
+(define-public ruby-importmap-rails
+ (package/inherit ruby-importmap-rails-bootstrap
+ (name "ruby-importmap-rails")
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (delete-file "gemfiles/rails_7_propshaft.gemfile.lock")
+ (substitute* "gemfiles/rails_7_propshaft.gemfile"
+ ;; Remove appraisal, and add tzinfo-data, which needs to
+ ;; be in the Gemfile to become available.
+ ((".*appraisal.*")
+ "gem 'tzinfo-data'\n")
+ ;; This gem is for managing *installation* of
+ ;; webdrivers... we do not want that.
+ ((".*gem \"webdrivers\".*") ""))))
+ (add-before 'check 'set-BUNDLE_GEMFILE
+ (lambda _
+ ;; The default Gemfile is for Rails 6.
+ (setenv "BUNDLE_GEMFILE"
+ "gemfiles/rails_7_propshaft.gemfile")))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ ;; The integration tests require networking; disable them.
+ (delete-file "test/npm_integration_test.rb")
+ (delete-file "test/packager_integration_test.rb"))))))
+ (native-inputs
+ (list ruby-byebug
+ ruby-capybara
+ ruby-propshaft
+ ruby-rails
+ ruby-rexml
+ ruby-selenium-webdriver
+ ruby-sqlite3
+ ruby-stimulus-rails
+ ruby-turbo-rails
+ ruby-tzinfo
+ ruby-tzinfo-data))
+ (propagated-inputs
+ (list ruby-actionpack
+ ruby-railties))))
+
(define-public ruby-marcel
(package
(name "ruby-marcel")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 168/223] gnu: Add ruby-turbo-rails.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-67-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-turbo-rails): New variable.
---

gnu/packages/rails.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 925b95c3b2..04aa2d3f89 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -1244,6 +1244,34 @@ (define-public ruby-stimulus-rails
(home-page "https://stimulus.hotwired.dev")
(license license:expat)))
+(define-public ruby-turbo-rails
+ (package
+ (name "ruby-turbo-rails")
+ (version "1.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "turbo-rails" version))
+ (sha256
+ (base32
+ "0vm3iqgr3kxyyz5i09lhvfszp4pw1gw5j5rhhv1gmasv4kq2p3qh"))))
+ (build-system ruby-build-system)
+ ;; The test suite depends on JavaScript modules fetched via 'yarn'.
+ (arguments (list #:tests? #f))
+ (propagated-inputs (list ruby-actionpack ruby-activejob ruby-railties))
+ (synopsis "High performance web application framework")
+ (description
+ "Turbo aims to be as fast as single-page web application without having
+to write any JavaScript. Turbo accelerates links and form submissions without
+requiring server-side changes to the generated HTML. It allows carving up a
+page into independent frames, which can be lazy-loaded and operated as
+independent components. Finally, it helps making partial page updates using
+just HTML and a set of CRUD-like container tags. These three techniques
+reduce the amount of custom JavaScript that many web applications need to
+write by an order of magnitude. And for the few dynamic bits that are left,
+Stimulus can be used.")
+ (home-page "https://github.com/hotwired/turbo-rails")
+ (license license:expat)))
+
(define-public ruby-web-console
(package
(name "ruby-web-console")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 170/223] gnu: ruby-spring: Update to 4.1.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-69-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-spring): Update to 4.1.1.
[arguments]: Use gexps. Delete trailing #t. Preserve activesupport
dependency spec.
---

gnu/packages/rails.scm | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)

Toggle diff (54 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index ddb27a1d77..5cbb063456 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -142,33 +142,29 @@ (define-public ruby-globalid
(define-public ruby-spring
(package
(name "ruby-spring")
- (version "1.7.2")
+ (version "4.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/rails/spring")
- (commit (string-append "v" version))))
+ (url "https://github.com/rails/spring")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0smwrndjmnr7g7jjskw05zin3gh6kx5db6yrkiqi6i9wl5mrn9n5"))))
+ "0p8hidxqnk8s1gfm1s1xb06gbbahdxjmzy6x3ybi25nkmdp0anb6"))))
(build-system ruby-build-system)
(arguments
- `(#:test-target "test:unit"
- #:phases
- (modify-phases %standard-phases
- (add-before 'check 'remove-bump
- (lambda _
- (substitute* "spring.gemspec"
- (("gem.add_development_dependency 'bump'") "")
- (("gem.add_development_dependency 'activesupport'.*")
- "gem.add_development_dependency 'activesupport'\n"))
- (substitute* "Rakefile"
- (("require \\\"bump/tasks\\\"") ""))
- #t)))))
- (native-inputs
- (list bundler ruby-activesupport))
+ (list #:test-target "test:unit"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'remove-bump
+ (lambda _
+ (substitute* "spring.gemspec"
+ (("gem.add_development_dependency 'bump'") ""))
+ (substitute* "Rakefile"
+ (("require \\\"bump/tasks\\\"") "")))))))
+ (native-inputs (list bundler ruby-activesupport))
(synopsis "Ruby on Rails application preloader")
(description
"Spring is a Ruby on Rails application preloader. It speeds up
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 171/223] gnu: Add ruby-dotenv-rails.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-70-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-dotenv-rails): New variable.
---

gnu/packages/ruby.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4bc2439192..6772068489 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10460,6 +10460,42 @@ (define-public ruby-dotenv
(home-page "https://github.com/bkeepers/dotenv")
(license license:expat)))
+(define-public ruby-dotenv-rails
+ (package
+ (inherit ruby-dotenv)
+ (name "ruby-dotenv-rails")
+ (arguments
+ (substitute-keyword-arguments (package-arguments ruby-dotenv)
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (delete 'do-not-build-dotenv-rails)
+ (add-after 'unpack 'delete-Gemfile
+ (lambda _
+ ;; It defines extraneous dependencies; remove it.
+ (delete-file "Gemfile")))
+ (add-after 'unpack 'remove-extraneous-gemspec
+ (lambda _
+ (delete-file "dotenv.gemspec")
+ (substitute* "Gemfile"
+ ((".*\"dotenv\".*") ""))
+ (substitute* "Rakefile"
+ ;; Remove the dotenv-related Rake tasks.
+ (("Bundler::GemHelper.install_tasks name: \"dotenv\"")
+ "")
+ (("\"dotenv:[^\"]*\", ")
+ ""))))
+ (replace 'replace-git-ls-files
+ (lambda _
+ (substitute* "dotenv-rails.gemspec"
+ (("`git ls-files lib \\| grep rails`")
+ "`find lib -type f | sort | grep rails`"))))))))
+ (native-inputs (list ruby-rspec ruby-spring ruby-standard))
+ (propagated-inputs (list ruby-dotenv ruby-railties))
+ (synopsis "Ruby library for setting environment variables in Rails project")
+ (description "Dotenv is a Ruby library for setting environment variables
+defined in a @file{.env} file. This is the Rails variant, adapted for use
+with Ruby on Rails projects.")))
+
(define-public ruby-http-cookie
(package
(name "ruby-http-cookie")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 172/223] gnu: Add ruby-flores.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-71-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-flores): New variable.
---

gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6772068489..4707002fe7 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3996,6 +3996,31 @@ (define-public ruby-fiber-local
(home-page "https://github.com/socketry/fiber-local")
(license license:expat)))
+(define-public ruby-flores
+ (package
+ (name "ruby-flores")
+ (version "0.0.8")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "flores" version))
+ (sha256
+ (base32
+ "0pd8gqgy67rp1baq5r7himl0r9jzv5kqlhdmqh8wngynv548w2ai"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (native-inputs (list ruby-rspec ruby-simplecov))
+ (synopsis "Fuzzing, randomization, and stress testing library")
+ (description "Flores is a fuzzing, randomization, and stress library to
+help tests uncover more bugs.")
+ (home-page "https://github.com/jordansissel/ruby-flores")
+ (license license:asl2.0)))
+
(define-public ruby-net-http-persistent
(package
(name "ruby-net-http-persistent")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 165/223] gnu: ruby-railties: Enable test suite.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-64-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-railties): Add a tip as comment about reviewing
test suite failures.
[arguments]: Delete #:tests?
argument. Add delete-gemfiles, disable-bundler,
do-not-load-other-gems-from-source, patch-paths, prepare-for-tests,
disable-problematic-tests and set-paths phases.
Move check phase after install phase.
---

gnu/packages/rails.scm | 249 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 238 insertions(+), 11 deletions(-)

Toggle diff (276 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 4abecb8409..fbb85f271d 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -31,6 +31,8 @@ (define-module (gnu packages rails)
#:use-module (gnu packages databases)
#:use-module (gnu packages node)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages version-control)
#:use-module (guix build-system ruby))
(define %ruby-rails-version "7.0.4.3")
@@ -903,6 +905,8 @@ (define-public ruby-marcel
(home-page "https://github.com/rails/marcel")
(license license:expat)))
+;;; Pro-tip: to get a summary of the failures, run
+;;; 'M-x occur [1-9][0-9]* \(failures\|errors\)' on the build log.
(define-public ruby-railties
(package
(name "ruby-railties")
@@ -910,17 +914,240 @@ (define-public ruby-railties
(source ruby-rails-monorepo)
(build-system ruby-build-system)
(arguments
- (list #:tests? #f ;requires rails to be installed
- #:phases #~(modify-phases %standard-phases
- (add-after 'delete-gemfiles 'chdir
- (lambda _
- (chdir "railties"))))))
- (propagated-inputs (list ruby-actionpack
- ruby-activesupport
- ruby-method-source
- ruby-rake
- ruby-thor
- ruby-zeitwerk))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-gemfiles
+ (lambda _
+ ;; Delete Gemfile and Gemfile.lock, as they contains too many
+ ;; dependencies not actually useful here.
+ (delete-file "Gemfile")
+ (delete-file "Gemfile.lock")))
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "railties")))
+ (add-after 'chdir 'disable-bundler
+ (lambda _
+ (substitute* (append (list "Rakefile")
+ (find-files "test" "\\.rb$")
+ (find-files "lib" "\\.tt$"))
+ ;; Do not use Bundler, which causes errors such as not finding
+ ;; the gem of this package (railties), or preferring the other
+ ;; in-source gems.
+ (("`bundle exec") "`")
+ ((".*require \"bundler/setup\".*") "")
+ ((".*Bundler.require.*") ""))
+ ;; Adjust a runtime substitution that uses a removed
+ ;; Bundler.require in its pattern; instead of matching
+ ;; "Bundler.require", it now appends to the 'require
+ ;; "rails/all"' line in the generated 'application.rb' template
+ ;; generated from
+ ;; "lib/rails/generators/rails/app/templates/config/application.rb.tt".
+ (substitute* "test/isolation/abstract_unit.rb"
+ (("contents.sub!\\(/\\^Bundler\\\\.require\\.\\*/, \"([^\"]*)"
+ _ replacement)
+ (format #f "contents.sub!('require \"rails/all\"', \"\\\\0\\n~a"
+ replacement)))))
+ (add-after 'chdir 'do-not-load-other-gems-from-source
+ (lambda _
+ ;; The Rakefile adds '-I' Ruby options so that the other Rails
+ ;; libraries are loaded from source; since they are already
+ ;; packaged separately, use these instead.
+ (substitute* "Rakefile"
+ ((".*\"\\.\\./activesupport/lib\",.*") "")
+ ((".*\"\\.\\./actionpack/lib\",.*") "")
+ ((".*\"\\.\\./actionview/lib\",.*") "")
+ ((".*\"\\.\\./activemodel/lib\".*") ""))))
+ (add-after 'chdir 'patch-paths
+ (lambda _
+ (substitute* "lib/rails/generators/base.rb"
+ (("/usr/bin/env") (which "env")))))
+ (delete 'check) ;moved after install phase
+ (add-after 'install 'check
+ (assoc-ref %standard-phases 'check))
+ (add-before 'check 'prepare-for-tests
+ (lambda _
+ (define (touch file-name)
+ (call-with-output-file file-name (const #t)))
+ ;; Otherwise, the test suite attempts to use yarn to fetch
+ ;; NodeJS modules.
+ (mkdir-p "../actionview/lib/assets/compiled")
+ (touch "../actionview/lib/assets/compiled/rails-ujs.js")
+ (mkdir-p "test/isolation/assets/node_modules")
+ ;; Git requires to be able to write to HOME.
+ (setenv "HOME" "/tmp")))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (let-syntax ((skip-tests
+ (syntax-rules ()
+ ((_ file test ...)
+ (substitute* file
+ ;; ActiveSupport test case.
+ (((string-append "test \"" test "\".*") all)
+ (string-append
+ all " skip 'fails on guix'\n")) ...
+ ;; MiniTest test case.
+ (((string-append "def " test ".*") all)
+ (string-append
+ all " skip('fails on guix')\n")) ...)))))
+ (with-directory-excursion "test"
+ ;; This test requires 'rails' and Bundler.
+ (delete-file "application/server_test.rb")
+ ;; These tests are incompatible with MiniTest 5.17 (see:
+ ;; https://github.com/rails/rails/issues/47657).
+ (skip-tests "generators_test.rb"
+ "test_invoke_with_config_values"
+ "test_simple_invoke"
+ "test_should_give_higher_preference_to_rails_generators"
+ "test_nested_fallbacks_for_generators"
+ "test_fallbacks_for_generators_on_invoke"
+ "test_invoke_with_default_values"
+ "test_invoke_with_nested_namespaces")
+ ;; These tests requires the assets which we lack.
+ (delete-file "application/assets_test.rb")
+ (delete-file "railties/generators_test.rb")
+ (skip-tests "generators/shared_generator_tests.rb"
+ ;; This test checks that bin/rails has /usr/bin/env has a
+ ;; shebang and fails.
+ "test_shebang_when_is_the_same_as_default_use_env")
+ (skip-tests "generators/app_generator_test.rb"
+ ;; This test requires networking.
+ "test_template_from_url"
+ ;; This test requires Bundler.
+ "test_generation_use_original_bundle_environment"
+ ;; This test requires assets.
+ "test_css_option_with_cssbundling_gem"
+ ;; These tests require the rails/command
+ ;; namespace provided by the 'ruby-rails'
+ ;; package, which depends on this one.
+ "test_css_option_with_asset_pipeline_tailwind"
+ "test_hotwire")
+ (skip-tests
+ "generators/plugin_generator_test.rb"
+ ;; These tests require assets.
+ "test_model_with_existent_application_record_in_mountable_engine"
+ "test_dummy_application_loads_plugin"
+ "test_generate_application_mailer_when_does_not_exist_in_\
+mountable_engine"
+ "test_generate_mailer_layouts_when_does_not_exist_in_mountable_engine"
+ "test_ensure_that_migration_tasks_work_with_mountable_option"
+ "test_generating_controller_inside_mountable_engine"
+ "test_generate_application_job_when_does_not_exist_in_mountable_engine"
+ "test_run_default"
+ ;; This test expects a /usr/bin/env shebang.
+ "test_shebang")
+ ;; The following generator tests require assets.
+ (skip-tests "generators/plugin_test_runner_test.rb"
+ "test_run_default")
+ (skip-tests
+ "generators/scaffold_controller_generator_test.rb"
+ "test_controller_tests_pass_by_default_inside_full_engine"
+ "test_controller_tests_pass_by_default_inside_mountable_engine")
+ (skip-tests
+ "generators/scaffold_generator_test.rb"
+ "test_scaffold_tests_pass_by_default_inside_mountable_engine"
+ "test_scaffold_tests_pass_by_default_inside_api_mountable_engine"
+ "test_scaffold_tests_pass_by_default_inside_api_full_engine"
+ "test_scaffold_on_invoke_inside_mountable_engine"
+ "test_scaffold_tests_pass_by_default_inside_full_engine"
+ "test_scaffold_tests_pass_by_default_inside_namespaced_\
+mountable_engine")
+ (skip-tests "generators/test_runner_in_engine_test.rb"
+ "test_run_default"
+ "test_rerun_snippet_is_relative_path")
+ ;; The actions_test tests depend on assets or the rails gem.
+ (delete-file "generators/actions_test.rb")
+ (skip-tests "engine/commands_test.rb"
+ "test_server_command_work_inside_engine"
+ "test_runner_command_work_inside_engine")
+ ;; These tests fails because of cleanup code
+ ;; when the environment lacks a PTY device (see:
+ ;; https://github.com/rails/rails/issues/47656).
+ (delete-file "engine/commands_test.rb")
+ ;; The following tests require the 'rails' gem.
+ (skip-tests "application/test_runner_test.rb"
+ "test_run_app_without_rails_loaded"
+ "test_generated_scaffold_works_with_rails_test"
+ "test_load_fixtures_when_running_test_suites"
+ "test_run_in_parallel_with_unmarshable_exception"
+ "test_run_in_parallel_with_unknown_object")
+ (skip-tests
+ "application/test_test.rb"
+ "automatically synchronizes test schema after rollback"
+ "hooks for plugins"
+ "sql structure migrations when adding column to existing table"
+ "sql structure migrations"
+ "ruby schema migrations")
+ ;; These tests require a PostgreSQL server accepting
+ ;; connections under /var/run/postgresql.
+ (skip-tests
+ "application/rake_test.rb"
+ "test_not_protected_when_previous_migration_was_not_production")
+ (delete-file "application/rake/dbs_test.rb")
+ (delete-file "application/rake/migrations_test.rb")
+ (delete-file "application/rake/multi_dbs_test.rb")
+ (skip-tests "engine/test_test.rb"
+ "automatically synchronize test schema")
+ (skip-tests "isolation/abstract_unit.rb" "use_postgresql")
+ (skip-tests "railties/engine_test.rb"
+ "active_storage:install task works within engine"
+ "active_storage:update task works within engine"
+ "rake environment can be called in the engine"
+ "mountable engine should copy migrations within engine_path"
+ ;; This test fails because we do not use the
+ ;; in-source active/action gems.
+ "i18n files have lower priority than application ones"
+ ;; This test fails when not using Bundler.
+ "setting priority for engines with config.railties_order")
+ ;; This test requires a database server or networking.
+ (delete-file "application/bin_setup_test.rb")
+ (skip-tests "application/middleware/cache_test.rb"
+ ;; This test produces "miss, store" instead of
+ ;; "fresh".
+ "test_cache_works_with_expires"
+ ;; This one produces "miss" instead of "stale,
+ ;; valid, store".
+ "test_cache_works_with_etags"
+ ;; Likewise.
+ "test_cache_works_with_last_modified")))))
+ (add-before 'check 'set-paths
+ (lambda _
+ (setenv "PATH" (string-append (getenv "PATH") ":"
+ #$output "/bin"))
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby")))))))
+ (native-inputs
+ (list git-minimal/pinned
+ ruby-actioncable
+ ruby-actionmailbox
+ ruby-actionmailer
+ ruby-actiontext
+ ruby-actionview
+ ruby-activejob
+ ruby-activemodel
+ ruby-activerecord
+ ruby-activestorage
+ ruby-bcrypt
+ ruby-bootsnap
+ ruby-capybara
+ ruby-dalli
+ ruby-importmap-rails-bootstrap
+ ruby-listen
+ ruby-minitest-retry
+ ruby-mysql2
+ ruby-pg
+ ruby-selenium-webdriver
+ ruby-sprockets-rails
+ ruby-webrick
+ sqlite))
+ (propagated-inputs
+ (list ruby-actionpack
+ ruby-activesupport
+ ruby-method-source
+ ruby-rake
+ ruby-thor
+ ruby-zeitwerk))
(synopsis "Rails internals, including application bootup and generators")
(description "@code{railties} provides the core Rails internals including
handling application bootup, plugins, generators, and Rake tasks.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 166/223] gnu: Add ruby-propshaft.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-65-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-propshaft): New variable.
---

gnu/packages/rails.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index fbb85f271d..8f174920ec 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -905,6 +905,30 @@ (define-public ruby-marcel
(home-page "https://github.com/rails/marcel")
(license license:expat)))
+(define-public ruby-propshaft
+ (package
+ (name "ruby-propshaft")
+ (version "0.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "propshaft" version))
+ (sha256
+ (base32
+ "19s5qvfady49b9b6dcvz6nsna1lvckw509ddh3ihmdz0w4qrjy49"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-actionpack ruby-activesupport ruby-rack
+ ruby-railties))
+ (synopsis "Asset pipeline library for Rails")
+ (description "Propshaft is an asset pipeline library for Rails. It's
+built for an era where bundling assets to save on HTTP connections is no
+longer urgent, where JavaScript and CSS are either compiled by dedicated
+Node.js bundlers or served directly to the browsers, and where increases in
+bandwidth have made the need for minification less pressing. These factors
+allow for a dramatically simpler and faster asset pipeline compared to
+previous options, like Sprockets.")
+ (home-page "https://github.com/rails/propshaft")
+ (license license:expat)))
+
;;; Pro-tip: to get a summary of the failures, run
;;; 'M-x occur [1-9][0-9]* \(failures\|errors\)' on the build log.
(define-public ruby-railties
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 173/223] gnu: Add ruby-pleaserun.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-72-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-pleaserun): New variable.
---

gnu/packages/ruby.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (55 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4707002fe7..1d1eba741c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4119,6 +4119,48 @@ (define-public ruby-net-smtp
(home-page "https://github.com/ruby/net-smtp")
(license license:bsd-2)))
+(define-public ruby-pleaserun
+ (package
+ (name "ruby-pleaserun")
+ (version "0.0.32")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pleaserun" version))
+ (sha256
+ (base32
+ "1aykf0l8327bqkkf5xd9jcglsib973zpy37cfnlf4j0vp0cdpn2d"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (substitute* "pleaserun.gemspec"
+ ;; Mustache is pinned at 0.99.8, for portability with
+ ;; older Rubies.
+ (("dependency\\(%q<mustache>.freeze.*")
+ "dependency(%q<mustache>.freeze)\n"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; The cli_spec.rb test fails non-deterministically with
+ ;; a Errno::EISDIR error (see:
+ ;; https://github.com/jordansissel/pleaserun/issues/155)
+ (invoke "rspec" "--exclude-pattern" "cli_spec.rb")))))))
+ (native-inputs (list ruby-flores ruby-rspec))
+ (propagated-inputs (list ruby-cabin
+ ruby-clamp
+ ruby-dotenv
+ ruby-insist
+ ruby-mustache
+ ruby-stud))
+ (synopsis "Init scripts and service definitions generation tool")
+ (description "Pleaserun is a tool to generate startup scripts and service
+definitions. It targets service managers such as systemd, Upstart, launchd,
+sysv init, and runit.")
+ (home-page "https://github.com/jordansissel/pleaserun")
+ (license license:asl2.0)))
+
(define-public ruby-power-assert
(package
(name "ruby-power-assert")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 175/223] gnu: Add perl-app-cpanminus.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-74-maxim.cournoyer@gmail.com
* gnu/packages/perl.scm (perl-app-cpanminus): New variable.
---

gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 08ae11724c..3afb1c1db9 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -550,6 +550,27 @@ (define-public perl-any-moose
variable ANY_MOOSE to be Moose or Mouse.")
(license (package-license perl))))
+(define-public perl-app-cpanminus
+ (package
+ (name "perl-app-cpanminus")
+ (version "1.7046")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0qpq1x24dcrm7bm2qj814nkmxg8mzkdn6wcirjd8yd578jdrv31y"))))
+ (build-system perl-build-system)
+ (home-page "https://metacpan.org/release/App-cpanminus")
+ (synopsis "CPAN package manager")
+ (description "App::cpanminus is a script to get, unpack, build and install
+modules from CPAN and does nothing else. It's dependency free (can bootstrap
+itself), requires zero configuration, and stands alone. When running, it
+requires only 10MB of RAM.")
+ (license (package-license perl))))
+
(define-public perl-app-xml-docbook-builder
(package
(name "perl-app-xml-docbook-builder")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 177/223] gnu: ruby-minitest: Update to 5.18.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-76-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-minitest): Update to 5.18.0.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 87f1e774d0..b61bd5f389 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5063,13 +5063,13 @@ (define-public ruby-net-scp
(define-public ruby-minitest
(package
(name "ruby-minitest")
- (version "5.17.0")
+ (version "5.18.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "minitest" version))
(sha256
(base32
- "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0"))))
+ "0ic7i5z88zcaqnpzprf7saimq2f6sad57g5mkkqsrqrcd6h3mx06"))))
(build-system ruby-build-system)
(native-inputs (list ruby-hoe))
(home-page "https://github.com/minitest/minitest")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 174/223] gnu: Add ruby-arr-pm.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-73-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-arr-pm): New variable.
---

gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1d1eba741c..81b254ad2c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5899,6 +5899,33 @@ (define-public ruby-multi-test
(home-page "https://github.com/cucumber/multi_test")
(license license:expat)))
+(define-public ruby-arr-pm
+ (package
+ (name "ruby-arr-pm")
+ (version "0.0.12")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "arr-pm" version))
+ (sha256
+ (base32
+ "0fddw0vwdrr7v3a0lfqbmnd664j48a9psrjd3wh3k4i3flplizzx"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec")))))))
+ (native-inputs (list ruby-flores ruby-insist ruby-rspec ruby-stud))
+ (synopsis "RPM reader/writer library written in Ruby")
+ (description "This library allows reading and writing RPM packages. It is
+used by the @command{fpm} tool. It is written in pure Ruby because
+@code{librpm} is not available on all systems and requires many
+dependencies.")
+ (home-page "https://github.com/jordansissel/ruby-arr-pm")
+ (license license:asl2.0)))
+
(define-public ruby-arel
(package
(name "ruby-arel")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 176/223] gnu: ruby-minitest: Update home page URL.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-75-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-minitest) [home-page]: Update URL.
---

gnu/packages/ruby.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 81b254ad2c..87f1e774d0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5072,7 +5072,7 @@ (define-public ruby-minitest
"1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0"))))
(build-system ruby-build-system)
(native-inputs (list ruby-hoe))
- (home-page "https://github.com/seattlerb/minitest")
+ (home-page "https://github.com/minitest/minitest")
(synopsis "Small test suite library for Ruby")
(description "Minitest provides a complete suite of Ruby testing
facilities supporting TDD, BDD, mocking, and benchmarking.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 183/223] gnu: ruby-slim: Update to 5.1.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-82-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-slim): Update to 5.1.0.
[arguments]: Delete trailing #t.
[native-inputs]: Add ruby-rspec-core.
---

gnu/packages/ruby.scm | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

Toggle diff (45 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f26988d830..607fefb9af 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1337,14 +1337,14 @@ (define-public ruby-patron
(define-public ruby-slim
(package
(name "ruby-slim")
- (version "4.1.0")
+ (version "5.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "slim" version))
(sha256
(base32
- "0gjx30g84c82qzg32bd7giscvb4206v7mvg56kc839w9wjagn36n"))))
+ "1rp437r8hr9kdgabb7c96yw4z2wyrajl4cxiij038y10f8i6hbn4"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -1358,18 +1358,16 @@ (define-public ruby-slim
"def skipped_test_render_with_markdown"))
(substitute* "test/translator/test_translator.rb"
(("raise (\"Missing test for.*)" _ tail)
- (string-append "print " tail)))
- #t))
+ (string-append "print " tail)))))
;; See: https://salsa.debian.org/ruby-team/ruby-slim/-/commit/
;; 824862bd99d1675bc699d8fc71ba965a785c1f44.
(add-after 'unpack 'prevent-bundler-interference
(lambda _
(substitute* "Rakefile"
(("require 'bundler/setup'") "nil")
- (("Bundler::GemHelper\\.install_tasks") "nil"))
- #t)))))
+ (("Bundler::GemHelper\\.install_tasks") "nil")))))))
(native-inputs
- (list ruby-rack-test ruby-sinatra))
+ (list ruby-rack-test ruby-rspec-core ruby-sinatra))
(propagated-inputs
(list ruby-temple ruby-tilt))
(synopsis "Minimalist template language for Ruby")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 145/223] gnu: ruby-marcel: Update to 1.0.2.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-44-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-marcel): Update to 1.0.2.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ba71547cec..3854281058 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5753,14 +5753,14 @@ (define-public ruby-arel
(define-public ruby-marcel
(package
(name "ruby-marcel")
- (version "0.3.3")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "marcel" version))
(sha256
(base32
- "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"))))
+ "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"))))
(build-system ruby-build-system)
(arguments
'(;; No included tests
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 026/223] gnu: Add ruby-rubocop-rake.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-26-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rubocop-rake): New variable.
---
gnu/packages/ruby.scm | 13 +++++++++++++
1 file changed, 13 insertions(+)

Toggle diff (26 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d2e9854904..28e98e5189 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1602,6 +1602,19 @@ (define ruby-rubocop-rake-minimal
(home-page "https://github.com/rubocop/rubocop-rake")
(license license:expat)))
+(define-public ruby-rubocop-rake
+ (package
+ (inherit ruby-rubocop-rake-minimal)
+ (arguments
+ (list #:test-target "spec"))
+ (native-inputs
+ (list ruby-rake
+ ruby-rspec
+ ruby-rubocop
+ ruby-rubocop-rspec))
+ (propagated-inputs
+ (list ruby-rubocop))))
+
;;; A minimal variant used to build ruby-rubocop itself.
(define ruby-rubocop-rspec-minimal
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 146/223] gnu: ruby-marcel: Relocate to (gnu packages rails).
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-45-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-marcel): Move to...
* gnu/packages/rails.scm (ruby-marcel): ... here.
[home-page]: Update URL.
---

gnu/packages/rails.scm | 25 +++++++++++++++++++++++++
gnu/packages/ruby.scm | 24 ------------------------
2 files changed, 25 insertions(+), 24 deletions(-)

Toggle diff (80 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 43db167671..9638aee3ae 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -725,6 +726,30 @@ (define-public ruby-actionmailer
(home-page "https://rubyonrails.org/")
(license license:expat)))
+(define-public ruby-marcel
+ (package
+ (name "ruby-marcel")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "marcel" version))
+ (sha256
+ (base32
+ "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ (list ruby-mimemagic))
+ (synopsis "MIME type detection using magic numbers, filenames and extensions")
+ (description
+ "@code{marcel} provides @acronym{MIME, Multipurpose Internet Mail
+Extensions} type detection using magic numbers, filenames, and extensions")
+ (home-page "https://github.com/rails/marcel")
+ (license license:expat)))
+
(define-public ruby-railties
(package
(name "ruby-railties")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 3854281058..df42b713b8 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5750,30 +5750,6 @@ (define-public ruby-arel
various relational database implementations.")
(license license:expat)))
-(define-public ruby-marcel
- (package
- (name "ruby-marcel")
- (version "1.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "marcel" version))
- (sha256
- (base32
- "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-mimemagic))
- (synopsis "MIME type detection using magic numbers, filenames and extensions")
- (description
- "@code{marcel} provides @acronym{MIME, Multipurpose Internet Mail
-Extensions} type detection using magic numbers, filenames, and extensions")
- (home-page "https://github.com/basecamp/marcel")
- (license license:expat)))
-
(define-public ruby-minitar
;; We package from the GitHub source to fix the security issue reported at
;; https://github.com/halostatue/minitar/issues/16.
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 178/223] gnu: ruby-rubocop-rspec-minimal: Update source and home page URL.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-77-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rubocop-rspec-minimal): Update source and home page URL.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b61bd5f389..08bdcee338 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1748,7 +1748,7 @@ (define ruby-rubocop-rspec-minimal
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/rubocop-hq/rubocop-rspec")
+ (url "https://github.com/rubocop/rubocop-rspec")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -1759,7 +1759,7 @@ (define ruby-rubocop-rspec-minimal
(synopsis "Code style checking for RSpec files")
(description "This package provides a plugin for the RuboCop code style
enforcing & linting tool.")
- (home-page "https://github.com/rubocop-hq/rubocop-rspec")
+ (home-page "https://github.com/rubocop/rubocop-rspec")
(license license:expat)))
(define-public ruby-rubocop-rspec
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 184/223] gnu: ruby-prawn-svg: Fix build.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-83-maxim.cournoyer@gmail.com
The test suite fails two tests when using a newer rspec version.

* gnu/packages/ruby.scm (ruby-prawn-svg)
[arguments]: Delete the interface_spec.rb test suite in the check phase.
---

gnu/packages/ruby.scm | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 607fefb9af..fb85b4dde3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1529,15 +1529,19 @@ (define-public ruby-prawn-svg
"0mbxzw7r7hv43db9422flc24ib9d8bdy1nasbni2h998jc5a5lb6"))))
(build-system ruby-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'do-not-use-bundler
- (lambda _
- (substitute* "spec/spec_helper.rb"
- ((".*[Bb]undler.*") ""))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "rspec" "-Ilib" "-rprawn-svg")))))))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'do-not-use-bundler
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ ((".*[Bb]undler.*") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; This test fails due to the recent rspec 3.12 used
+ ;; (see: https://github.com/mogest/prawn-svg/issues/151).
+ (delete-file "spec/prawn/svg/interface_spec.rb")
+ (invoke "rspec" "-Ilib" "-rprawn-svg")))))))
(native-inputs (list ruby-rspec))
(propagated-inputs (list ruby-css-parser ruby-prawn))
(synopsis "SVG renderer for the Prawn PDF library")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 179/223] gnu: Add fpm.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-78-maxim.cournoyer@gmail.com
* gnu/packages/package-management.scm (fpm): New variable.
---

gnu/packages/package-management.scm | 80 +++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)

Toggle diff (121 lines)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index d27c8a91ef..ad366c7392 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -59,6 +59,7 @@ (define-module (gnu packages package-management)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages debian)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages dbm)
#:use-module (gnu packages docbook)
@@ -87,6 +88,7 @@ (define-module (gnu packages package-management)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
+ #:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages patchutils)
#:use-module (gnu packages perl)
@@ -98,6 +100,7 @@ (define-module (gnu packages package-management)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
@@ -117,6 +120,7 @@ (define-module (gnu packages package-management)
#:use-module (guix build-system guile)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system ruby)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
@@ -2003,6 +2007,82 @@ (define-public flatpak
sandboxed desktop applications on GNU/Linux.")
(license license:lgpl2.1+)))
+(define-public fpm
+ (package
+ (name "fpm")
+ (version "1.15.1")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/jordansissel/fpm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1m2zxf7wyk7psvm611yxs68hnwm0pyqilsmcq3x791hz7rvbg68w"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("lib/fpm/util.rb"
+ "spec/fpm/util_spec.rb"
+ "spec/fpm/package/rpm_spec.rb")
+ (("\"/bin/sh\"")
+ (string-append "\"" (search-input-file inputs "bin/sh")
+ "\"")))))
+ (add-after 'extract-gemspec 'disable-problematic-tests
+ ;; Disable some tests which are failing (see:
+ ;; https://github.com/jordansissel/fpm/issues/2000).
+ (lambda _
+ ;; There are 4 'NoMethodError' test failures in the
+ ;; command_spec suite, for unknown reasons.
+ (delete-file "spec/fpm/command_spec.rb")
+ (substitute* "spec/fpm/package_spec.rb"
+ (("@oldtmp = ENV\\[\"TMP\"]" all)
+ "skip('fails with guix')"))
+ (substitute* "spec/fpm/package/cpan_spec.rb"
+ ;; This test is marked as expected to fail (pending) when
+ ;; TRAVIS_OS_NAME is set, but passes with Guix; skip it.
+ (("it \"should unpack tarball containing" all)
+ (string-append "x" all)))
+ (substitute* "spec/fpm/package/gem_spec.rb"
+ ;; This test fails for unknown reason; perhaps a patched
+ ;; shebang.
+ (("it 'should not change the shebang'" all)
+ (string-append "x" all)))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Set TRAVIS_OS_NAME to skip tests known to cause
+ ;; problems in minimal environments.
+ (setenv "TRAVIS_OS_NAME" "GNU Guix")
+ (invoke "rspec")))))))
+ (native-inputs
+ (list dpkg
+ libarchive
+ node
+ perl-app-cpanminus
+ python
+ ruby-rspec
+ squashfs-tools
+ zstd))
+ (inputs
+ (list bash-minimal
+ ruby-arr-pm
+ ruby-backports
+ ruby-cabin
+ ruby-clamp
+ ruby-pleaserun
+ ruby-rexml
+ ruby-stud))
+ (home-page "https://github.com/jordansissel/fpm/")
+ (synopsis "Package building and mangling tool")
+ (description "@command{fpm} is a command to convert directories, RPMs,
+Python eggs, Ruby gems, and more to RPMs, debs, Solaris packages and more.")
+ (license license:expat)))
+
(define-public akku
(package
(name "akku")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 186/223] gnu: Add ruby-minitest-profile.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-85-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-minitest-profile): New variable.
---

gnu/packages/ruby.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index fb85b4dde3..3566d83d82 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5284,6 +5284,23 @@ (define-public ruby-minitest-power-assert
(home-page "https://github.com/hsbt/minitest-power_assert")
(license license:bsd-2)))
+(define-public ruby-minitest-profile
+ (package
+ (name "ruby-minitest-profile")
+ (version "0.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest-profile" version))
+ (sha256
+ (base32
+ "13h4nwbq6yv7hsaa7dpj90lry4rc5qqnpzvm9n2s57mm2xi31xfa"))))
+ (build-system ruby-build-system)
+ (synopsis "Display the slowest tests in a MiniTest suite")
+ (description "This package provides a MiniTest plugin for displaying the
+slowest tests in a minitest suite.")
+ (home-page "https://github.com/nmeans/minitest-profile")
+ (license license:expat)))
+
(define-public ruby-minitest-pretty-diff
;; Use git reference because gem is out of date and does not contain testing
;; script. There are no releases on GitHub.
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 187/223] gnu: ruby-terminal-table: Update to 3.0.2.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-86-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-terminal-table): Update to 3.0.2.
[source]: Fetch via git.
[arguments]: Delete remove-gemfile-lock phase.
[native-inputs]: Add ruby-term-ansicolor.
---

gnu/packages/ruby.scm | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)

Toggle diff (46 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 3566d83d82..b57940f27d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13183,20 +13183,19 @@ (define-public ruby-pathutil
(define-public ruby-terminal-table
(package
(name "ruby-terminal-table")
- (version "2.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "terminal-table" version))
- (sha256
- (base32
- "18rbrh464ysqbdv53iwj0r8frshn65566kyj044cp3x9c2754jwh"))))
+ (version "3.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tj/terminal-table")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c3f7ng3lxq962n8sbmlsvjx6srh5i801wzsyhxmfz2g880f5jps"))))
(arguments
'(#:phases
(modify-phases %standard-phases
- (add-before 'check 'remove-gemfile-lock
- (lambda _
- (delete-file "Gemfile.lock")))
(add-before 'check 'remove-unnecessary-dependencies
(lambda _
(substitute* "terminal-table.gemspec"
@@ -13212,7 +13211,7 @@ (define-public ruby-terminal-table
(propagated-inputs
(list ruby-unicode-display-width))
(native-inputs
- (list ruby-rspec))
+ (list ruby-rspec ruby-term-ansicolor))
(home-page "https://github.com/tj/terminal-table")
(synopsis "Simple, feature rich ASCII table generation library")
(description
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 189/223] gnu: ruby-shoulda-context: Update to 2.0.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-88-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-shoulda-context): Update to 2.0.0.
---

gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b08cb997cc..3041297d97 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10078,14 +10078,14 @@ (define-public ruby-sqlite3
(define-public ruby-shoulda-context
(package
(name "ruby-shoulda-context")
- (version "1.2.2")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "shoulda-context" version))
(sha256
(base32
- "1l0ncsxycb4s8n47dml97kdnixw4mizljbkwqc3rh05r70csq9bc"))))
+ "0d1clcp92jv8756h09kbc55qiqncn666alx0s83za06q5hs4bpvs"))))
(build-system ruby-build-system)
(arguments
`(#:phases
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 190/223] gnu: ruby-shoulda-context: Honor #:tests?.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-89-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-shoulda-context)
[arguments]: Honor #:tests? in check phase.
---

gnu/packages/ruby.scm | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 3041297d97..51a2fff8c6 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10091,10 +10091,11 @@ (define-public ruby-shoulda-context
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _
- ;; Do not run tests to avoid circular dependence with rails.
- ;; Instead just import the library to test.
- (invoke "ruby" "-Ilib" "-r" "shoulda-context"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Do not run tests to avoid circular dependence with rails.
+ ;; Instead just import the library to test.
+ (invoke "ruby" "-Ilib" "-r" "shoulda-context")))))))
(synopsis "Test::Unit context framework extracted from Shoulda")
(description
"@code{shoulda-context} is the context framework extracted from Shoulda.
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 192/223] gnu: ruby-shoulda-matchers: Honor #:tests?.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-91-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-shoulda-matchers)
[arguments]: Honor #:tests? in check phase.
---

gnu/packages/ruby.scm | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index bd24f6e7e1..ceec6fe291 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10121,10 +10121,11 @@ (define-public ruby-shoulda-matchers
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _
- ;; Do not run tests to avoid circular dependence with rails. Instead
- ;; just import the library to test.
- (invoke "ruby" "-Ilib" "-r" "shoulda-matchers"))))))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Do not run tests to avoid circular dependence with rails. Instead
+ ;; just import the library to test.
+ (invoke "ruby" "-Ilib" "-r" "shoulda-matchers")))))))
(propagated-inputs
(list ruby-activesupport))
(synopsis "Collection of testing matchers extracted from Shoulda")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 031/223] gnu: Add ruby-language-server-protocol.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-31-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-language-server-protocol): New variable.
---
gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 380783721b..265dd6e50a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -11758,6 +11758,44 @@ (define-public ruby-sprockets
(home-page "https://github.com/rails/sprockets")
(license license:expat)))
+(define-public ruby-language-server-protocol
+ (package
+ (name "ruby-language-server-protocol")
+ (version "3.17.0.3")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/mtsmfm/language_server-protocol-ruby")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f2g301fz99c6nkca39s9227brlycznv8a9r4b4i99rg25m91lc6"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'replace-git-ls-files
+ (lambda _
+ (substitute* "language_server-protocol.gemspec"
+ (("git ls-files -z([^`]*)" _ files)
+ (string-append "find " files
+ " -type f -not -regex '.*\\.gem$'"
+ " -print0 | sort -z"))))))))
+ (native-inputs
+ (list ruby-activesupport
+ ruby-benchmark-ips
+ ruby-m
+ ruby-minitest
+ ruby-minitest-power-assert
+ ruby-pry-byebug))
+ (synopsis "Language Server Protocol (LSP) development kit for Ruby")
+ (description "This package provides a Language Server Protocol (LSP)
+development kit for Ruby.")
+ (home-page "https://github.com/mtsmfm/language_server-protocol-ruby")
+ (license license:expat)))
+
(define-public ruby-mustache
(package
(name "ruby-mustache")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 194/223] gnu: ruby-shoulda: Honor #:tests?.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-93-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-shoulda)
[arguments]: Honor #:tests? in check phase.
---

gnu/packages/ruby.scm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ad4ca4b926..c359a9364f 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10152,9 +10152,11 @@ (define-public ruby-shoulda
`(#:phases
(modify-phases %standard-phases
(replace 'check
- ;; Don't run tests to avoid circular dependence with rails. Instead
- ;; just import the library to test.
- (lambda _ (invoke "ruby" "-Ilib" "-r" "shoulda")))
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Don't run tests to avoid circular dependence with rails.
+ ;; Instead just import the library to test.
+ (invoke "ruby" "-Ilib" "-r" "shoulda"))))
(add-after 'extract-gemspec 'relax-requirements
(lambda _
(substitute* "shoulda.gemspec"
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 200/223] gnu: Add ruby-ruby-version.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-99-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-ruby-version): New variable.
---

gnu/packages/ruby.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c11ced887d..40633a5cc3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6343,6 +6343,46 @@ (define-public ruby-ruby-parser
back to Ruby via the @code{ruby2ruby} library.")
(license license:expat)))
+(define-public ruby-ruby-version
+ (package
+ (name "ruby-ruby-version")
+ (version "1.0.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby_version" version))
+ (sha256
+ (base32
+ "0lvc7bd5ps3w2vq2wb02i0pi3vfcx2rnckx2ix4rjym1qf52kb2j"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'delete-gem-files
+ ;; There are some pre-built files in the source, and
+ ;; registered in the .gemspec (see:
+ ;; https://github.com/janlelis/ruby_version/issues/1).
+ (lambda _
+ (delete-file-recursively "pkg")
+ (substitute* "ruby_version.gemspec"
+ (("\"pkg/ruby_version-1.0.0.gem\".freeze, ")
+ "")
+ (("\"pkg/ruby_version-1.0.1.gem\".freeze, ")
+ ""))))
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (delete-file "Gemfile.lock")
+ (substitute* "ruby_version.gemspec"
+ (("\"Gemfile.lock\".freeze, ") "")
+ ;; Allow a newers versions of development dependencies.
+ (("~>") ">=")))))))
+ (native-inputs (list ruby-rdoc ruby-rubygems-tasks ruby-rspec))
+ (synopsis "Ruby class for checking the Ruby version")
+ (description "This package provides a @code{RubyVersion} class which
+offers a convenient Domain Specific Language (DSL) for checking for the right
+Ruby version.")
+ (home-page "https://github.com/janlelis/ruby_version")
+ (license license:expat)))
+
(define-public ruby-prawn-manual-builder
(package
(name "ruby-prawn-manual-builder")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 195/223] gnu: ruby-unf-ext: Update to 0.0.8.2.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-94-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-unf-ext): Update to 0.0.8.2.
---

gnu/packages/ruby.scm | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

Toggle diff (32 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c359a9364f..a3d7784f01 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7686,13 +7686,13 @@ (define-public ruby-netrc
(define-public ruby-unf-ext
(package
(name "ruby-unf-ext")
- (version "0.0.7.6")
+ (version "0.0.8.2")
(source (origin
(method url-fetch)
(uri (rubygems-uri "unf_ext" version))
(sha256
(base32
- "1ll6w64ibh81qwvjx19h8nj7mngxgffg7aigjx11klvf5k2g4nxf"))))
+ "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -7704,8 +7704,7 @@ (define-public ruby-unf-ext
;; rake-compiler-dock is listed in the gemspec, but only
;; required when cross-compiling.
(substitute* "unf_ext.gemspec"
- ((".*rake-compiler-dock.*") ""))
- #t)))))
+ ((".*rake-compiler-dock.*") "")))))))
(native-inputs
(list bundler ruby-rake-compiler ruby-test-unit))
(synopsis "Unicode normalization form support library")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 196/223] gnu: jekyll: Use gexps and remove input labels.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-95-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (jekyll) [arguments]: Use gexps, remove trailing #t.
[propagated-inputs]: Remove labels.
---

gnu/packages/ruby.scm | 46 +++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 24 deletions(-)

Toggle diff (60 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a3d7784f01..67a466e1ad 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13232,31 +13232,29 @@ (define-public jekyll
"0cqkh78jw8scrajyx5nla0vwm9fvp2qql3kdcvvplcq9mazy8snq"))))
(build-system ruby-build-system)
(arguments
- ;; No rakefile, but a test subdirectory.
- `(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'fix-i18n
- (lambda _
- (substitute* ".gemspec"
- (("~> 0.7") ">= 0.7")
- (("~> 1.14") ">= 1.14"))
- #t)))))
+ (list #:tests? #f ;no rakefile, but a test subdirectory
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'fix-i18n
+ (lambda _
+ (substitute* ".gemspec"
+ (("~> 0.7") ">= 0.7")
+ (("~> 1.14") ">= 1.14")))))))
(propagated-inputs
- `(("ruby-addressable" ,ruby-addressable)
- ("ruby-colorator" ,ruby-colorator)
- ("ruby-em-websocket" ,ruby-em-websocket)
- ("ruby-i18n" ,ruby-i18n)
- ("ruby-jekyll-sass-converter" ,ruby-jekyll-sass-converter)
- ("ruby-jekyll-watch" ,ruby-jekyll-watch)
- ("ruby-kramdown" ,ruby-kramdown-parser-gfm)
- ("ruby-liquid" ,ruby-liquid)
- ("ruby-mercenary" ,ruby-mercenary)
- ("ruby-pathutil" ,ruby-pathutil)
- ("ruby-rouge" ,ruby-rouge)
- ("ruby-safe-yaml" ,ruby-safe-yaml)
- ("ruby-sassc" ,ruby-sassc)
- ("ruby-terminal-table" ,ruby-terminal-table)))
+ (list ruby-addressable
+ ruby-colorator
+ ruby-em-websocket
+ ruby-i18n
+ ruby-jekyll-sass-converter
+ ruby-jekyll-watch
+ ruby-kramdown-parser-gfm
+ ruby-liquid
+ ruby-mercenary
+ ruby-pathutil
+ ruby-rouge
+ ruby-safe-yaml
+ ruby-sassc
+ ruby-terminal-table))
(home-page "https://jekyllrb.com/")
(synopsis "Static site generator")
(description "Jekyll is a simple, blog aware, static site generator.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 053/223] gnu: Remove ruby-cucumber-create-meta.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-53-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cucumber-create-meta): Delete variable.
---
gnu/packages/ruby.scm | 33 ---------------------------------
1 file changed, 33 deletions(-)

Toggle diff (46 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d7a5cd81a5..ac8f30116a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8162,39 +8162,6 @@ (define-public ruby-sys-uname
(home-page "https://github.com/djberg96/sys-uname")
(license license:asl2.0)))
-(define-public ruby-cucumber-create-meta
- (package
- (name "ruby-cucumber-create-meta")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "cucumber-create-meta" version))
- (sha256
- (base32
- "0i0i3arymjrnjk72mg79w1a11607x4d0lrqafm9sz2gq9l52zasw"))))
- (build-system ruby-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'extract-gemspec 'relax-version-requirements
- (lambda _
- (substitute* ".gemspec"
- ((" 12\\.2")
- " 12.1"))
- #t))
- (replace 'check
- (lambda _
- (invoke "rspec"))))))
- (native-inputs
- (list ruby-rspec))
- (propagated-inputs
- (list ruby-cucumber-messages ruby-sys-uname))
- (synopsis "Function to create @code{Meta} messages for Cucumber Ruby")
- (description "The @code{createMeta} utility function allows generating
-system-specific @code{Meta} messages for Cucumber Ruby.")
- (home-page "https://github.com/cucumber/cucumber/tree/master/create-meta/ruby")
- (license license:expat)))
-
(define-public ruby-cucumber-html-formatter
(package
(name "ruby-cucumber-html-formatter")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 198/223] gnu: Add ruby-rspec-stubbed-env.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-97-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rspec-stubbed-env): New variable.
---

gnu/packages/ruby.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f19c02811f..79221b1bab 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -952,6 +952,42 @@ (define-public ruby-rspec-rerun
(home-page "https://github.com/dblock/rspec-rerun")
(license license:expat)))
+(define-public ruby-rspec-stubbed-env
+ ;; There is no release nor tag (see:
+ ;; https://github.com/pboling/rspec-stubbed_env/issues/7).
+ (let ((revision "0")
+ (commit "9d767dec77a6d130f6ad83c48a00a5c81b14b9fa"))
+ (package
+ (name "ruby-rspec-stubbed-env")
+ (version (git-version "1.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pboling/rspec-stubbed_env")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1dy4m04h613dp0s59rknjd6h4lqs1h17mffc5kd8kh046mk8nr1p"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'streamline-requirements
+ (lambda _
+ ;; Remove extraneous development dependencies.
+ (substitute* "rspec-stubbed_env.gemspec"
+ ((".*bundler.*") "")
+ ((".*rubocop.*") "")))))))
+ (native-inputs (list ruby-simplecov))
+ (propagated-inputs (list ruby-rspec))
+ (synopsis "RSpec plugin to stub environment variables")
+ (description
+ "This RSpec plugin can be used to stub environment variables in a scoped
+context for testing.")
+ (home-page "https://github.com/pboling/rspec-stubbed_env")
+ (license license:expat))))
+
(define-public ruby-rspec-wait
(package
(name "ruby-rspec-wait")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:23 +0100
[PATCH 199/223] gnu: Add ruby-silent-stream.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-98-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-silent-stream): New variable.
---

gnu/packages/ruby.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 79221b1bab..c11ced887d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3629,6 +3629,24 @@ (define-public ruby-rubyzip
(home-page "https://github.com/rubyzip/rubyzip")
(license license:bsd-2)))
+(define-public ruby-silent-stream
+ (package
+ (name "ruby-silent-stream")
+ (version "1.0.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "silent_stream" version))
+ (sha256
+ (base32
+ "10381fpvjzfjvhgfyv700607fpa29firgf52w5w5536m4fh6x63m"))))
+ (build-system ruby-build-system)
+ (synopsis "ActiveSupport stream silencing without ActiveSupport")
+ (description "SilentStream is an extraction of some parts of
+ActiveSupport's Kernel Reporting Core Extentions around silencing IO
+streams.")
+ (home-page "https://github.com/pboling/silent_stream")
+ (license license:expat)))
+
(define-public ruby-simplecov-html
(package
(name "ruby-simplecov-html")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 055/223] gnu: ruby-aruba: Update to 2.1.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-55-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-aruba): Update to 2.1.0.
[source]: Use git.
[arguments]: Use gexps. Rename patch phase to 'patch-paths, and update.
Rename remove-unnecessary-dependencies phase to relax-requirements and update.
Move the check phase after the install phase, and add a new set-GEM_PATH
phase.
[native-inputs]: Remove ruby-fuubar. Add ruby-rake-manifest. Move bundler
to...
[propagated-inputs]: ... here. Remove ruby-ffi and ruby-yard.
---
gnu/packages/ruby.scm | 107 +++++++++++++++++++++++-------------------
1 file changed, 58 insertions(+), 49 deletions(-)

Toggle diff (127 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index fe5f4466f3..132a06bc57 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8075,62 +8075,71 @@ (define-public ruby-gherkin-ruby
(define-public ruby-aruba
(package
(name "ruby-aruba")
- (version "0.14.14")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "aruba" version))
- (sha256
- (base32
- "0l2mfpdxc03gdrbwc2hv4vdhjhqhfcdp6d02j05j64ncpi9srlqn"))))
+ (version "2.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cucumber/aruba")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1mmlgqhi6yww3z34hmrrnha2rygkv6kx0q962z31dqxjkcv23yfd"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "spec"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda _
- (substitute* "spec/aruba/api_spec.rb"
- ;; This resolves some errors in the specs
- ;;
- ;; undefined method `parse' for Time:Class
- (("require 'spec_helper'")
- "require 'spec_helper'\nrequire 'time'"))
- ;; Avoid shebang issues in this spec file
- (substitute* "spec/aruba/matchers/command_spec.rb"
- (("/usr/bin/env bash")
- (which "bash")))
- #t))
- (add-before 'check 'remove-unnecessary-dependencies
- (lambda _
- (substitute* "Gemfile"
- ((".*byebug.*") "\n")
- ((".*pry.*") "\n")
- ((".*yaml.*") "\n")
- ((".*bcat.*") "\n")
- ((".*kramdown.*") "\n")
- ((".*rubocop.*") "\n")
- ((".*cucumber-pro.*") "\n")
- ((".*cucumber.*") "\n")
- ((".*license_finder.*") "\n")
- ((".*rake.*") "gem 'rake'\n")
- ((".*relish.*") "\n"))
- (substitute* "aruba.gemspec"
- (("spec\\.add\\_runtime\\_dependency 'cucumber'.*")
- "spec.add_runtime_dependency 'cucumber'"))
- #t))
- (add-before 'check 'set-home
- (lambda _ (setenv "HOME" "/tmp") #t)))))
+ (list
+ ;; XXX: Only run the "spec" target and not the "cucumber" one, as it is
+ ;; slow and has multiple unexplained test failures.
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ ;; This test file relies on a dynamically generated script;
+ ;; patch its #!/bin/bash shebang.
+ (substitute* "spec/aruba/api/commands_spec.rb"
+ (("/bin/bash")
+ (which "bash")))))
+ (add-before 'check 'relax-requirements
+ ;; Many development requirements are not actually needed.
+ (lambda _
+ (substitute* "aruba.gemspec"
+ (("\\[\">= 0.18.0\", \"< 0.22.0\"]") ;simplecov
+ "\">= 0.18.0\"")
+ ((".*appraisal.*") "")
+ ((".*pry.*") "")
+ ((".*kramdown.*") "")
+ ((".*rubocop.*") "")
+ ((".*yard-junk.*") ""))
+ (substitute* "Rakefile"
+ ((".*require \"rubocop/rake_task\".*") "")
+ ((".*require \"yard-junk/rake\".*") "")
+ ((".*RuboCop::RakeTask.new.*") "")
+ ((".*YardJunk::Rake.define_task.*") ""))))
+ ;; The tests rely on the Gem being installed, so move the check
+ ;; phase after the install phase.
+ (delete 'check)
+ (add-after 'install 'check
+ (assoc-ref %standard-phases 'check))
+ (add-before 'check 'set-GEM_PATH
+ (lambda _
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby"))))
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
(native-inputs
- (list bundler ruby-rspec ruby-fuubar ruby-simplecov))
+ (list ruby-rake-manifest
+ ruby-rspec
+ ruby-simplecov))
(propagated-inputs
- (list ruby-childprocess
+ (list bundler
+ ruby-childprocess
ruby-contracts
ruby-cucumber
- ruby-ffi
ruby-rspec-expectations
- ruby-thor
- ruby-yard))
+ ruby-thor))
(synopsis "Test command-line applications with Cucumber, RSpec or Minitest")
(description
"Aruba is an extension for Cucumber, RSpec and Minitest for testing
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:14 +0100
[PATCH 087/223] gnu: Add ruby-syntax-tree.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-87-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-syntax-tree): New variable.
---
gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1ea90a543b..492468c296 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12226,6 +12226,44 @@ (define-public ruby-language-server-protocol
(home-page "https://github.com/mtsmfm/language_server-protocol-ruby")
(license license:expat)))
+(define-public ruby-syntax-tree
+ (package
+ (name "ruby-syntax-tree")
+ (version "6.0.2")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby-syntax-tree/syntax_tree")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0p3gbc0y2ld9svhhx95nifqf67gjfyy478h6mzm7zz0dapi8v8jm"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; The tests rely on the Gem being installed, so move the check
+ ;; phase after the install phase.
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (setenv "GEM_PATH" (string-append
+ #$output "/lib/ruby/vendor_ruby:"
+ (getenv "GEM_PATH")))
+ (when tests?
+ (invoke "rake" "test")))))))
+ (native-inputs (list ruby-rubocop-ast ruby-simplecov))
+ (propagated-inputs (list ruby-prettier-print))
+ (synopsis "Fast Ruby parser and formatter")
+ (description "Syntax Tree is a suite of tools built on top of the internal
+CRuby parser. It provides the ability to generate a syntax tree from source,
+as well as the tools necessary to inspect and manipulate that syntax tree. It
+can be used to build formatters, linters, language servers, and more.")
+ (home-page "https://github.com/ruby-syntax-tree/syntax_tree")
+ (license license:expat)))
+
(define-public ruby-mustache
(package
(name "ruby-mustache")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:13 +0100
[PATCH 067/223] gnu: ruby-activejob: Update to 7.0.4.3 and enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320171635.11184-67-maxim.cournoyer@gmail.com
* gnu/packages/rails.scm (ruby-activejob): Update to 7.0.4.3.
[source]: Use ruby-rails-monorepo.
[arguments]: Remove #:tests? argument. Add #:phases argument.
[native-inputs]: New field.
---
gnu/packages/rails.scm | 57 ++++++++++++++++++++++++++----------------
1 file changed, 36 insertions(+), 21 deletions(-)

Toggle diff (70 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 338c92ddaa..bff4e09264 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -522,27 +522,42 @@ (define-public ruby-actioncable
(define-public ruby-activejob
(package
- (name "ruby-activejob")
- (version "6.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "activejob" version))
- (sha256
- (base32
- "175d8q0achdlsxjsvq0w9znvfqfkgbj75kbmdrvg4fb277wwplmf"))))
- (build-system ruby-build-system)
- (arguments
- '(;; No included tests
- #:tests? #f))
- (propagated-inputs
- (list ruby-activesupport ruby-globalid))
- (synopsis "Declare job classes for multiple backends")
- (description
- "ActiveJob allows declaring job classes in a common way across Rails
-applications.")
- (home-page "https://rubyonrails.org/")
- (license license:expat)))
+ (name "ruby-activejob")
+ (version %ruby-rails-version)
+ (source ruby-rails-monorepo)
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'chdir
+ (lambda _
+ (chdir "activejob")))
+ (add-after 'chdir 'delete-problematic-tests
+ (lambda _
+ (substitute* "Rakefile"
+ ;; Remove the adapters that aren't yet packaged or would
+ ;; introduce cyclic dependencies.
+ (("backburner ") "")
+ (("resque ") "")
+ (("sidekiq ") "")
+ (("sneakers ") "")
+ (("sucker_punch ") ""))
+ (substitute* "test/cases/exceptions_test.rb"
+ (("ActiveJob::QueueAdapters::SneakersAdapter") "")))))))
+ (native-inputs
+ (list ruby-queue-classic
+ ruby-delayed-job
+ ruby-que
+ ruby-zeitwerk))
+ (propagated-inputs
+ (list ruby-activesupport
+ ruby-globalid))
+ (synopsis "Declare job classes for multiple backends")
+ (description "ActiveJob allows declaring job classes in a common way
+across Rails applications.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
(define-public ruby-activestorage
(package
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 125/223] gnu: Add ruby-rspec-debug.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-24-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rspec-debug): New variable.
---

gnu/packages/ruby.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1d89ff9006..fbf7c2d637 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -993,6 +993,37 @@ (define-public ruby-rspec-2
(propagated-inputs
(list ruby-rspec-core-2 ruby-rspec-mocks-2 ruby-rspec-expectations-2))))
+(define-public ruby-rspec-debug
+ (package
+ (name "ruby-rspec-debug")
+ (version "0.2.0")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ko1/rspec-debug")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "125p1zxjznkk765nyqvkksw8x1nbm7xk4sjc1wza2fyp5hvyiddn"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ (("~>") ">=")))))))
+ (native-inputs (list ruby-rspec))
+ (propagated-inputs (list ruby-debug))
+ (synopsis "Invoke Ruby debugger when spec fails")
+ (description "This package can be used to have the execution stopped for
+inspection in the Ruby debugger upon encountering a failure. To use it, set
+the @env{RSPEC_DEBUG} environment variable to @samp{true} then invoke the
+@command{rspec} command as usual.")
+ (home-page "https://github.com/ko1/rspec-debug")
+ (license license:expat)))
+
;; Bundler is yet another source of circular dependencies, so we must disable
;; its test suite as well.
(define-public bundler
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 202/223] gnu: Add ruby-rspec-block-is-expected.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-1-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-rspec-block-is-expected): New variable.
---

gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b04eef72da..1053dcd758 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -929,6 +929,39 @@ (define-public ruby-rspec-mocks-2
(propagated-inputs
(list ruby-diff-lcs))))
+(define-public ruby-rspec-block-is-expected
+ (package
+ (name "ruby-rspec-block-is-expected")
+ (version "1.0.2")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/pboling/rspec-block_is_expected")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1w8mj00k8am24yw7lbhg616m111p7h7bbfxaw7np4i7wnlwzm8fk"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask.new") ""))
+ ;; Contains extraneous requirements not actually
+ ;; needed for the test suite.
+ (delete-file "Gemfile"))))))
+ (native-inputs (list ruby-rspec-pending-for ruby-rspec-expectations))
+ (propagated-inputs (list ruby-rspec-core))
+ (synopsis "Simplify testing of blocks in RSpec")
+ (description "This RSpec plugin allows you to use @code{block_is_expected}
+similarly to how you would use @code{is_expected} if a block was wrapping the
+subject.")
+ (home-page "https://github.com/pboling/rspec-block_is_expected")
+ (license license:expat)))
+
(define-public ruby-rspec-pending-for
(package
(name "ruby-rspec-pending-for")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 203/223] gnu: Add ruby-version-gem.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-2-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-version-gem): New variable.
---

gnu/packages/ruby.scm | 53 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (66 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1053dcd758..92fc99575d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8906,6 +8906,59 @@ (define-public ruby-varint
(home-page "https://github.com/liquidm/varint")
(license license:bsd-3)))
+(define-public ruby-version-gem
+ (package
+ (name "ruby-version-gem")
+ (version "1.1.2")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://gitlab.com/oauth-xx/version_gem")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17y4dydlczd5xvvwfy94x63d5wi14cdkfhi6g94fm1sgsxxzzmq0"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ (("^linting = .*")
+ "linting = false\n")
+ (("^coverage = .*")
+ "coverage = false\n")
+ (("^debug = .*")
+ "debug = false\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("^RUN_COVERAGE = .*")
+ "RUN_COVERAGE = false\n")
+ (("^ALL_FORMATTERS = .*")
+ "ALL_FORMATTERS = false\n"))))
+ (add-before 'build 'drop-signing-key-requirement
+ (lambda _
+ (substitute* "version_gem.gemspec"
+ (("spec.signing_key =.*")
+ "spec.signing_key = nil"))))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (substitute* "spec/version_gem/ruby_spec.rb"
+ ;; The test validates the minimum version of
+ ;; Ruby to be 2.7.7, but because our Ruby is
+ ;; 2.7.4 grafted with 2.7.7, the version seen is
+ ;; 2.7.4 and it fails.
+ (("it 'returns true when current ruby greater \
+than minimum'" all)
+ (string-append "x" all))))))))
+ (native-inputs (list ruby-rspec ruby-rspec-block-is-expected))
+ (synopsis "Improved @code{Version} module for Ruby")
+ (description "VersionGem aims to provide introspection of a @code{Version}
+module based on a @code{Version::VERSION} constant string wile not interfering
+with gemspec parsing where the @code{VERSION} string is traditionally used.")
+ (home-page "https://gitlab.com/oauth-xx/version_gem")
+ (license license:expat)))
+
;;; Note: Do NOT update to a newer version; this is the last commit that is
;;; still licensed as free software, the project having switched to the
;;; Hippocratic license afterward (see:
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 204/223] gnu: ruby-hashie: Update to 5.0.0 and enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-3-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-hashie): Update to 5.0.0.
[arguments]: Enable tests. Add #:test-target and #:phases arguments.
[native-inputs]: New field.
---

gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)

Toggle diff (52 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 92fc99575d..520dd70a08 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13054,18 +13054,37 @@ (define-public ruby-rouge
(define-public ruby-hashie
(package
(name "ruby-hashie")
- (version "3.6.0")
+ (version "5.0.0")
(source (origin
- (method url-fetch)
- (uri (rubygems-uri "hashie" version))
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/hashie/hashie")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh"))))
+ "0ihami0cdn71cvwzwgr3vxqvqi0ifqsna0vlyqiqlhsnf93w0cm8"))))
(build-system ruby-build-system)
- (native-inputs
- (list bundler))
- (arguments `(#:tests? #f)); FIXME: Could not locate Gemfile or .bundle/ directory
- (home-page "https://github.com/intridea/hashie")
+ (arguments
+ (list #:test-target "spec"
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-bundler
+ (lambda _
+ (substitute* "Rakefile"
+ ((".*require 'bundler'.*") "")
+ ((".*Bundler.setup.*") "")
+ (("Bundler::GemHelper\\.install_tasks") ""))))
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake_task'") "")
+ (("RuboCop::RakeTask.new") ""))))
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ ;; Contains multiple extraneous dependencies.
+ (delete-file "Gemfile"))))))
+ (native-inputs (list ruby-json ruby-pry ruby-rspec ruby-rspec-pending-for))
+ (home-page "https://github.com/hashie/hashie")
(synopsis "Extensions to Ruby Hashes")
(description "Hashie is a collection of classes and mixins that make Ruby
hashes more powerful.")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:22 +0100
[PATCH 133/223] gnu: ruby-puma: Update to 6.1.1 and enable test suite.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172349.12752-32-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-puma): Update to 6.1.1.
[source]: Use git.
[arguments]: Remove #:tests? argument. Adjust fix-gemspec phase. Add the
disable-rubocop, use-rack-2, increase-resource-limits,
disable-problematic-tests, relax-test-case-timeout, set-home and set-paths
phases. Override the check phase.
[native-inputs]: New field.
[inputs]: Add ruby-nio4r.
---

gnu/packages/ruby.scm | 109 ++++++++++++++++++++++++++++++++++++------
1 file changed, 95 insertions(+), 14 deletions(-)

Toggle diff (130 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ca8d381359..13d299fd3c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10804,28 +10804,109 @@ (define-public ruby-ttfunk
(define-public ruby-puma
(package
(name "ruby-puma")
- (version "3.9.1")
+ (version "6.1.1")
(source
(origin
- (method git-fetch)
- ;; Fetch from GitHub because distributed gem does not contain tests.
+ (method git-fetch) ;for tests
(uri (git-reference
- (url "https://github.com/puma/puma")
- (commit (string-append "v" version))))
+ (url "https://github.com/puma/puma")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1kj75k81iik3aj73pkc9ixj9rwf95ipkyma65n28m64dgw02qi1f"))))
+ "0v4nn3z0bj0ry0gpx1hsf5mzkinsx9sv716j4jf2nb1x6hcwv993"))))
(build-system ruby-build-system)
(arguments
- `(#:tests? #f ; Tests require an out-dated version of minitest.
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'fix-gemspec
- (lambda _
- (substitute* "puma.gemspec"
- (("git ls-files") "find * |sort")))))))
- (inputs (list openssl))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'disable-rubocop
+ (lambda _
+ (setenv "PUMA_NO_RUBOCOP" "1")))
+ (add-after 'unpack 'use-rack-2
+ (lambda _
+ (setenv "PUMA_CI_RACK_2" "1")))
+ (add-before 'build 'increase-resource-limits
+ (lambda _
+ ;; The test suite requires a higher number of open files. Try
+ ;; increasing the soft resource limit of max open files to 2048,
+ ;; or equal to the hard limit, whichever is lower.
+ (call-with-values (lambda () (getrlimit 'nofile))
+ (lambda (soft hard)
+ (when (and soft (< soft 2048))
+ (if hard
+ (setrlimit 'nofile (min hard 2048) hard)
+ (setrlimit 'nofile 2048 #f))
+ (format
+ #t "increased maximum number of open files from ~d to ~d~%"
+ soft (if hard (min hard 2048) 2048)))))))
+ (add-before 'build 'fix-gemspec
+ (lambda _
+ (substitute* "puma.gemspec"
+ (("`git ls-files -- bin docs ext lib tools`")
+ "`find bin docs ext lib tools -type f |sort`"))))
+ (delete 'check) ;moved after install
+ (add-after 'install 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rake" "test"))))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ (let-syntax ((skip-tests
+ (syntax-rules ()
+ ((_ file test ...)
+ (substitute* file
+ (((string-append "def " test ".*") all)
+ (string-append
+ all " skip('fails on guix')\n")) ...)))))
+ ;; The test failures were reported at:
+ ;; https://github.com/puma/puma/issues/3093, but appear to be
+ ;; caused by the Guix build container, perhaps the lack of
+ ;; zombie process reaping (see:
+ ;; https://issues.guix.gnu.org/30948).
+ ;; All the tests in the 'test_worker_gem_independence.rb'
+ ;; module fail with "Expected false to be truthy.".
+ (delete-file "test/test_worker_gem_independence.rb")
+ (skip-tests "test/test_integration_ssl_session.rb"
+ ;; The TLS 1.2 test fails for unknown reasons.
+ "test_off_tls1_2")
+ (skip-tests "test/test_integration_cluster.rb"
+ "test_fork_worker_on_refork"
+ "test_culling_strategy_oldest_fork_worker"
+ "test_usr1_fork_worker")
+ (skip-tests "test/test_integration_pumactl.rb"
+ "test_refork_cluster"))))
+ (add-before 'check 'relax-test-case-timeout
+ (lambda _
+ ;; The default value is 45 s and easily causes timeouts.
+ (setenv "TEST_CASE_TIMEOUT" "600")))
+ (add-before 'check 'set-home
+ (lambda _
+ ;; Some tests fail if the cannot write to HOME.
+ (setenv "HOME" "/tmp")))
+ (add-before 'check 'set-paths
+ (lambda _
+ ;; The test suite requires the 'puma' command to be on PATH.
+ (setenv "PATH" (string-append (getenv "PATH") ":"
+ #$output "/bin"))
+ (setenv "GEM_PATH" (string-append
+ (getenv "GEM_PATH") ":"
+ #$output "/lib/ruby/vendor_ruby")))))))
+ (native-inputs
+ (list bundler
+ curl
+ ruby-json
+ ruby-localhost
+ ruby-m
+ ruby-minitest-proveit
+ ruby-minitest-retry
+ ruby-minitest-stub-const
+ ruby-rack
+ ruby-rake-compiler
+ ruby-webrick))
+ (inputs
+ (list openssl
+ ruby-nio4r))
(synopsis "Simple, concurrent HTTP server for Ruby/Rack")
(description
"Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 205/223] gnu: Add ruby-snaky-hash.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-4-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-snaky-hash): New variable.
---

gnu/packages/ruby.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

Toggle diff (56 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 520dd70a08..87b78f7d2b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3798,6 +3798,49 @@ (define-public ruby-simplecov-lcov
(home-page "https://github.com/fortissimo1997/simplecov-lcov")
(license license:expat)))
+(define-public ruby-snaky-hash
+ (package
+ (name "ruby-snaky-hash")
+ (version "2.0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference ;for tests
+ (url "https://gitlab.com/oauth-xx/snaky_hash")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0zmixxzi2g2d75zii65bq037j4g67p25l6aqddbmmwizspsp5az6"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ (("^linting = .*")
+ "linting = false\n")
+ (("^coverage = .*")
+ "coverage = false\n")
+ (("^debug = .*")
+ "debug = false\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("^RUN_COVERAGE = .*")
+ "RUN_COVERAGE = false\n")
+ (("^ALL_FORMATTERS = .*")
+ "ALL_FORMATTERS = false\n"))))
+ (add-before 'build 'drop-signing-key-requirement
+ (lambda _
+ (substitute* "snaky_hash.gemspec"
+ (("spec.signing_key =.*")
+ "spec.signing_key = nil")))))))
+ (native-inputs (list ruby-rspec ruby-rspec-block-is-expected))
+ (propagated-inputs (list ruby-hashie ruby-version-gem))
+ (synopsis "Hash keys and look-ups normalization Ruby library")
+ (description "The SnakyHash Ruby library provides classes for normalizing
+hash keys and look-ups, and a pseudo-object interface.")
+ (home-page "https://gitlab.com/oauth-xx/snaky_hash")
+ (license license:expat)))
+
(define-public ruby-useragent
(package
(name "ruby-useragent")
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 206/223] gnu: ruby-oauth2: Update to 2.0.9 and enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-5-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-oauth2): Update to 2.0.9.
[arguments]: Enable tests. Add #:phases.
[native-inputs]: New field.
[propagated-inputs]: Add ruby-snaky-hash.
---

gnu/packages/ruby.scm | 49 ++++++++++++++++++++++++++++++++++---------
1 file changed, 39 insertions(+), 10 deletions(-)

Toggle diff (65 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 87b78f7d2b..117f6fa789 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2626,19 +2626,48 @@ (define-public ruby-saikuro-treemap
(define-public ruby-oauth2
(package
(name "ruby-oauth2")
- (version "1.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "oauth2" version))
- (sha256
- (base32 "15i9z4j5pcjkr30lkcd79xzbr4kpmy0bqgwa436fqyqk646fv036"))))
+ (version "2.0.9")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://gitlab.com/oauth-xx/oauth2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "191j1f4gjw8wij1jy2fvddgi8cv1mm0ki7v0b0795clix1avnj29"))))
(build-system ruby-build-system)
(arguments
- '(#:tests? #f)) ; no included tests
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ (("^linting = .*")
+ "linting = false\n")
+ (("^coverage = .*")
+ "coverage = false\n")
+ (("^debug = .*")
+ "debug = false\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("^RUN_COVERAGE = .*")
+ "RUN_COVERAGE = false\n")
+ (("^ALL_FORMATTERS = .*")
+ "ALL_FORMATTERS = false\n")))))))
+ (native-inputs
+ (list ruby-addressable
+ ruby-backports
+ ruby-rexml
+ ruby-rspec-block-is-expected
+ ruby-rspec-pending-for
+ ruby-rspec-stubbed-env
+ ruby-silent-stream))
(propagated-inputs
- (list ruby-faraday ruby-jwt ruby-multi-json ruby-multi-xml
- ruby-rack))
+ (list ruby-faraday
+ ruby-jwt
+ ruby-multi-json
+ ruby-multi-xml
+ ruby-rack
+ ruby-snaky-hash))
(synopsis "Ruby wrapper for the OAuth 2.0")
(description
"This package provides a Ruby wrapper for the OAuth 2.0 protocol built
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 207/223] gnu: ruby-omniauth: Update to 2.1.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-6-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-omniauth): Update to 2.1.1.
[arguments]: New field.
[propagated-inputs]: Add ruby-rack-test.
---

gnu/packages/ruby.scm | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)

Toggle diff (50 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 117f6fa789..52b540a9d9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2678,18 +2678,32 @@ (define-public ruby-oauth2
(define-public ruby-omniauth
(package
(name "ruby-omniauth")
- (version "2.0.3")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "omniauth" version))
- (sha256
- (base32 "105mzgvmn2kjaacxw01h4wqv33r7hfn5z8fxlkk3jcjar14j71bh"))))
+ (version "2.1.1")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/omniauth/omniauth")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1mm7a4ll7ymamrbsl63yi6i34qpwmh2nh5a9kj961gja1iz2gyd1"))))
(build-system ruby-build-system)
- (propagated-inputs
- (list ruby-hashie ruby-rack ruby-rack-protection))
- (native-inputs
- (list ruby-rspec))
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "spec/helper.rb"
+ ;; This condition is used to require coveralls and
+ ;; simplecov; override it to avoid these extraneous
+ ;; requirements.
+ (("RUBY_VERSION >= '1.9'")
+ "false")
+ (("require 'rack/freeze'") "")))))))
+ (native-inputs (list ruby-rspec))
+ (propagated-inputs (list ruby-hashie ruby-rack ruby-rack-test
+ ruby-rack-protection))
(synopsis "Generalized Rack framework for multiple-provider authentication")
(description
"This package provides a generalized Rack framework for multiple-provider
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 208/223] gnu: ruby-omniauth-oauth2: Update to 1.8.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-7-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-omniauth-oauth2): Update to 1.8.0.
[arguments]: Rename remove-unnecessary-dependencies phase to
relax-requirements, and simplify it.
[native-inputs]: Remove bundler and ruby-simplecov.
---

gnu/packages/ruby.scm | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)

Toggle diff (53 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 52b540a9d9..89ef556880 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2714,32 +2714,28 @@ (define-public ruby-omniauth
(define-public ruby-omniauth-oauth2
(package
(name "ruby-omniauth-oauth2")
- (version "1.7.1")
+ (version "1.8.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "omniauth-oauth2" version))
(sha256
(base32
- "10fr2b58sp7l6nfdvxpbi67374hkrvsf507cvda89jjs0jacy319"))))
+ "0y4y122xm8zgrxn5nnzwg6w39dnjss8pcq2ppbpx9qn7kiayky5j"))))
(build-system ruby-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-unnecessary-dependencies
- (lambda _
- ;; The coveralls gem submits coverage information to an online
- ;; service, and is unnecessary when running the tests
- (substitute* "Gemfile"
- ((".*coveralls\"") ""))
- (substitute* "spec/helper.rb"
- (("require \"coveralls\"") "")
- (("Coveralls::SimpleCov::Formatter") ""))
- #t)))))
- (propagated-inputs
- (list ruby-oauth2 ruby-omniauth))
- (native-inputs
- (list bundler ruby-rspec ruby-simplecov ruby-rack-test ruby-webmock))
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "spec/helper.rb"
+ ;; This condition is used to require coveralls and
+ ;; simplecov; override it to avoid these extraneous
+ ;; requirements.
+ (("RUBY_VERSION >= \"1.9\"")
+ "false")))))))
+ (propagated-inputs (list ruby-oauth2 ruby-omniauth))
+ (native-inputs (list ruby-rspec ruby-rack-test ruby-webmock))
(synopsis "Abstract OAuth2 strategy for OmniAuth")
(description
"This library provides a generic OAuth2 strategy for OmniAuth. It
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 209/223] gnu: ruby-cuke-modeler: Update to 3.19.0 and enable tests.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-8-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-cuke-modeler): Update to 3.19.0.
[source]: Fetch via git.
[arguments]: Enable tests. Set the #:test-target argument. Add #:phases.
[native-inputs]: New field.
---

gnu/packages/ruby.scm | 56 ++++++++++++++++++++++++++++++++++---------
1 file changed, 45 insertions(+), 11 deletions(-)

Toggle diff (70 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 89ef556880..a0b8fcae8a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6322,18 +6322,52 @@ (define-public ruby-coderay
(define-public ruby-cuke-modeler
(package
(name "ruby-cuke-modeler")
- (version "3.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "cuke_modeler" version))
- (sha256
- (base32
- "19smj3g3wvz0203l549sadpcxgh0ir350a6k78gq0bmlv9cchmjb"))))
+ (version "3.19.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/enkessler/cuke_modeler")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bizla3k124lj4r7f2k5cdfm2sawzd6rdmb6rgbkbng2fygxsjib"))))
(build-system ruby-build-system)
- (arguments `(#:tests? #f)) ;no test suite in gem
- (propagated-inputs
- (list ruby-cucumber-gherkin))
+ (arguments
+ (list #:test-target "default"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "Gemfile"
+ ;; Cucumber appears pinned to an older version for no
+ ;; particular reason (see:
+ ;; https://github.com/enkessler/cuke_modeler/issues/14).
+ (("'cucumber', '2.2.0'")
+ "'cucumber', '>= 2.2.0'"))
+ ;; Disable Bundler.
+ (substitute* "bin/console"
+ (("require 'bundler/setup'") ""))
+ (substitute* "rakefiles/testing_tasks.rb"
+ (("'bundle', 'exec', ") ""))
+ ;; Remove extraneous dependencies.
+ (substitute* "cuke_modeler.gemspec"
+ ((".*bundler.*") "")
+ ((".*rubocop.*") "")
+ ((".*yard.*") ""))
+ (substitute* "Rakefile"
+ (("Rainbow.enabled = true") "")
+ (("require_relative 'rakefiles/documentation_tasks'") "")
+ (("require_relative 'rakefiles/other_tasks'") "")
+ (("require_relative 'rakefiles/release_tasks'") "")))))))
+ (native-inputs
+ (list ruby-childprocess
+ ruby-cucumber
+ ruby-rainbow
+ ruby-rspec
+ ruby-simplecov
+ ruby-simplecov-lcov))
+ (propagated-inputs (list ruby-cucumber-gherkin))
(synopsis "Gherkin test suite analysis tool")
(description "CukeModeler facilitates modeling a test suite that is
written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 210/223] gnu: ruby-single-cov: Update to 1.9.1.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-9-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-single-cov): Update to 1.9.1.
[arguments]: Use "spec" as #:test-target.
Strip trailing #t in phases. Adjust replacement in replace-git-ls-files
phase. Remove make-files-writable phase. Add relax-requirements phase.
[native-inputs]: Remove ruby-bump.
---

gnu/packages/ruby.scm | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)

Toggle diff (70 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a0b8fcae8a..52dcc08b80 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6722,7 +6722,7 @@ (define-public ruby-pry-doc
(define-public ruby-single-cov
(package
(name "ruby-single-cov")
- (version "1.3.2")
+ (version "1.9.1")
(home-page "https://github.com/grosser/single_cov")
(source (origin
(method git-fetch)
@@ -6731,28 +6731,29 @@ (define-public ruby-single-cov
(file-name (git-file-name name version))
(sha256
(base32
- "05qdzpcai1p23a120gb9bxkfl4y73k9hicx34ch2lsk31lgi9bl7"))))
+ "1w4k81f2mdg620m6pwkrqayddnz9mr8qx0myqn33mw8k6imfip05"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "default"
+ '(#:test-target "spec" ;to avoid rubocop requirement
#:phases (modify-phases %standard-phases
(replace 'replace-git-ls-files
(lambda _
(substitute* "single_cov.gemspec"
(("`git ls-files lib/ bin/ MIT-LICENSE`")
- "`find lib/ bin/ MIT-LICENSE -type f | sort`"))
- #t))
+ ;; There no longer appear to be a 'bin'
+ ;; sub-directory.
+ "`find lib/ MIT-LICENSE -type f | sort`"))))
(add-before 'check 'remove-version-constraints
(lambda _
- (delete-file "Gemfile.lock")
- #t))
- (add-before 'check 'make-files-writable
+ (delete-file "Gemfile.lock")))
+ (add-before 'check 'relax-requirements
(lambda _
- ;; Tests need to create local directories and open files
- ;; with write permissions.
- (for-each make-file-writable
- (find-files "specs" #:directories? #t))
- #t))
+ ;; Remove extraneous requirements.
+ (substitute* "Rakefile"
+ ((".*require.*bump.*") ""))
+ (substitute* "Gemfile"
+ ((".*gem \"bump\".*") "")
+ ((".*gem \"rubocop\".*") ""))))
(add-before 'check 'disable-failing-test
(lambda _
;; XXX: This test copies assets from minitest, but can
@@ -6760,10 +6761,8 @@ (define-public ruby-single-cov
;; it for now.
(substitute* "specs/single_cov_spec.rb"
(("it \"complains when coverage is bad\"")
- "xit \"complains when coverage is bad\""))
- #t)))))
- (native-inputs
- (list ruby-bump ruby-minitest ruby-rspec ruby-simplecov))
+ "xit \"complains when coverage is bad\"")))))))
+ (native-inputs (list ruby-minitest ruby-rspec ruby-simplecov))
(synopsis "Code coverage reporting tool")
(description
"This package provides actionable code coverage reports for Ruby
--
2.39.1
M
M
Maxim Cournoyer wrote on 20 Mar 18:29 +0100
[PATCH 211/223] gnu: ruby-parallel-tests: Update to 4.2.0.
(address . 62196@debbugs.gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
20230320172933.13101-10-maxim.cournoyer@gmail.com
* gnu/packages/ruby.scm (ruby-parallel-tests): Update to 4.2.0.
[arguments]: Delete trailing #t. Use "spec" as the #:test-target.
Rename remove-version-constraints phase to relax-requirements, and update it.
Add disable-problematic-tests phase.
---

gnu/packages/ruby.scm | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)

Toggle diff (73 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 52dcc08b80..f8d0941e26 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6382,7 +6382,7 @@ (define-public ruby-cuke-modeler
(define-public ruby-parallel-tests
(package
(name "ruby-parallel-tests")
- (version "3.0.0")
+ (version "4.2.0")
(home-page "https://github.com/grosser/parallel_tests")
(source (origin
(method git-fetch)
@@ -6392,19 +6392,18 @@ (define-public ruby-parallel-tests
(file-name (string-append name version))
(sha256
(base32
- "08a6ndqn2dqacmc7yg48k0dh2rfrynvhkd5hiay16dl9m1r9q8pz"))))
+ "00gbg5q36ayspkzd6r0kg4gk46lsw9s6misx14rczxaf9kqcdrmv"))))
(build-system ruby-build-system)
(arguments
- '(#:test-target "default"
+ '(#:test-target "spec" ;avoid rubocop dependency
#:phases (modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-shell-invokations
(lambda _
(substitute* '("lib/parallel_tests/tasks.rb"
"spec/parallel_tests/tasks_spec.rb")
(("/bin/sh") (which "sh"))
- (("/bin/bash") (which "bash")))
- #t))
- (add-before 'check 'remove-version-constraints
+ (("/bin/bash") (which "bash")))))
+ (add-before 'check 'relax-requirements
(lambda _
;; Remove hard coded version constraints, instead just
;; use whatever versions are available in Guix.
@@ -6413,20 +6412,27 @@ (define-public ruby-parallel-tests
(("'minitest',.*")
"'minitest'\n")
(("'cucumber',.*")
- "'cucumber'\n"))
- #t))
+ "'cucumber'\n")
+ ;; Do not depend on a git-fetched spinach version.
+ (("gem 'spinach',.*")
+ "gem 'spinach'\n")
+ ((".*rubocop.*") ""))))
(add-before 'check 'disable-rails-test
(lambda _
;; XXX: This test attempts to download and run the test
;; suites of multiple Rails versions(!) directly.
- (delete-file "spec/rails_spec.rb")
- #t))
+ (delete-file "spec/rails_spec.rb")))
+ (add-before 'check 'disable-problematic-tests
+ (lambda _
+ ;; This test fails, probably because of the newer
+ ;; Cucumber version used here.
+ (delete-file "spec/parallel_tests/cucumber/\
+failure_logger_spec.rb") ))
(add-before 'check 'set-HOME
(lambda _
;; Some tests check the output of Bundler, and fail when
;; Bundler warns that /homeless-shelter does not exist.
- (setenv "HOME" "/tmp")
- #t)))))
+ (setenv "HOME" "/tmp"))))))
(native-inputs
(list ruby-bump
ruby-cucumber
--
2.39.1
M