Skip to content

贡献指南

感谢您对 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 #123

5. 推送分支

bash
git push origin feature/your-feature-name

6. 创建 Pull Request

  1. 访问您 fork 的仓库
  2. 点击 "New Pull Request"
  3. 填写 PR 描述,关联相关 Issue
  4. 等待代码审查

代码审查

所有代码提交都需要经过审查:

  1. 确保 CI 检查通过
  2. 至少一名维护者审查通过
  3. 解决审查意见

文档贡献

文档位于 docs/ 目录,使用 Markdown 编写。

文档规范

  • 使用中文编写
  • 代码块标明语言
  • 图片放在 docs/public/images/ 目录

测试

运行测试

bash
# 运行所有测试
npm run test

# 运行指定模块测试
npm run test -- packages/sdk

# 覆盖率报告
npm run test:coverage

添加测试

  • 单元测试放在 __tests__ 目录
  • 测试文件名以 .test.ts 结尾
  • 覆盖率要求 >= 80%

发布流程

维护者会定期发布新版本:

  1. 更新版本号
  2. 更新 CHANGELOG
  3. 创建 Release
  4. 发布到 npm

行为准则

参与本项目即表示您同意遵守我们的行为准则:

  • 尊重他人,友善交流
  • 接受建设性批评
  • 关注社区最佳利益
  • 禁止骚扰、歧视等行为

获取帮助

许可证

贡献即表示您同意将代码以 Apache License 2.0 许可发布。

致谢

感谢所有为 ImSky 做出贡献的开发者!