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

fix issue about breaking change in uuid.NewV4() #11

Closed
Allianzcortex opened this issue Dec 27, 2018 · 6 comments
Closed

fix issue about breaking change in uuid.NewV4() #11

Allianzcortex opened this issue Dec 27, 2018 · 6 comments

Comments

@Allianzcortex
Copy link

Allianzcortex commented Dec 27, 2018

Hi ~

最近在尝试构建 rikka 应用,在构建过程 go build . 这一步里出现了一个问题,截图如下:
image

搜索关键字 multiple-value uuid.NewV4() in single-value context 就可以发现很多应用都出了这个问题,比如 star 数比较多的 sprigacme

出现的原因是 uuid API 的更改,摘举如下:

This issue is due to an upstream API change in the github.com/satori/go.uuid package, specifically, the change for satori/go.uuid#18. A number of people have raised issues against go.uuid about this being a breaking API change, so there's a chance that it will be reverted at some point.

直接用 go get 而不用 package management 终于出现了致命的问题。看到的一个比较激进的 fix 方式是直接用 Google 的 uuid 替代 replace satori/go.uuid with google/uuid.......

有一个解决方式 fix-patch 是用 uuid.MustNewV4() 来代替 uuid.NewV4(),但我测试没有通过,因此退而求其次用了如下的方法:
git -C $GOPATH/src/github.com/satori/go.uuid checkout v1.2.0
之后一切编译正常。

这里存照一下,希望能帮助后来也遇到这个问题的人。我也试试看有没有什么方法能一劳永逸解决(D

@Allianzcortex
Copy link
Author

Allianzcortex commented Dec 27, 2018

还有一个问题是不知道您在开发的时候是怎么调试的?我理解的话起始跑的点肯定是在 package main 下的 func main(),找到了 entry.go 与 rikkac.go,但这个两个我尝试 go run 或者 debug 时都会提示有 undefined variable,所以想知道有没有什么可以一步一步看代码调用的方法


update:我在 git checkout release-0.0.1 后找到了 main.go 函数,可以用 go run main.go 来执行......我看看 diff 信息试试

@7sDream
Copy link
Owner

7sDream commented Dec 29, 2018

这个项目也比较久远了……
我记得上次尝试构建的时候还有一些七牛云的 SDK 包更新,接口改变造成的问题……

如果只是尝试用的话,建议使用很早之前就已经构建好的 Docker 镜像。

如果是想学习一下源代码,emm,或许可以考虑参考一些更好的 golang 项目,实话说我的 go 语言水平并没有达到足够让别人学习的程度……

以上,Happy Hacking。


嗷,刚想起来,七牛云的问题之前有同学提出来过,上次抽空已经修了 2694304 ,这个 Project 真的太久没动已经几乎忘了……惭愧

@Allianzcortex
Copy link
Author

@7sDream 233 我最近在看 gin 和它 route 的早期代码,还有一些标准库。虽然 Go 的项目很多但原生使用 net/http 和 js 结合的项目很少(现在主要做的业余方向是这个)。并且我觉得项目质量很好啊,看不同 tag 之间的 diff 信息挺有趣的

@7sDream
Copy link
Owner

7sDream commented Dec 29, 2018

说到调试……

主项目的入口是 entry.go 里的 main,rikkac 那个是命令行 CLI 的。

当时我的调试应该主要是借助代码里非常详细的 Log,直接 build + 运行跑的。参见 Makefile,貌似确实没用过什么调试手段。

至于 go run 会报变量不存在的问题可能和 init.go 没有被执行有关,可以尝试下把文件里的代码全都复制到 entry.go 里再试试。

@Allianzcortex
Copy link
Author

Allianzcortex commented Dec 29, 2018

@7sDream 是...我最后参考的是这个 SO 回答,执行 go run entry.go init.go 这个命令,need to supply all files as argument 同时跑两个文件,在 release-0.4.1 最新版本执行通过

@7sDream 7sDream changed the title fix issue about 【plugins\fs\save.go:134:22: multiple-value uuid.NewV4() in single-value context】 fix issue about breaking change in uuid.NewV4() Dec 30, 2018
@7sDream
Copy link
Owner

7sDream commented Dec 30, 2018

OK,那这个 Issue 我先关了,如果有其他问题欢迎另开 OvO

@7sDream 7sDream closed this as completed Dec 30, 2018
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

No branches or pull requests

2 participants