me
/
guix
Archived
1
0
Fork 0

gnu: Add ruby-sorbet-runtime.

* gnu/packages/ruby.scm (ruby-sorbet-runtime): New variable.
(sorbet-version): New variable.
(sorbet-monorepo): New variable.
(make-sorbet-gem-source): New procedure.
master
Maxim Cournoyer 2023-01-08 02:07:40 -05:00
parent 193a459d28
commit 7405e0c83f
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 51 additions and 0 deletions

View File

@ -89,6 +89,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix modules)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
@ -12337,6 +12338,56 @@ can be used to build formatters, linters, language servers, and more.")
(home-page "https://github.com/ruby-syntax-tree/syntax_tree") (home-page "https://github.com/ruby-syntax-tree/syntax_tree")
(license license:expat))) (license license:expat)))
(define sorbet-version "0.5.10610.20230106174520-1fa668010")
(define sorbet-monorepo
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sorbet/sorbet")
(commit sorbet-version)))
(file-name (string-append "sorbet-" sorbet-version "-checkout"))
(sha256
(base32
"0f21dl06alxwn6xgdxyrkd58plmmsv04z2bcls9ld4cfzsrs5537"))))
(define (make-sorbet-gem-source gem)
"Return the source of GEM, a sub-directory."
(computed-file
(string-append "ruby-sorbet-" gem "-" sorbet-version "-checkout")
(with-imported-modules (source-module-closure '((guix build utils)))
#~(begin
(use-modules (guix build utils))
(copy-recursively (string-append #$sorbet-monorepo
"/gems/sorbet-" #$gem)
#$output)))))
(define-public ruby-sorbet-runtime
(package
(name "ruby-sorbet-runtime")
(version sorbet-version)
(source (make-sorbet-gem-source "runtime"))
(build-system ruby-build-system)
;; 25 out of 841 tests currently fail, seemingly due to invalid
;; assumptions about file names in the build environment (see:
;; https://github.com/sorbet/sorbet/issues/6650).
(arguments (list #:tests? #f))
(native-inputs
(list ruby-minitest
ruby-mocha
ruby-rubocop
ruby-rubocop-performance
ruby-concurrent-ruby
ruby-pry
ruby-pry-byebug
ruby-parser
ruby-subprocess))
(synopsis "Runtime type checking component for Sorbet")
(description "Sorbet's runtime type checking component. Sorbet is a
powerful type checker for Ruby.")
(home-page "https://sorbet.org")
(license license:asl2.0)))
(define-public ruby-mustache (define-public ruby-mustache
(package (package
(name "ruby-mustache") (name "ruby-mustache")