感谢您对 Double Entry Generator 项目的关注!我们欢迎各种形式的贡献,包括代码、文档、问题报告等。

贡献方式

🐛 报告问题

如果您发现了 bug 或有功能请求,请:

  1. 查看 现有 Issues 确认问题未被报告
  2. 创建新的 Issue,包含:
  3. 清晰的问题描述
  4. 复现步骤
  5. 期望的行为
  6. 实际的行为
  7. 环境信息(操作系统、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
开发流程
  1. 创建功能分支

    git checkout -b feature/your-feature-name

  2. 编写代码

  3. 遵循 Go 代码规范
  4. 添加必要的测试
  5. 更新相关文档

  6. 运行测试

    make test
    make lint

  7. 提交代码

    git add .
    git commit -m "feat: add your feature description"

  8. 推送并创建 PR

    git push origin feature/your-feature-name

代码规范
  • 使用 gofmt 格式化代码
  • 遵循 Go 官方代码规范
  • 添加适当的注释
  • 编写单元测试

📝 贡献文档

文档贡献包括:

  • 修复文档中的错误
  • 添加新的使用示例
  • 改进文档结构
  • 翻译文档

文档文件位于 docs/ 目录下,使用 Markdown 格式。

🔧 添加新的 Provider

如果您想添加新的数据源支持:

  1. 创建 Provider 目录

    mkdir pkg/provider/your-provider

  2. 实现接口

  3. pkg/provider/interface.go 中定义的接口
  4. 参考现有 provider 的实现

  5. 添加测试

  6. test/ 目录下添加测试脚本
  7. 提供示例数据文件

  8. 更新文档

  9. docs/providers/ 下添加文档
  10. 更新 README 和导航

提交规范

我们使用 Conventional Commits 规范:

  • feat: 新功能
  • fix: 修复 bug
  • docs: 文档更新
  • 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"

代码审查

所有提交的代码都会经过审查:

  1. 自动化检查
  2. 代码格式检查
  3. 单元测试
  4. 集成测试

  5. 人工审查

  6. 代码质量
  7. 功能正确性
  8. 文档完整性

发布流程

  1. 代码合并到主分支
  2. 自动触发 CI/CD 流程
  3. 生成发布版本
  4. 更新文档网站

社区准则

行为准则

  • 保持友善和尊重
  • 欢迎不同背景的贡献者
  • 专注于对社区最有利的事情
  • 对其他社区成员保持同理心

沟通渠道

  • GitHub Issues: 问题报告和功能请求
  • GitHub Discussions: 一般讨论和问答
  • Pull Requests: 代码审查和讨论

许可证

通过贡献代码,您同意您的贡献将在 Apache 2.0 许可证下发布。

致谢

感谢所有为项目做出贡献的开发者!您的贡献让这个项目变得更好。

需要帮助?

如果您有任何问题,请:

  1. 查看 FAQ
  2. GitHub Discussions 提问
  3. 创建 Issue