📝 贡献指南
August 10, 2026 · View on GitHub
非常感谢您对 SimAdmin 项目的关注和贡献!
为了确保项目的健壮性与高质量演进,在您提交贡献之前,请花几分钟阅读以下指南。
🏗️ 透明的开发
SimAdmin的所有工作均在 GitHub 上公开进行(https://github.com/3899/SimAdmin)。- 无论是核心团队成员还是外部贡献者的 Pull Request,都将经历相同的 Review 和自动化 CI 流程。
🐛 提交 Issue
我们使用 GitHub Issues 进行 Bug 反馈和新特性建议。
在提交 Issue 前,请遵循以下步骤:
- 搜索已有问题:检查是否已经有类似或已被解答的 Issue。
- 提供复现细节:对于 Bug 报告,请提供完整的运行环境信息(硬件架构
aarch64/x86_64、Debian/Ubuntu 版本、ModemManager/NetworkManager 版本等)以及日志与复现步骤。 - 清晰描述期望:对于新功能建议,请清晰指出您想要的变更以及期望的最终行为。
🚀 提交 Pull Request
共建流程
- 认领或创建 Issue:在 GitHub 上创建 Issue 并认领,或在已有的 Issue 中留言表明您正在着手处理,以避免多人重复劳动。
- 本地分支开发:从
dev分支拉取新分支进行开发(命名推荐:feat/xxx或fix/xxx)。 - 完成代码与测试:编写代码,并完成前后端的本地编译与 Lint 校验。
- 提交 PR:将分支推送到您的 Fork 仓库,并向官方仓库的
dev分支提交 Pull Request。
开发准备工作
要进行本地开发和调试,您需要准备以下环境:
- Rust 编译环境:后端需要 Rust (2021 Edition)。
- Node.js 与 pnpm:前端需要 Node.js (v20+) 与 pnpm。
- 系统依赖(Linux 开发/运行测试):需要
pkg-config、libdbus-1-dev等开发依赖。
本地编译与运行
- 前端开发调试:
cd frontend pnpm install npm run dev - 前端打包与 Lint 校验:
cd frontend npm run build - 后端检查与编译:
cd backend cargo check cargo build
🎨 代码开发规范
为了保持代码库的整洁和高可读性,请遵守以下编码规范:
-
格式化与 Linter:
- 前端代码提交前需通过 ESLint 校验 (
npm run lint)。 - 后端 Rust 代码需使用
rustfmt进行格式化 (cargo fmt),并通过cargo clippy警告检查。
- 前端代码提交前需通过 ESLint 校验 (
-
注释与 API 契约规范:
- 涉及核心业务(如 D-Bus 指令交互、APN / DDNS / 短信 / eSIM / 备份恢复等)的结构体与公共 API 必须附带清晰的中文注释。
- 前后端通信接口需同步维护
frontend/src/api/contracts.ts与frontend/src/api/current.ts类型契约。
-
系统服务与 D-Bus / SQLite 安全原则:
- 涉及底层系统(ModemManager / NetworkManager / systemd)交互时,需具备智能超时保护与异常容错降级,避免死锁或长时间阻塞事件循环。
- 数据库事务(SQLite)需保持短小精悍,严格遵守“随用随开、即用即关”原则。
-
提交信息规范:
- 我们推崇使用 Conventional Commits 规范来书写提交信息。
- 常用前缀示例:
feat:新增功能fix:修复 Bugrefactor:代码重构(无功能、Bug 变更)perf:性能或体验优化docs:仅文档更新bump:版本号升级或依赖库更新