203 lines
3.6 KiB
Markdown
203 lines
3.6 KiB
Markdown
# 贡献指南
|
||
|
||
> **文档版本**: v1.0.0
|
||
> **创建日期**: 2026-05-25
|
||
> **适用范围**: 所有希望为 FischerX 做贡献的开发者
|
||
|
||
## 目录
|
||
|
||
- [开始之前](#开始之前)
|
||
- [如何贡献代码](#如何贡献代码)
|
||
- [代码审查流程](#代码审查流程)
|
||
- [发布流程](#发布流程)
|
||
- [社区行为准则](#社区行为准则)
|
||
|
||
---
|
||
|
||
## 开始之前
|
||
|
||
### 行为准则
|
||
|
||
我们希望所有贡献者都能遵循以下原则:
|
||
- 尊重其他贡献者
|
||
- 接受建设性的批评
|
||
- 关注对社区最有利的事情
|
||
- 对其他社区成员表示友善
|
||
|
||
### 准备工作
|
||
|
||
在开始贡献之前,请确保:
|
||
1. 阅读了 [快速开始](./quick-start.md)
|
||
2. 阅读了 [开发规范](./coding-standards.md)
|
||
3. 了解了项目的技术栈
|
||
4. 配置好了开发环境
|
||
|
||
---
|
||
|
||
## 如何贡献代码
|
||
|
||
### 1. 寻找问题
|
||
|
||
- 查看 GitHub Issues 列表
|
||
- 寻找标记为 `good first issue` 的问题
|
||
- 参与讨论,了解需求
|
||
|
||
### 2. 创建 Issue
|
||
|
||
在开始工作之前,请先创建 Issue:
|
||
- 描述你要解决的问题
|
||
- 说明你的解决方案思路
|
||
- 等待维护者的反馈
|
||
|
||
### 3. Fork 仓库
|
||
|
||
```bash
|
||
# Fork 项目到你的 GitHub 账号
|
||
# 然后克隆你的 Fork
|
||
git clone https://github.com/<your-username>/fischerx.git
|
||
cd fischerx
|
||
|
||
# 添加上游仓库
|
||
git remote add upstream https://github.com/<original-owner>/fischerx.git
|
||
```
|
||
|
||
### 4. 创建分支
|
||
|
||
```bash
|
||
# 更新 develop 分支
|
||
git checkout develop
|
||
git pull upstream develop
|
||
|
||
# 创建新分支
|
||
git checkout -b feature/your-feature-name
|
||
```
|
||
|
||
### 5. 开发与提交
|
||
|
||
```bash
|
||
# 进行开发
|
||
# ...
|
||
|
||
# 运行测试
|
||
pnpm test
|
||
|
||
# 运行 Lint
|
||
pnpm lint
|
||
|
||
# 提交更改
|
||
git add .
|
||
git commit -m "feat(scope): description"
|
||
```
|
||
|
||
### 6. 创建 Pull Request
|
||
|
||
1. 推送到你的 Fork:
|
||
```bash
|
||
git push origin feature/your-feature-name
|
||
```
|
||
|
||
2. 在 GitHub 上创建 Pull Request
|
||
3. 填写 PR 模板
|
||
4. 等待审查
|
||
|
||
---
|
||
|
||
## 代码审查流程
|
||
|
||
### 审查者职责
|
||
|
||
审查者应该:
|
||
- 检查代码是否符合规范
|
||
- 验证功能是否正确实现
|
||
- 提出改进建议
|
||
- 在 24-48 小时内回复
|
||
|
||
### 审查清单
|
||
|
||
- [ ] 代码符合项目规范
|
||
- [ ] 测试已添加/更新
|
||
- [ ] 文档已更新
|
||
- [ ] CI 检查通过
|
||
- [ ] 没有引入安全问题
|
||
|
||
### 修改与重新提交
|
||
|
||
如果有修改要求:
|
||
1. 根据审查意见修改代码
|
||
2. 提交修改
|
||
3. 推送到同一分支
|
||
4. PR 会自动更新
|
||
|
||
---
|
||
|
||
## 发布流程
|
||
|
||
### 版本管理
|
||
|
||
我们使用语义化版本(Semantic Versioning):
|
||
- `MAJOR`:不兼容的 API 更改
|
||
- `MINOR`:向后兼容的功能新增
|
||
- `PATCH`:向后兼容的问题修复
|
||
|
||
### 发布步骤
|
||
|
||
1. 创建发布分支:
|
||
```bash
|
||
git checkout -b release/x.y.z
|
||
```
|
||
|
||
2. 更新版本号:
|
||
```bash
|
||
# 更新 package.json
|
||
# 更新 CHANGELOG.md
|
||
```
|
||
|
||
3. 测试与修复问题
|
||
|
||
4. 合并到 main:
|
||
```bash
|
||
git checkout main
|
||
git merge release/x.y.z
|
||
git tag -a vx.y.z -m "Release vx.y.z"
|
||
git push origin main --tags
|
||
```
|
||
|
||
5. 合并回 develop:
|
||
```bash
|
||
git checkout develop
|
||
git merge main
|
||
```
|
||
|
||
---
|
||
|
||
## 社区行为准则
|
||
|
||
### 我们的承诺
|
||
|
||
为了营造开放和友好的环境,我们承诺:
|
||
- 尊重不同的观点和经验
|
||
- 优雅地接受建设性批评
|
||
- 关注对社区最有利的事情
|
||
|
||
### 不可接受的行为
|
||
|
||
- 使用性化的语言或图像
|
||
- 恶意评论或人身攻击
|
||
- 公开或私下骚扰
|
||
- 未经许可发布他人的私人信息
|
||
|
||
### 报告问题
|
||
|
||
如果遇到问题,请联系项目维护者。
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
- [返回快速开始](./quick-start.md)
|
||
|
||
---
|
||
|
||
> **文档维护**: 本文档由开发团队维护,如有问题或建议请提交 Issue。
|
||
> **最后更新**: 2026-05-25
|