Files
2026-09-12 23:12:15 +08:00

198 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 贡献指南
:::tip 说明
感谢你对本项目的关注!本文档介绍如何参与项目贡献,包括代码提交、Issue 反馈、PR 流程等。
:::
## 开发环境搭建
1. Fork 项目到自己的 Gitee/GitHub 账号
2. 克隆到本地:`git clone https://gitee.com/yourname/DjangoAdmin_Django_EleVue.git`
3. 参考 [开发环境准备](/zh/volume1/environment.html) 安装依赖
4. 创建开发分支:`git checkout -b feature/your-feature`
## 分支策略
| 分支 | 用途 | 说明 |
|------|------|------|
| `main` | 主分支 | 稳定版本,只接受 PR 合并 |
| `develop` | 开发分支 | 日常开发,功能分支从此拉取 |
| `feature/*` | 功能分支 | 新功能开发,完成后合并到 develop |
| `hotfix/*` | 修复分支 | 紧急修复,从 main 拉取,修复后合并回 main |
```
main ─────●─────────────●───── (发布)
↑ ↑
develop ──●──●──●──●──●──●───── (开发)
↑ ↑
feature/a ──●──● feature/b ──●──●
```
## Commit 规范
提交信息遵循 [Conventional Commits](https://www.conventionalcommits.org/) 格式:
```
<type>(<scope>): <subject>
<body>
<footer>
```
### Type 类型
| 类型 | 说明 | 示例 |
|------|------|------|
| `feat` | 新功能 | `feat(user): 添加用户导入功能` |
| `fix` | 修复 bug | `fix(auth): 修复 Token 过期未返回 401` |
| `docs` | 文档更新 | `docs: 更新部署文档` |
| `style` | 代码格式(不影响功能) | `style: 格式化代码` |
| `refactor` | 重构(非新功能非修复) | `refactor(service): 重构分页查询逻辑` |
| `perf` | 性能优化 | `perf(query): 优化 N+1 查询` |
| `test` | 测试相关 | `test: 添加用户模块单元测试` |
| `chore` | 构建/工具相关 | `chore: 更新依赖版本` |
### 示例
```
feat(generator): 支持树形表格模板生成
- 新增 ui2/ 树形模板目录
- 自动识别 parent_id/pid 字段
- 支持 el-tree-select 组件
Closes #123
```
## PR 流程
### 1. 准备工作
```bash
# 1. 同步上游代码
git fetch upstream
git rebase upstream/develop
# 2. 创建功能分支
git checkout -b feature/your-feature
# 3. 开发并提交
git add .
git commit -m "feat(xxx): 添加xxx功能"
# 4. 推送到自己的仓库
git push origin feature/your-feature
```
### 2. 创建 PR
- 标题简洁明了,遵循 Commit 规范
- 描述清楚做了什么、为什么做、怎么测试的
- 关联相关的 Issue(如 `Closes #123`)
- 附上截图或 GIF(如有 UI 变更)
### 3. PR 模板
```markdown
## 变更说明
简要描述本次变更的内容。
## 变更类型
- [ ] 新功能 (feat)
- [ ] Bug 修复 (fix)
- [ ] 文档更新 (docs)
- [ ] 代码重构 (refactor)
- [ ] 性能优化 (perf)
## 测试情况
- [ ] 本地测试通过
- [ ] 添加了单元测试
- [ ] 手动验证了功能
## 关联 Issue
Closes #xxx
```
### 4. 代码审查
- 至少一人审查通过后方可合并
- 审查关注:正确性 > 安全性 > 可维护性 > 性能
- 参考 [代码审查清单](/zh/volume7/code-review.html)
## Issue 规范
### Bug Report
```markdown
## Bug 描述
简要描述遇到的问题。
## 复现步骤
1. 打开 xxx 页面
2. 点击 xxx 按钮
3. 输入 xxx 数据
4. 看到错误
## 期望行为
描述你期望的正确行为。
## 实际行为
描述实际发生的行为。
## 环境信息
- OS: Windows 11
- Python: 3.12
- Django: 6.0.3
- Node.js: 18.x
- Browser: Chrome 120
```
### Feature Request
```markdown
## 功能描述
简要描述你希望添加的功能。
## 使用场景
描述这个功能的使用场景和价值。
## 方案建议
如果有实现思路,请描述。
```
## 代码风格
- Python:遵循 PEP 8,使用 Black 格式化
- TypeScript/Vue:遵循 ESLint + Prettier 配置
- 详见 [代码风格与 Lint](/zh/volume7/code-style.html)
## 文档贡献
- 文档位于 `wiki/zh/` 目录,使用 VitePress + Markdown
- 新增功能需同步更新文档
- 文档遵循 [文档规范](/zh/volume7/doc-standard.html)
## 行为准则
- 尊重每一位贡献者
- 建设性地提出意见和建议
- 专注于对社区有益的事情
- 不接受任何形式的骚扰
## 总结
贡献指南涵盖开发环境搭建、分支策略、Commit 规范、PR 流程、Issue 模板、代码风格等内容。核心原则:遵循规范、充分测试、清晰描述、尊重他人。