从 0 到 1 创建、测试并发布属于自己的 Go 开源库
创建、测试和发布自己的Go开源库需要以下步骤:
创建库:
- 在Github上创建新的仓库。
- 初始化本地目录为Git仓库。
- 编写代码并提交至本地仓库。
编写README和license:
- 编辑README.md文件,描述你的库的功能、如何安装、使用示例等。
- 选择合适的开源许可证(例如MIT或Apache 2.0)。
- 将许可证文件添加到仓库中。
编写和测试代码:
- 写Go代码,确保代码可读性和可维护性。
- 编写单元测试,确保代码的正确性。
使用Go语言的工具链:
- 运行
go fmt
来格式化代码。 - 运行
go vet
来静态分析代码可能的问题。 - 运行测试
go test
确保所有测试通过。
- 运行
发布到Github Package Registry或其他包管理平台:
- 创建Github Access Token。
- 在环境变量中设置Github Access Token。
- 发布到Github Package Registry:
go publish
。
- 发布到其他平台(如如
go.mod
支持的其他平台)。 - 更新你的Github个人资料,确保包含你的项目链接。
- 发布库到知名Go相关社区或媒体,如HackerNews、Reddit、Twitter等。
以下是一个简单的Go库的结构示例:
mylib/
│
├── go.mod
├── go.sum
├── LICENSE
├── README.md
└── mylib.go
mylib.go
示例代码:
package mylib
// MyFunc returns the string "Hello, World!"
func MyFunc() string {
return "Hello, World!"
}
go.mod
示例内容:
module github.com/yourusername/mylib
go 1.13
go.sum
文件会自动生成并包含依赖项的校验和。
README.md
示例内容:
# MyLib
A simple Go library for doing basic operations.
## Installation
```sh
go get github.com/yourusername/mylib
Usage
package main
import (
"fmt"
"github.com/yourusername/mylib"
)
func main() {
fmt.Println(mylib.MyFunc())
}
License
This project is under the MIT license.
确保在发布前更新`go.mod`文件以反映你的库的实际名称,并在发布后通知你的同行们。
评论已关闭