为了账号安全,请及时绑定邮箱和手机立即绑定

如何发布一个Golang包

标签:
Go 运维 开源

发布一个包是与世界分享你的工具的好方法。别人可以导入这个包并在他们的项目中使用它,从而实现你所构建的功能。与其它语言相比,发布一个Golang包相对简单。在这篇博客中,我们将展示如何发布。我最近发布了我的GenCLI包,你可以在这里查看 here

为了演示目的,我有一个CLI项目。这是一个由Cobra和Google Gemini API构建的AI驱动的CLI工具。它通过终端为你提供问题的答案。目前这个项目是本地的,唯一运行它的方法是进入项目的根目录并执行go run main.go,然后使用子命令。这样运行是没有问题的,但问题在于每次使用时都需要进入项目的根目录运行,理想情况下,它应该可以从计算机上的任何地方运行,就像其他CLI工具一样。此外,并不是每个人都会愿意为此付出这么多努力来使用它。因此,发布这些工具是非常必要且重要的。

你可以用多种方式给你的包命名,但我们将会把它托管在GitHub上,因此我们将使用GitHub的命名方式。确保在你的 go.mod 文件中,模块名遵循以下格式 - github.com/<你的用户名>/<仓库名模块名>,就像下面这样。

需要注意的是,模块是一系列包的集合。我们通常说发布的是模块而不是单个包,但为了简单起见,这里我们保持了这种说法。

    模块 github.com/Pradumnasaraf/go-ai

    go 1.22

    需要 (
    ....
    ....
    ....

    )

进入全屏模式 退出全屏模式

现在一切准备就绪后,将代码推送到GitHub。确保你将代码推送到与模块中提到的相同的GitHub用户名和仓库名称对应的仓库。

一旦你将代码推送到GitHub,现在是时候发布你的包了,但在发布之前,你应该遵循以下一些最佳实践。

  • 许可证: 使用许可证并尽量减少限制,以便于使用、修改和重新分发。

  • 文档: 我们可以在包文件的顶部添加注释来解释功能,Go 语言会将这些注释视为包的通用文档,并在包文档部分显示。

  • 标签: 当某人有一个特定版本的包时,打标签是很有用的,这样在构建过程中可以得到可预测的结果。标签应遵循语义化版本控制(Semver)。另外,尽量用 1.0.0 及以上版本发布稳定版本,这可以给开发者信心。

现在要发布包,请访问网址 https://pkg.go.dev/github.com/<repo-url>。在我的情况下,网址是 https://pkg.go.dev/github.com/Pradumnasaraf/go-ai。当你访问该网址时,你会看到一个请求按钮,点击该按钮来请求将包添加到 pkg.go.dev。我不会这么做,因为我并不想发布这个工具,因为它只是用于演示。

go dev包网站的截图

一旦完成,经过几个小时后,它就会出现在网站上。一旦上线,你可以使用 go install 命令下载 CLI:

    go install <repo-url>
    go install github.com/Pradumnasaraf/go-ai@latest

进入全屏模式 退出全屏模式

这就是这篇博客的全部内容了。感谢你还在这里阅读并坚持到最后。谢谢!我有时会在Twitter上分享一些关于Golang的小技巧。你可以在那里与我联系。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消