Package: wnpp
Severity: wishlist
Owner: Anthony Fok <f...@debian.org>

* Package name    : goda
  Version         : 0.5.7-1
  Upstream Author : Egon Elbre
* URL             : https://github.com/loov/goda
* License         : Expat
  Programming Lang: Go
  Description     : Go Dependency Analysis toolkit

 Goda is a Go dependency analysis toolkit. It contains tools to figure
 out what your program is using.
 .
 Cool things it can do:
 .
   # All of the commands should be run in the cloned repository.
   git clone https://github.com/loov/goda && cd goda
 .
   # draw a graph of packages in github.com/loov/goda
   goda graph "github.com/loov/goda/..." | dot -Tsvg -o graph.svg
 .
   # draw a dependency graph of github.com/loov/goda and dependencies
   goda graph -cluster -short "github.com/loov/goda:all" | dot -Tsvg -o 
graph.svg
 .
   # list direct dependencies of github.com/loov/goda
   goda list "github.com/loov/goda/...:import"
 .
   # list dependency graph that reaches flag package, including std
   goda graph -std "reach(github.com/loov/goda/...:all, flag)" | dot -Tsvg -o 
graph.svg
 .
   # list packages shared by github.com/loov/goda/pkgset and 
github.com/loov/goda/cut
   goda list "shared(github.com/loov/goda/pkgset:all, 
github.com/loov/goda/cut:all)"
 .
   # list packages that are only imported for tests
   goda list "github.com/loov/goda/...:+test:all - github.com/loov/goda/...:all"
 .
   # list packages that are imported with `purego` tag
   goda list -std "purego=1(github.com/loov/goda/...:all)"
 .
   # list packages that are imported for windows and not linux
   goda list "goos=windows(github.com/loov/goda/...:all) - 
goos=linux(github.com/loov/goda/...:all)"
 .
   # list how much memory each symbol in the final binary is taking
   goda weight -h $GOPATH/bin/goda
 .
   # show the impact of cutting a package
   goda cut ./...:all
 .
   # print dependency tree of all sub-packages
   goda tree ./...:all
 .
   # print stats while building a go program
   go build -a --toolexec "goda exec" .
 .
   # list dependency graph in same format as "go mod graph"
   goda graph -type edges -f '{{.ID}}{{if .Module}}{{with 
.Module.Version}}@{{.}}{{end}}{{end}}' ./...:all
 .
 How it differs from go list or go mod
 .
 go list and go mod are tightly integrated with Go and can answer simple
 queries with compatibility. They also serves as good building blocks for
 other tools.
 .
 goda is intended for more complicated queries and analysis. Some of the
 features can be reproduced by format flags and scripts. However, this
 library aims to make even complicated analysis fast.
 .
 Also, goda can be used together with go list and go mod.


Reasons for packaging:

- Recommended by Dominik Honnef, upstream author of golang-honnef-go-tools,
  when he removed cmd/rdeps which, like dh-make-golang, also used
  golang.org/x/tools/refactor/importgraph

- Potential solution to fix and improve "dh-make-golang estimate"

Reply via email to