gpt4 book ai didi

go - 在Golang中锁定外部依赖 "versions"的最有效方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:02:21 30 4
gpt4 key购买 nike

默认情况下,如果 Go 在您的 GOPATH 上找不到依赖项,则会通过获取 master (github) 或默认 (mercurial) 中的最新版本来拉取导入的依赖项。虽然这个工作流程很容易掌握,但严格控制却变得有些困难。因为所有软件更改都会带来一些风险,所以我想以一种可管理和可重复的方式降低这种潜在更改的风险,并避免无意中发现依赖项的更改,尤其是在通过 CI 服务器运行干净构建或准备部署时。

我可以固定(即锁定或捕获)包依赖项的最有效方法是什么,这样我就不会发现自己无法重现旧包,或者更糟糕的是,在我即将发布时意外损坏?

---- 更新----

关于 Current State of Go Packaging 的更多信息.虽然我最终(截至 7.20.13)在第 3 方文件夹中捕获依赖项并管理更新(ala Camlistore),但我仍在寻找更好的方法......

Here is a great list of options .

另外,请务必查看 go 1.5 vendor/ experiment了解 go 在未来版本中如何处理该问题。

最佳答案

你可能会找到路Camlistore有趣吗?

third party directory特别是 update.plrewrite-imports.sh 脚本。这些脚本更新外部存储库,在必要时更改导入,并确保外部存储库的静态版本与 camlistore 代码的其余部分一起 checkin 。

这意味着 camlistore 具有完全可重复的构建,因为它是自包含的,但第三方组件可以在 camlistore 开发人员的控制下进行更新。

关于go - 在Golang中锁定外部依赖 "versions"的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17078727/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com