贡献指南 (Contributing to Serpent)
感谢你关注并愿意为 Serpent 做出贡献!
Serpent 是一款开源(MIT 许可证)、跨平台的数字资产管理软件。无论你贡献的是代码、文档、自动化测试、本地化翻译、界面设计改进还是 Bug 反馈,都能帮助项目变得更好。
本文档说明如何参与项目的日常开发与社区协作。更详细的技术架构与本地构建指引可查阅开发者 文档。
1. 行为准则与基本原则
为维护友好、包容且高效的开源协作环境,参与本项目的所有成员(包括贡献者和维护者)应共同遵守以下准则:
- 友好与尊重:在 Issue 讨论、代码审查和 Pull Request 交流中保持专业、中性、建设性的沟通风格;
- 关注问题本身:针对工程方案、代码实现或产品体验讨论,不做人身攻击或无意义争执;
- 保护隐私与安全:在提报 Issue、提交测试用例或附加日志时,绝不泄露本地绝对路径、用户隐私文件、密码密钥或未脱敏的个人敏感数据。
2. 报告问题 (Reporting Issues)
如果你在运行或使用 Serpent 时遇到异常、性能瓶颈或功能缺陷,请前往 GitHub Issues 提交反馈。
提报 Bug 时请尽量提供:
- 运行环境:操作系统(macOS / Windows)及版本号、系统架构(arm64 / x64);
- 应用版本:正在使用的 Serpent 版本号(或 Git 提交哈希);
- 复现步骤:清晰、连贯的操作序列,以便维护者能在本地复现;
- 预期与实际结果:说明你认为正确的结果以及实际观察到的现象;
- 错误信息与日志:相关的错误提示、控制台输出或脱敏后的诊断日志。
3. 代码与文档贡献流程
3.1 分支机制与协作基线
main:公开的稳定发布基线。由维护者在发布新版本时合并。dev:日常功能开发与缺陷修复的集成分支。所有外部贡献的 Pull Request 目标分支必须为dev。
3.2 步骤指引
- Fork 仓库:在 GitHub 上点击 Fork,将 dolag233/Serpent 复制到你的个人账号下。
- 克隆到本地:
注意:请克隆到本地磁盘,避免使用网络挂载或 SMB/NAS 共享目录开发。git clone https://github.com/<你的用户名>/Serpent.gitcd Serpent
- 配置依赖环境:
- Node.js 版本要求为
24.15.0(推荐使用nvm:nvm use); - Windows 平台需要安装 Visual Studio Build Tools(含 C++ 桌面开发工作负载及 Windows SDK,用于编译
better-sqlite3);若需要构建 Windows 安装器包(npm run make:inno),还需要安装 Inno Setup 6(见环境搭建); - macOS 平台需要安装 Xcode Command Line Tools;
- 执行依赖安装与原生模块编译:
npm ci --registry=https://registry.npmjs.orgnpm run rebuild:native
- Node.js 版本要求为
- 基于
dev创建分支:git checkout devgit pull origin devgit checkout -b feature/your-feature-name# 或者针对 Bug 修复:git checkout -b fix/your-bugfix-name - 本地验证门禁:
在提交代码前,确保本地通过以下校验:
若涉及资源库打开、关闭、迁移或底层文件操作,必须跑完可用性底线:npm run typecheck # 静态类型检查npm run lint # ESLint 代码风格检查npm run test:unit # 纯逻辑单元测试npm run test:library-availability
- 规范提交信息 (Conventional Commits):
提交信息采用标准格式:
<type>(<scope>): <简要描述>
- 常见
type:feat(新功能)、fix(Bug 修复)、docs(文档)、test(测试)、refactor(重构)、chore(构建/杂项); - 示例:
fix(viewer): 切换视频资产后连贯自动播放。
- 常见
- 发起 Pull Request:
- 将你的分支推送到个人 Fork 仓库:
git push origin feature/your-feature-name; - 在 GitHub 上发起 Pull Request,确认 base 分支为
dev; - 在 PR 描述中清晰说明改动的动机、影响面及测试证据。
- 将你的分支推送到个人 Fork 仓库: