-
Notifications
You must be signed in to change notification settings - Fork 10
Contributing
李源炳 edited this page Jun 19, 2026
·
1 revision
欢迎来到 IMBoy!我们秉承开源精神,欢迎任何形式的贡献:代码、文档、测试、Bug 报告、功能建议。
- 阅读 快速开始 搭建本地开发环境
- 浏览 GitHub Issues 了解当前优先级
- 查看各仓库的
CLAUDE.md了解架构规范
| 仓库 | 语言 | 职责 |
|---|---|---|
| imboy | Erlang/OTP | 后端主服务 |
| imboyapp | Flutter/Dart | iOS/Android 移动端 |
| imboy-admin-frontend | React/TypeScript | Web 管理后台 |
| imboy-sdk-js | TypeScript | JS/TS 客户端 SDK |
| erlang_migrate | Erlang | 数据库迁移库 |
# Fork 仓库后 clone 你的 Fork
git clone https://github.com/<your-username>/imboy.git
cd imboy
# 添加上游远程
git remote add upstream https://github.com/imboy-pub/imboy.gitgit checkout -b feat/your-feature-name
# 或
git checkout -b fix/issue-123-description分支命名规范:feat/、fix/、docs/、test/、refactor/
遵循以下原则:
- 函数 < 50 行,文件 < 800 行
- 先写测试(TDD),然后实现
- 不可变数据:创建新对象,不原地修改
-
分层边界(后端):
Handler → Logic → DS → Repo,单向依赖,禁止跨层调用 - 所有 SQL 必须参数化,禁止字符串拼接
提交消息遵循 Conventional Commits:
<type>: <description>
[optional body]
类型:feat / fix / refactor / docs / test / chore / perf
示例:
feat: add group announcement feature
fix: resolve WebSocket reconnect loop on iOS 17
docs: update E2EE setup instructions
所有提交必须签署 DCO(Developer Certificate of Origin):
git commit -s -m "feat: your feature"提交前确保测试通过:
# 后端(Erlang)
make eunit
make dialyze
# 移动端(Flutter)
flutter test
flutter analyze
# 管理后台(React)
bun test
bun run lint覆盖率要求:Repo 层 80%+,Logic 层 70%+。
git push origin feat/your-feature-name在 GitHub 上创建 PR,填写:
- 变更说明(是什么、为什么)
- 测试方案
- 截图(UI 变更时)
PR 会由维护者审查,通常在 3 个工作日内响应。
- 遵循 OTP 设计原则
- 使用
erlfmt格式化(pre-commit hook 自动检查) - 错误统一用
{error, {Code, Msg}}格式返回 - 新 API 端点:handler → router → logic → EUnit 测试
- 颜色用
AppColors,间距用AppSpacing,字号用FontSizeType - 禁止硬编码颜色值、字号、间距
- 路由通过
go_router管理 - 附件 URL 必须经
AssetsService.viewUrl授权
- 严格类型,禁止
any - 服务端状态用 TanStack Query,客户端状态用 Zustand
- 64-bit ID 用
EntityId类型,不用string/number
在 GitHub Issues 中使用 Bug 模板,包含:
- 环境信息(OS、版本、部署方式)
- 复现步骤
- 预期行为 vs 实际行为
- 相关日志
在 GitHub Issues 中使用 Feature Request 模板。请说明使用场景(why),而不仅仅是功能描述(what)。
我们遵守 Contributor Covenant 行为准则。请在所有社区交流中保持尊重和包容。
- 邮件:leeyisoft@qq.com
- GitHub Issues:https://github.com/imboy-pub/imboy/issues
- 项目官网:https://imboy.pub