GoCenter如何连接Go模块作者和消费者

更新:截至2021年5月1日,GoCenter中央存储库已经日落,所有特性都已弃用。要了解更多关于中心的日落的信息,请阅读弃用博客

毫无疑问,围棋模块是戈朗接受的一部分。超过300000JFrog GoCenter的Go模块版本展示了它们是如何被Go社区所接受的包管理。与Go模块现在默认在Golang 1.13中启用,公开可用模块的数量将增长得更快——其中一些可能是由您贡献的。

但是,一旦你与社区分享了一个围棋模块项目,它会发生什么?它被使用了吗?我们都希望我们的项目变得像这样有用和受欢迎作证logrus但是你怎么知道呢?

当Go模块的作者知道谁在使用他们的模块,什么版本在什么领域更受欢迎,他们可以做出更好的决定。作者可以合作改进测试等方面。作者可以与他们模块的使用者接触,讨论新的特性或设计。

这是我们在设计GoCenter公共用户界面时一直在考虑的GOPROXY.GoCenter帮助你找到在其中央存储库中对模块进行版本控制,一旦你了解了他们,你也可以了解更多。

Go包的使用

在Gocenter中搜索一个模块,然后查看它的模块页面。单击所使用的选项卡。

GoCenter被标签使用

GoCenter UI显示了GoCenter库中使用该模块的每个Go模块版本。

计算从GoCenter下载

所使用的TAB告诉您您的模块被其他模块引用的范围有多大。但它的影响到底有多深呢?单击新指标TAB查看该模块的进一步统计,包括每周的下载次数。

GoCenter指标选项卡

它是如何工作的

现在我们来谈谈GoCenter是如何识别这些关系的。构建版本到版本的模块关系并不简单。这既适用于依赖关系,也适用于a中的祖先所使用的图。

对于已经采用go模块的项目,构建版本到版本的模块关系很容易,因为依赖版本在go中被锁定。国防部的文件。然而,大多数用Golang编写的开源项目并不是这样。

对于采用其他依赖管理器的项目,例如滑翔godep,版本到版本的模块关系可以通过' go mod init '来捕获,因为这个命令也会生成一个' go '。Mod '文件的依赖版本锁定。

GoCenter走。国防部文件

在上面的例子中,theKubernetes的掌舵包经理还没有采用围棋模块,但自从他们使用, GoCenter构建版本到版本的模块关系去国防部init

具有挑战性的部分是,当一个用Golang编写的开源项目没有使用任何依赖管理器,因此没有固定的版本控制时,该怎么做。在这种情况下,GoCenter运行' go mod tidy '(以一种非常简单的方式解释),并捕获依赖的版本以及GoCenter运行此命令时的时间戳。时间戳帮助GoCenter跟踪版本到版本模块关系的变化。GoCenter会在UI的国防部文件选项卡,示例如下:

GoCenter走。国防部文件

GoCenter公共GOPROXY的力量

GoCenter是一个开源的Go模块的公共GOPROXY帮助你加快你的Go应用程序的构建.但它也是一个重要的工具,可以告诉你那些围棋模块,以及它们之间的关系。如果你是一个Go模块的作者,了解谁正在使用你的项目可以为你和Go社区的工作提供帮助,从而持续改进。