diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/golang-check.scm | 478 |
1 files changed, 244 insertions, 234 deletions
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm index e34b8f2f14..7d5b1d5fdf 100644 --- a/gnu/packages/golang-check.scm +++ b/gnu/packages/golang-check.scm @@ -44,110 +44,17 @@ ;;; Commentary: ;;; -;;; Golang packages to unit-test, mock, assert, lint processes for Golang itself. +;;; Golang packages providing tools to unit-test, mock, assert, and lint +;;; processes for the Golang itself. They may provide executables and +;;; libraries, for which there are marked sections. ;;; ;;; Please: Try to add new module packages in alphabetic order. ;;; ;;; Code: -(define-public go-honnef-co-go-tools - (package - (name "go-honnef-co-go-tools") - (version "0.3.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dominikh/go-tools") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "099z04v7vvwwglnps315s9fmal68xvzlc1g8m26iqi980grbwn32")))) - (build-system go-build-system) - (arguments - `(#:import-path "honnef.co/go/tools" - #:tests? #f - ;; Source-only package - #:phases (modify-phases %standard-phases - (delete 'build)))) - (propagated-inputs - (list go-github-com-burntsushi-toml - go-golang-org-x-exp - go-golang-org-x-mod - go-golang-org-x-tools)) - (home-page "https://staticcheck.dev/") - (synopsis "Staticcheck advanced Go linter library") - (description - "This package provides the Go source code for the @code{go-staticcheck} -advanced Go linter.") - (license license:expat))) - -(define-public go-keyify - (package - (inherit go-honnef-co-go-tools) - (name "go-keyify") - (arguments - `(#:import-path "honnef.co/go/tools/cmd/keyify" - #:unpack-path "honnef.co/go/tools" - #:install-source? #f)) - (synopsis "Transform an unkeyed struct literal into a keyed one in Go") - (description "This package turns unkeyed struct literals (@code{T{1, 2, -3}}) into keyed ones (@code{T{A: 1, B: 2, C: 3}}) in Go."))) - -(define-public go-staticcheck - (package - (inherit go-honnef-co-go-tools) - (name "go-staticcheck") - (arguments - `(#:go ,go-1.18 - #:import-path "honnef.co/go/tools/cmd/staticcheck" - #:unpack-path "honnef.co/go/tools" - #:install-source? #f)) - (synopsis "Staticcheck advanced Go linter") - (description - "Staticcheck is a state of the art linter for the Go programming language. -Using static analysis, it finds bugs and performance issues, offers -simplifications, and enforces style rules."))) - -(define-public go-structlayout - (package - (inherit go-honnef-co-go-tools) - (name "go-structlayout") - (arguments - `(#:import-path "honnef.co/go/tools/cmd/structlayout" - #:unpack-path "honnef.co/go/tools" - #:install-source? #f)) - (synopsis "Display the layout (field sizes and padding) of structs in Go") - (description "This package prints the layout of a struct in Go, which is -the byte offset and size of each field, respecting padding. This information -is printed in human-readable form by default, or as JSON with the @code{-json} -flag."))) - -(define-public go-structlayout-optimize - (package - (inherit go-honnef-co-go-tools) - (name "go-structlayout-optimize") - (arguments - `(#:import-path "honnef.co/go/tools/cmd/structlayout-optimize" - #:unpack-path "honnef.co/go/tools" - #:install-source? #f)) - (synopsis "Reorder struct fields to minimize the amount of padding in Go") - (description "This package reads @code{go-structlayout} JSON on stdin and -reorders fields to minimize the amount of padding. It can emit JSON to feed -into @code{go-structlayout-pretty}."))) - -(define-public go-structlayout-pretty - (package - (inherit go-honnef-co-go-tools) - (name "go-structlayout-pretty") - (arguments - `(#:import-path "honnef.co/go/tools/cmd/structlayout-pretty" - #:unpack-path "honnef.co/go/tools" - #:install-source? #f)) - (synopsis "Format the output of go-structlayout with ASCII art in Go") - (description "This package takes @code{go-structlayout}-like JSON and -prints an ASCII fraphic representing the memory layout."))) +;;; +;;; Libraries: +;;; (define-public go-github-com-alecthomas-assert (let ((commit "405dbfeb8e38effee6e723317226e93fff912d06") @@ -241,6 +148,29 @@ prints an ASCII fraphic representing the memory layout."))) tests.") (license license:expat))) +(define-public go-github-com-golangplus-testing + (package + (name "go-github-com-golangplus-testing") + (version "1.0.0") + (home-page "https://github.com/golangplus/testing") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/golangplus/testing")) + (propagated-inputs + (list go-github-com-golangplus-fmt)) + (synopsis "Additions to Go's standard testing package") + (description "This package provides additions to Go's stdlib testing.") + (license license:bsd-3))) + (define-public go-github-com-google-go-cmdtest (let ((commit "55ab3332a786118933ddf71544aae14951ba9bc5") (revision "0")) @@ -296,29 +226,6 @@ also update a file with new \"golden\" output that is deemed correct.") values for the purpose of fuzz testing.") (license license:asl2.0)))) -(define-public go-github-com-golangplus-testing - (package - (name "go-github-com-golangplus-testing") - (version "1.0.0") - (home-page "https://github.com/golangplus/testing") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/golangplus/testing")) - (propagated-inputs - (list go-github-com-golangplus-fmt)) - (synopsis "Additions to Go's standard testing package") - (description "This package provides additions to Go's stdlib testing.") - (license license:bsd-3))) - (define-public go-github-com-jacobsa-oglematchers (let ((commit "141901ea67cd4769c6800aa7bfdfc558fa22bda5") (revision "0")) @@ -444,92 +351,6 @@ builds on top of Go's builtin @code{testing} library and is complemented by the Gomega matcher library.") (license license:expat))) -(define-public go-github.com-smartystreets-assertions - (package - (name "go-github.com-smartystreets-assertions") - (version "1.13.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/smartystreets/assertions") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 (base32 "0flf3fb6fsw3bk1viva0fzrzw87djaj1mqvrx2gzg1ssn7xzfrzr")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/smartystreets/assertions" - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (unless - ;; The tests fail when run with gccgo. - (false-if-exception (search-input-file inputs "/bin/gccgo")) - (apply (assoc-ref %standard-phases 'check) args))))))) - (native-inputs - (list go-github.com-smartystreets-gunit)) - (home-page "https://github.com/smartystreets/assertions") - (synopsis "Assertions for testing with Go") - (description "The @code{assertions} package provides convenient assertion -functions for writing tests in Go.") - (license license:expat))) - -(define-public go-github.com-smartystreets-goconvey - (package - (name "go-github.com-smartystreets-goconvey") - (version "1.6.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/smartystreets/goconvey") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1ph18rkl3ns3fgin5i4j54w5a69grrmf3apcsmnpdn1wlrbs3dxh")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/smartystreets/goconvey")) - (propagated-inputs - (list go-github.com-jtolds-gls go-github.com-smartystreets-assertions)) - (home-page "https://github.com/smartystreets/goconvey") - (synopsis "Go testing tool with both a web and terminal user interface") - (description "GoConvey is a testing tool for Go. It integrates with go -test, can show test coverage and has a web user interface that will refresh -automatically.") - (license license:expat))) - -(define-public go-github.com-smartystreets-gunit - (package - (name "go-github.com-smartystreets-gunit") - (version "1.0.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/smartystreets/gunit") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "00m4zg0kdj49mnpmf9klb44ba71p966xsk6zknrzqgfc8119f35z")))) - (build-system go-build-system) - (arguments - '(;; TODO: This package depends on go-github.com-smartystreets-assertions - ;; for running the tests, but go-github.com-smartystreets-assertions - ;; depends on this package, so break this loop by not running the tests - ;; for this package. - #:tests? #f - #:import-path "github.com/smartystreets/gunit")) - (home-page "https://github.com/smartystreets/gunit") - (synopsis "Testing tool for Go, in the style of xUnit") - (description "@code{gunit} allows the test author to use a struct as the -scope for a group of related test cases, in the style of xUnit fixtures. This -makes extraction of setup/teardown behavior (as well as invoking the system -under test) much simpler.") - (license license:expat))) - (define-public go-github-com-stretchr-testify (package (name "go-github-com-stretchr-testify") @@ -602,24 +423,22 @@ Features include: such as readers and writers that fail after N consecutive reads/writes.") (license license:expat))) -(define-public go-gopkg-in-check-v1 +(define-public go-github.com-smartystreets-assertions (package - (name "go-gopkg-in-check-v1") - (version "1.0.0-20201130134442-10cb98267c6c") + (name "go-github.com-smartystreets-assertions") + (version "1.13.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/go-check/check") - (commit (go-version->git-ref version)))) + (url "https://github.com/smartystreets/assertions") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (sha256 - (base32 - "1jwxndf8rsyx0fgrp47d99rp55yzssmryb92jfj3yf7zd8rjjljn")))) + (sha256 (base32 "0flf3fb6fsw3bk1viva0fzrzw87djaj1mqvrx2gzg1ssn7xzfrzr")))) (build-system go-build-system) (arguments (list - #:import-path "gopkg.in/check.v1" + #:import-path "github.com/smartystreets/assertions" #:phases #~(modify-phases %standard-phases (replace 'check @@ -628,34 +447,66 @@ such as readers and writers that fail after N consecutive reads/writes.") ;; The tests fail when run with gccgo. (false-if-exception (search-input-file inputs "/bin/gccgo")) (apply (assoc-ref %standard-phases 'check) args))))))) + (native-inputs + (list go-github.com-smartystreets-gunit)) + (home-page "https://github.com/smartystreets/assertions") + (synopsis "Assertions for testing with Go") + (description "The @code{assertions} package provides convenient assertion +functions for writing tests in Go.") + (license license:expat))) + +(define-public go-github.com-smartystreets-goconvey + (package + (name "go-github.com-smartystreets-goconvey") + (version "1.6.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/smartystreets/goconvey") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ph18rkl3ns3fgin5i4j54w5a69grrmf3apcsmnpdn1wlrbs3dxh")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/smartystreets/goconvey")) (propagated-inputs - (list go-github-com-kr-pretty)) - (home-page "https://gopkg.in/check.v1") - (synopsis "Test framework for the Go language") - (description "This package provides a test library for the Go language.") - (license license:bsd-2))) + (list go-github.com-jtolds-gls go-github.com-smartystreets-assertions)) + (home-page "https://github.com/smartystreets/goconvey") + (synopsis "Go testing tool with both a web and terminal user interface") + (description "GoConvey is a testing tool for Go. It integrates with go +test, can show test coverage and has a web user interface that will refresh +automatically.") + (license license:expat))) -(define-public go-gopkg-in-go-playground-assert-v1 +(define-public go-github.com-smartystreets-gunit (package - (name "go-gopkg-in-go-playground-assert-v1") - (version "1.2.1") - (home-page "https://github.com/go-playground/assert") + (name "go-github.com-smartystreets-gunit") + (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) + (url "https://github.com/smartystreets/gunit") + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm")))) + (base32 "00m4zg0kdj49mnpmf9klb44ba71p966xsk6zknrzqgfc8119f35z")))) (build-system go-build-system) (arguments - '(#:import-path "gopkg.in/go-playground/assert.v1")) - (synopsis "Basic assertion library used alongside native Go testing") - (description - "This package provides basic assertions along with building blocks for -custom assertions to be used alongside native Go testing.") + '(;; TODO: This package depends on go-github.com-smartystreets-assertions + ;; for running the tests, but go-github.com-smartystreets-assertions + ;; depends on this package, so break this loop by not running the tests + ;; for this package. + #:tests? #f + #:import-path "github.com/smartystreets/gunit")) + (home-page "https://github.com/smartystreets/gunit") + (synopsis "Testing tool for Go, in the style of xUnit") + (description "@code{gunit} allows the test author to use a struct as the +scope for a group of related test cases, in the style of xUnit fixtures. This +makes extraction of setup/teardown behavior (as well as invoking the system +under test) much simpler.") (license license:expat))) (define-public go-golang-org-sql-mock @@ -712,6 +563,165 @@ without requiring a real database connection.") reformat the source code, it only prints out style mistakes.") (license license:bsd-3)))) +(define-public go-gopkg-in-check-v1 + (package + (name "go-gopkg-in-check-v1") + (version "1.0.0-20201130134442-10cb98267c6c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-check/check") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jwxndf8rsyx0fgrp47d99rp55yzssmryb92jfj3yf7zd8rjjljn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "gopkg.in/check.v1" + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs #:allow-other-keys #:rest args) + (unless + ;; The tests fail when run with gccgo. + (false-if-exception (search-input-file inputs "/bin/gccgo")) + (apply (assoc-ref %standard-phases 'check) args))))))) + (propagated-inputs + (list go-github-com-kr-pretty)) + (home-page "https://gopkg.in/check.v1") + (synopsis "Test framework for the Go language") + (description "This package provides a test library for the Go language.") + (license license:bsd-2))) + +(define-public go-gopkg-in-go-playground-assert-v1 + (package + (name "go-gopkg-in-go-playground-assert-v1") + (version "1.2.1") + (home-page "https://github.com/go-playground/assert") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm")))) + (build-system go-build-system) + (arguments + '(#:import-path "gopkg.in/go-playground/assert.v1")) + (synopsis "Basic assertion library used alongside native Go testing") + (description + "This package provides basic assertions along with building blocks for +custom assertions to be used alongside native Go testing.") + (license license:expat))) + +(define-public go-honnef-co-go-tools + (package + (name "go-honnef-co-go-tools") + (version "0.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dominikh/go-tools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "099z04v7vvwwglnps315s9fmal68xvzlc1g8m26iqi980grbwn32")))) + (build-system go-build-system) + (arguments + `(#:import-path "honnef.co/go/tools" + #:tests? #f + ;; Source-only package + #:phases (modify-phases %standard-phases + (delete 'build)))) + (propagated-inputs + (list go-github-com-burntsushi-toml + go-golang-org-x-exp + go-golang-org-x-mod + go-golang-org-x-tools)) + (home-page "https://staticcheck.dev/") + (synopsis "Staticcheck advanced Go linter library") + (description + "This package provides the Go source code for the @code{go-staticcheck} +advanced Go linter.") + (license license:expat))) + +;;; +;;; Executables: +;;; + +(define-public go-keyify + (package + (inherit go-honnef-co-go-tools) + (name "go-keyify") + (arguments + `(#:import-path "honnef.co/go/tools/cmd/keyify" + #:unpack-path "honnef.co/go/tools" + #:install-source? #f)) + (synopsis "Transform an unkeyed struct literal into a keyed one in Go") + (description "This package turns unkeyed struct literals (@code{T{1, 2, +3}}) into keyed ones (@code{T{A: 1, B: 2, C: 3}}) in Go."))) + +(define-public go-staticcheck + (package + (inherit go-honnef-co-go-tools) + (name "go-staticcheck") + (arguments + `(#:go ,go-1.18 + #:import-path "honnef.co/go/tools/cmd/staticcheck" + #:unpack-path "honnef.co/go/tools" + #:install-source? #f)) + (synopsis "Staticcheck advanced Go linter") + (description + "Staticcheck is a state of the art linter for the Go programming language. +Using static analysis, it finds bugs and performance issues, offers +simplifications, and enforces style rules."))) + +(define-public go-structlayout + (package + (inherit go-honnef-co-go-tools) + (name "go-structlayout") + (arguments + `(#:import-path "honnef.co/go/tools/cmd/structlayout" + #:unpack-path "honnef.co/go/tools" + #:install-source? #f)) + (synopsis "Display the layout (field sizes and padding) of structs in Go") + (description "This package prints the layout of a struct in Go, which is +the byte offset and size of each field, respecting padding. This information +is printed in human-readable form by default, or as JSON with the @code{-json} +flag."))) + +(define-public go-structlayout-optimize + (package + (inherit go-honnef-co-go-tools) + (name "go-structlayout-optimize") + (arguments + `(#:import-path "honnef.co/go/tools/cmd/structlayout-optimize" + #:unpack-path "honnef.co/go/tools" + #:install-source? #f)) + (synopsis "Reorder struct fields to minimize the amount of padding in Go") + (description "This package reads @code{go-structlayout} JSON on stdin and +reorders fields to minimize the amount of padding. It can emit JSON to feed +into @code{go-structlayout-pretty}."))) + +(define-public go-structlayout-pretty + (package + (inherit go-honnef-co-go-tools) + (name "go-structlayout-pretty") + (arguments + `(#:import-path "honnef.co/go/tools/cmd/structlayout-pretty" + #:unpack-path "honnef.co/go/tools" + #:install-source? #f)) + (synopsis "Format the output of go-structlayout with ASCII art in Go") + (description "This package takes @code{go-structlayout}-like JSON and +prints an ASCII fraphic representing the memory layout."))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar |