贡献指南
感谢您对 Double Entry Generator 项目的关注!我们欢迎各种形式的贡献,包括代码、文档、问题报告等。
贡献方式
🐛 报告问题
如果您发现了 bug 或有功能请求,请:
- 查看 现有 Issues 确认问题未被报告
- 创建新的 Issue,包含:
- 清晰的问题描述
- 复现步骤
- 期望的行为
- 实际的行为
- 环境信息(操作系统、Go 版本等)
💻 贡献代码
开发环境设置
# 1. Fork 并克隆仓库
git clone https://github.com/YOUR_USERNAME/double-entry-generator.git
cd double-entry-generator
# 2. 添加上游仓库
git remote add upstream https://github.com/deb-sig/double-entry-generator.git
# 3. 安装依赖
go mod download
# 4. 运行测试
make test
开发流程
- 创建功能分支
git checkout -b feature/your-feature-name - 编写代码
- 遵循 Go 代码规范
- 添加必要的测试
- 更新相关文档
- 运行测试
make test make lint - 提交代码
git add . git commit -m "feat: add your feature description" - 推送并创建 PR
git push origin feature/your-feature-name
代码规范
- 使用
gofmt格式化代码 - 遵循 Go 官方代码规范
- 添加适当的注释
- 编写单元测试
📝 贡献文档
文档贡献包括:
- 修复文档中的错误
- 添加新的使用示例
- 改进文档结构
- 翻译文档
文档文件位于 docs/ 目录下,使用 Markdown 格式。
🔧 添加新的 Provider
如果您想添加新的数据源支持:
- 创建 Provider 目录
mkdir pkg/provider/your-provider - 实现接口
pkg/provider/interface.go中定义的接口- 参考现有 provider 的实现
- 添加测试
- 在
test/目录下添加测试脚本 - 提供示例数据文件
- 在
- 更新文档
- 在
docs/providers/下添加文档 - 更新 README 和导航
- 在
提交规范
我们使用 Conventional Commits 规范:
feat:新功能fix:修复 bugdocs:文档更新style:代码格式调整refactor:代码重构test:测试相关chore:构建过程或辅助工具的变动
示例:
git commit -m "feat(alipay): add support for new transaction types"
git commit -m "fix(ccb): handle empty description field"
git commit -m "docs: update installation guide"
代码审查
所有提交的代码都会经过审查:
- 自动化检查
- 代码格式检查
- 单元测试
- 集成测试
- 人工审查
- 代码质量
- 功能正确性
- 文档完整性
发布流程
- 代码合并到主分支
- 自动触发 CI/CD 流程
- 生成发布版本
- 更新文档网站
社区准则
行为准则
- 保持友善和尊重
- 欢迎不同背景的贡献者
- 专注于对社区最有利的事情
- 对其他社区成员保持同理心
沟通渠道
- GitHub Issues: 问题报告和功能请求
- GitHub Discussions: 一般讨论和问答
- Pull Requests: 代码审查和讨论
许可证
通过贡献代码,您同意您的贡献将在 Apache 2.0 许可证下发布。
致谢
感谢所有为项目做出贡献的开发者!您的贡献让这个项目变得更好。
需要帮助?
如果您有任何问题,请:
- 查看 FAQ
- 在 GitHub Discussions 提问
- 创建 Issue