198 lines
4.4 KiB
Markdown
198 lines
4.4 KiB
Markdown
# 贡献指南
|
||
|
||
:::tip 说明
|
||
感谢你对本项目的关注!本文档介绍如何参与项目贡献,包括代码提交、Issue 反馈、PR 流程等。
|
||
:::
|
||
|
||
## 开发环境搭建
|
||
|
||
1. Fork 项目到自己的 Gitee/GitHub 账号
|
||
2. 克隆到本地:`git clone https://gitee.com/yourname/DjangoAdmin_Django_NaiveVue.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 模板、代码风格等内容。核心原则:遵循规范、充分测试、清晰描述、尊重他人。
|