Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Go module #7

Merged
merged 3 commits into from May 19, 2022
Merged

Add Go module #7

merged 3 commits into from May 19, 2022

Conversation

jwieringa
Copy link
Member

@jwieringa jwieringa commented May 2, 2019

Adds go modules and travis to run the tests and attempt a build.

Generate module definitions via:

$ go mod init github.com/RadiusNetworks/lda
$ go build
$ go test

Used the following commands to fill in go.mod and go.sum. By default a later version of gonum was used which caused a compile error. I edited go.mod to use an older version and observed a successful build.

# github.com/RadiusNetworks/lda
./lda.go:164:20: too many arguments in call to ld.eigen.Factorize
	have (*mat.Dense, bool, bool)
	want (mat.Matrix, mat.EigenKind)
./lda.go:182:19: ld.eigen.Vectors undefined (type mat.Eigen has no field or method Vectors)
./lda.go:222:20: ld.eigen.Vectors undefined (type mat.Eigen has no field or method Vectors)

@jwieringa jwieringa self-assigned this May 2, 2019
@jwieringa jwieringa requested a review from syoder May 2, 2019 03:50
@jwieringa jwieringa changed the title Convert to Go modules Add Go module May 2, 2019
$ go mod init github.com/RadiusNetworks/lda
go get gonum.org/v1/gonum@73ea1e732937f96d723d31dc5263d214a275d204
@jwieringa
Copy link
Member Author

jwieringa commented May 31, 2019

Pushed up new changes using gotip and observed that build and test commands respect the version set via get. The mod tidy command did not respect the version set and running it results in test failures. Follow details in golang/go#29121 for more info.

$ gotip version
go version devel +2165452 Fri May 31 11:26:23 2019 +0000 darwin/amd64

go mod init - success

$ gotip mod init github.com/RadiusNetworks/lda
go: creating new go.mod: module github.com/RadiusNetworks/lda

$ cat go.mod
module github.com/RadiusNetworks/lda

go 1.13
$ # add files to git

go get <package>:<revision> - success

$ gotip get gonum.org/v1/gonum@73ea1e732937f96d723d31dc5263d214a275d204
$ git diff go.mod
diff --git a/go.mod b/go.mod
index ce13f7d..acfb8bf 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,5 @@
 module github.com/RadiusNetworks/lda

 go 1.13
+
+require gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937 // indirect

go build - success

$ gotip build
$ git diff
diff --git a/go.mod b/go.mod
index acfb8bf..b882eb9 100644
--- a/go.mod
+++ b/go.mod
@@ -2,4 +2,4 @@ module github.com/RadiusNetworks/lda

 go 1.13

-require gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937 // indirect
+require gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937

go test - sucess

$ gotip test
go: finding gonum.org/v1/plot latest
Call to LDA successful
PASS
ok  	github.com/RadiusNetworks/lda	0.039s

$ git diff
diff --git a/Iris-data-LDA-graph.png b/Iris-data-LDA-graph.png
index 35c4e34..afdc6a4 100644
Binary files a/Iris-data-LDA-graph.png and b/Iris-data-LDA-graph.png differ
diff --git a/go.mod b/go.mod
index acfb8bf..6132263 100644
--- a/go.mod
+++ b/go.mod
@@ -2,4 +2,7 @@ module github.com/RadiusNetworks/lda

 go 1.13

-require gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937 // indirect
+require (
+       gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4
+       gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b
+)
diff --git a/go.sum b/go.sum
index f5af3a1..af30dfd 100644
--- a/go.sum
+++ b/go.sum
@@ -1,4 +1,20 @@
+github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ=
+github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
+github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg=
+github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
+github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0=
+github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81 h1:00VmoueYNlNz/aHIilyyQz/MHSqGoWJzpFv/HW8xpzI=
+golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937 h1:CYrmfhpCQPcI0uTwJ6mxYIUsGnXllAvY2rLrTI2InpQ=
 gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4 h1:nYxTaCPaVoJbxx+vMVnsFb6kw5+6aJCx52m/lmM/Vog=
+gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k=
+gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
+rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

go mod tidy - failure

$ gotip mod tidy
go: finding gonum.org/v1/netlib latest

$ git diff
diff --git a/Iris-data-LDA-graph.png b/Iris-data-LDA-graph.png
index 35c4e34..afdc6a4 100644
Binary files a/Iris-data-LDA-graph.png and b/Iris-data-LDA-graph.png differ
diff --git a/go.mod b/go.mod
index 6132263..af6e02f 100644
--- a/go.mod
+++ b/go.mod
@@ -3,6 +3,7 @@ module github.com/RadiusNetworks/lda
 go 1.13

 require (
-       gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4
+       gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485
+       gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e // indirect
        gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b
 )
diff --git a/go.sum b/go.sum
index af30dfd..6e0105d 100644
--- a/go.sum
+++ b/go.sum
@@ -1,3 +1,4 @@
+github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ=
 github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg=
@@ -6,15 +7,39 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF0
 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0=
 github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
+github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f h1:9kQ594xxPWRNKfTOnPjPcgrIJ19zM3ic57aI7PbMyAA=
 golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
+golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81 h1:00VmoueYNlNz/aHIilyyQz/MHSqGoWJzpFv/HW8xpzI=
 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
+golang.org/x/image v0.0.0-20190227222117-0694c2d4d067 h1:KYGJGHOQy8oSi1fDlSpcZF0+juKwk/hEMv5SiwHogR0=
+golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
+golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937 h1:CYrmfhpCQPcI0uTwJ6mxYIUsGnXllAvY2rLrTI2InpQ=
-gonum.org/v1/gonum v0.0.0-20180802201828-73ea1e732937/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4 h1:nYxTaCPaVoJbxx+vMVnsFb6kw5+6aJCx52m/lmM/Vog=
 gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
+gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
+gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
+gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
+gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
 gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k=
 gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
+modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
+modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
+modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
+modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
+modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
+rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

Test failure after running mod tidy.

$ gotip test
# github.com/RadiusNetworks/lda [github.com/RadiusNetworks/lda.test]
./lda.go:164:20: too many arguments in call to ld.eigen.Factorize
	have (*mat.Dense, bool, bool)
	want (mat.Matrix, mat.EigenKind)
./lda.go:182:19: ld.eigen.Vectors undefined (type mat.Eigen has no field or method Vectors)
./lda.go:222:20: ld.eigen.Vectors undefined (type mat.Eigen has no field or method Vectors)
FAIL	github.com/RadiusNetworks/lda [build failed]

@bcmills
Copy link

bcmills commented May 31, 2019

To diagnose the issue with go mod tidy, I would suggest running go list -mod=readonly all.

The reason go mod tidy bumps the required version of a module is in order to resolve some (recently added) package that appears in an import statement, either within your module or one of its transitive dependencies. If that isn't due to some esoteric build tag, then go list all will try to resolve the same set of imports, and the error reported by go list -mod=readonly all may give you a clue as to what's missing.

@syoder syoder merged commit 98f5c4b into master May 19, 2022
@syoder syoder deleted the go-mod branch May 19, 2022 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants