# Lancet 贡献指南

Hi! 首先感谢你使用 Lancet。

lancet（柳叶刀）是一个功能强大、全面、高效、可复用的go语言工具函数库。它消除了处理并发、网络、数学、切片、字符串等的麻烦，使 Go 开发变得更容易。

Lancet 的成长离不开大家的支持，如果你愿意为 Lancet 贡献代码或提供建议，请阅读以下内容。

## Issue 规范

- issue 仅用于提交 Bug 或 Feature 以及设计相关的内容，其它内容可能会被直接关闭。

- 在提交 issue 之前，请搜索相关内容是否已被提出。

- 请说明 Lancet 和 Go 的版本号，并提供操作系统信息。推荐使用 [Go Playground](https://go.dev/play/) 生成在线 demo，这能够更直观地重现问题。

## Pull Request 规范

- 请先 fork 一份到自己的项目下，不要直接在仓库下建分支。

- commit 信息要以 `type(scope): 描述信息` 的形式填写，例如 `fix(package): [scrollbar] fix xxx bug`。

  1. type: 必须是 chore, docs, feat, fix, refactor, release, test 其中的一个。

  2. scope: 必须是 package, file, internal 其中的一个。

  3. header: 描述信息不要超过 72 个字符。

- 提交 PR 前请 rebase，确保 commit 记录的整洁。

- 提交 PR 前请执行单元测试命令：go test -v ./...，确保所有单元测试任务通过。

- 确保 PR 是提交到 `v2` 分支，而不是 `main` 分支。

- 如果是修复 bug，请在 PR 中给出描述信息。

- 合并代码需要两名维护人员参与：一人进行 review 后 approve，另一人再次 review，通过后即可合并。