贡献指南
感谢您对 ImSky 项目的关注!我们欢迎各种形式的贡献,包括但不限于:
- 提交 Bug 报告
- 提出功能建议
- 改进文档
- 提交代码修复
- 分享使用经验
开发环境搭建
前置要求
- Node.js >= 18
- npm >= 9 或 pnpm >= 8
- Git
克隆仓库
bash
git clone https://github.com/gitcoffee-os/imsky.git
cd imsky安装依赖
bash
npm install
# 或
pnpm install启动开发服务器
bash
npm run dev贡献流程
1. 创建 Issue
在提交代码之前,请先创建 Issue 描述您要解决的问题或要添加的功能:
- 如果是 Bug,请描述复现步骤
- 如果是功能,请描述使用场景
2. Fork 仓库
点击 GitHub 页面的 Fork 按钮,将仓库 fork 到您的账号下。
3. 创建分支
bash
git checkout -b feature/your-feature-name
# 或
git checkout -b fix/your-bug-fix分支命名规范:
feature/*: 新功能fix/*: Bug 修复docs/*: 文档更新refactor/*: 代码重构
4. 提交代码
代码规范
- 使用 ESLint 和 Prettier 进行代码格式化
- 遵循 Vue 3 组合式 API 风格
- TypeScript 严格模式启用
- 组件命名使用 PascalCase
- 函数命名使用 camelCase
提交信息规范
类型(scope): 简短描述
详细描述(可选)
Footer(可选)类型说明:
feat: 新功能fix: 修复docs: 文档style: 格式refactor: 重构perf: 性能优化test: 测试chore: 构建/工具
示例:
feat(chat): 添加消息引用功能
- 支持引用单条消息
- 支持多级引用展示
- 添加引用消息样式
Closes #1235. 推送分支
bash
git push origin feature/your-feature-name6. 创建 Pull Request
- 访问您 fork 的仓库
- 点击 "New Pull Request"
- 填写 PR 描述,关联相关 Issue
- 等待代码审查
代码审查
所有代码提交都需要经过审查:
- 确保 CI 检查通过
- 至少一名维护者审查通过
- 解决审查意见
文档贡献
文档位于 docs/ 目录,使用 Markdown 编写。
文档规范
- 使用中文编写
- 代码块标明语言
- 图片放在
docs/public/images/目录
测试
运行测试
bash
# 运行所有测试
npm run test
# 运行指定模块测试
npm run test -- packages/sdk
# 覆盖率报告
npm run test:coverage添加测试
- 单元测试放在
__tests__目录 - 测试文件名以
.test.ts结尾 - 覆盖率要求 >= 80%
发布流程
维护者会定期发布新版本:
- 更新版本号
- 更新 CHANGELOG
- 创建 Release
- 发布到 npm
行为准则
参与本项目即表示您同意遵守我们的行为准则:
- 尊重他人,友善交流
- 接受建设性批评
- 关注社区最佳利益
- 禁止骚扰、歧视等行为
获取帮助
许可证
贡献即表示您同意将代码以 Apache License 2.0 许可发布。
致谢
感谢所有为 ImSky 做出贡献的开发者!