Thank you for your interest in contributing to Reach!
- Fork the repository
- Clone your fork:
git clone https://github.com/<you>/reach.git - Create a branch:
git checkout -b feat/my-feature - Make your changes
- Run tests:
make test - Run linter:
make lint - Commit with a descriptive message (see Commit Convention)
- Push and open a Pull Request
# Prerequisites: Go 1.22+, golangci-lint
make build # Build binary to ./bin/reach
make test # Run all tests
make lint # Run linterWe use conventional commit messages:
feat:— New featurefix:— Bug fixdocs:— Documentation onlytest:— Adding or updating testsrefactor:— Code change that neither fixes a bug nor adds a featuresecurity:— Security improvementschore:— Build process, tooling, etc.
- Follow standard Go conventions (
gofmt,go vet) - All exported functions must have doc comments
- Add tests for new functionality
- Keep PRs focused — one feature or fix per PR
- Use the Bug Report template for bugs
- Use the Feature Request template for ideas
感谢你对 Reach 的贡献兴趣!
- Fork 本仓库
- 克隆你的 Fork:
git clone https://github.com/<you>/reach.git - 创建分支:
git checkout -b feat/my-feature - 进行修改
- 运行测试:
make test - 运行 lint:
make lint - 使用描述性消息提交(参见 提交规范)
- Push 并创建 Pull Request
# 前置条件:Go 1.22+, golangci-lint
make build # 构建到 ./bin/reach
make test # 运行全部测试
make lint # 运行 linter使用约定式提交消息:
feat:— 新功能fix:— Bug 修复docs:— 仅文档变更test:— 添加或更新测试refactor:— 既非修复 Bug 也非添加功能的代码变更security:— 安全改进chore:— 构建流程、工具等
- 遵循 Go 标准规范(
gofmt、go vet) - 所有导出函数需有文档注释
- 新功能需添加测试
- PR 保持专注 —— 每个 PR 只做一件事
- Bug 使用 Bug Report 模板
- 功能建议使用 Feature Request 模板