Go package 发布

Table of Contents

1 发布到 go.dev

github.com/zhangjie2012/cbl-go 为例,Go 项目使用了 module 是前提。

在有一下两种情况下:

  1. 网站的数据是从 https://proxy.golang.org/ 下载的
  2. 使用过 go get github.com/zhangjie2012/cbl-go

会自动将 package 收录到 pkg.go.dev 中,比如 cbl-go 的地址为:https://pkg.go.dev/github.com/zhangjie2012/cbl-go

如果你的项目没有添加 LICENSE,将不会自动生成文档内容。Github 项目有两种方式创建 LICENSE:

  1. 初始化项目的时候,会提示你选择一个 LICENSE 文件;
  2. 项目已经创建的情况下, Add files -> Create new file 如果将文件名输入成 LICENSE 会自动出现选项 Choose a license template 按需选择一个即可(我选择的是 MIT);

发布:

  1. 新建 tag
  2. 推送到 github

pkg.go.dev 的更新机制是 go get 的时候,所以只有 go get 才会刷新(延迟一段时间)。

2 优雅

2.1 书写文档规范

https://blog.golang.org/godoc

有一定的规范,但又没有明确的规范。有疑惑的地方,可以参考标准库。

2.2 自动构建

Github Actions 中添加一个 workflow,其实是个 git hook,在每次提交的时候会触发自动构建。

构建成功的会有一个徽标,你可以放到 readme 中,看起来酷酷的。

2.3 go.dev 的徽标

看讨论,https://github.com/golang/go/issues/36982 目前是不支持的。

可以用第三方的 https://shields.io 来替代:

[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/url/of/your-module)

First created: 2020-07-22 10:51:56
Last updated: 2020-08-03 Mon 11:28
Power by Emacs 26.3 (Org mode 9.3.7)