签入版本

This commit is contained in:
2026-09-12 17:39:13 +08:00
parent 25c8b039ac
commit 3233d221b0
871 changed files with 103088 additions and 10561 deletions
+224
View File
@@ -0,0 +1,224 @@
# 贡献指南
感谢你对 DjangoAdmin 企业数字化开发平台的关注!我们欢迎任何形式的贡献,包括但不限于:报告 Bug、提出新功能建议、提交代码改进、完善文档等。
## 🐛 报告 Bug
如果你在使用过程中发现了 Bug,请通过 [Issue](https://gitee.com/djangoadmin/DjangoAdmin_Fastapi_EleVue/issues) 提交,并尽量包含以下信息:
1. **问题描述**:清晰简洁地描述遇到的问题
2. **复现步骤**:详细的操作步骤,以便我们能够复现问题
3. **期望行为**:你期望的正确行为是什么
4. **实际行为**:实际发生了什么
5. **环境信息**:
- 操作系统(Windows / macOS / Linux)
- Python 版本
- Node.js 版本
- 数据库类型及版本
- 浏览器及版本
6. **截图或日志**:如有报错信息,请附上截图或控制台日志
## 💡 功能建议
如果你有好的功能建议,也欢迎通过 [Issue](https://gitee.com/djangoadmin/DjangoAdmin_Fastapi_EleVue/issues) 提出。请描述:
1. **使用场景**:这个功能解决什么问题?
2. **期望方案**:你希望如何实现?
3. **替代方案**:是否考虑过其他实现方式?
## 🔧 提交代码
### 开发环境搭建
```bash
# 1. Fork 并克隆项目
git clone https://gitee.com/你的用户名/DjangoAdmin_Fastapi_EleVue.git
cd DjangoAdmin_Fastapi_EleVue
# 2. 添加上游仓库
git remote add upstream https://gitee.com/djangoadmin/DjangoAdmin_Fastapi_EleVue.git
# 3. 安装依赖
pip install -r requirements.txt -r requirements-dev.txt
# 4. 配置环境变量
cp .env.example .env
# 编辑 .env 配置数据库和 Redis 连接
# 5. 初始化数据库
python scripts/init_db.py
# 6. 启动开发服务
python src/main.py
```
### 分支管理
- `main` — 主分支,保持稳定可发布状态
- `dev` — 开发分支,日常开发基于此分支
- `feature/xxx` — 新功能分支,从 `dev` 创建
- `fix/xxx` — Bug 修复分支,从 `dev` 创建
- `docs/xxx` — 文档更新分支
### 提交规范
我们遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
```
<type>(<scope>): <subject>
<body>
<footer>
```
**Type 类型:**
| 类型 | 说明 |
|---|---|
| `feat` | 新功能 |
| `fix` | Bug 修复 |
| `docs` | 文档更新 |
| `style` | 代码格式调整(不影响逻辑) |
| `refactor` | 代码重构(既不修复 Bug 也不添加功能) |
| `perf` | 性能优化 |
| `test` | 测试相关 |
| `chore` | 构建/工具/辅助相关 |
**示例:**
```
feat(user): 新增用户批量导入功能
- 支持 Excel 文件上传导入
- 自动校验用户名唯一性
- 导入结果反馈成功/失败条数
Closes #123
```
```
fix(auth): 修复 Token 过期后刷新失败的问题
Token 刷新接口在 Token 已过期时返回 401,应返回新 Token。
```
### 代码规范
#### Python 后端
- 遵循 [PEP 8](https://peps.python.org/pep-0008/) 代码风格
- 使用类型注解(Type Hints)
- 函数和类必须有文档字符串(中文注释)
- 新增模块遵循四层架构:`models.py` → `schemas.py` → `repository.py` → `service.py`
- API 端点必须添加 `@permission_required` 权限装饰器
- 写操作端点必须添加 `@check_demo` 装饰器
```python
# 示例:新增模块的端点
@router.post('/add')
@permission_required("sys:your_module:add")
@check_demo
async def add(request: Request, data: YourModuleForm):
"""新增记录"""
return await your_module_service.add(request, data)
```
#### TypeScript 前端
- 遵循 ESLint + Prettier 配置
- 使用 TypeScript 严格模式
- 组件使用 Composition API + `<script setup>` 语法
- API 请求统一封装在 `api/` 目录下
### 测试要求
提交代码前请确保:
```bash
# 运行单元测试,确保全部通过
pytest tests/unit
# 运行契约测试,确保路由/权限未意外变更
pytest tests/contract -m contract
# 如有条件,运行集成测试
pytest tests/integration -m integration
```
- 新增功能需附带对应的单元测试
- Bug 修复需附带回归测试,确保问题不再复现
- 测试文件放在 `tests/` 对应目录下
## 📝 提交 Pull Request
### PR 流程
1. **同步上游代码**:
```bash
git fetch upstream
git rebase upstream/dev
```
2. **创建特性分支**:
```bash
git checkout -b feature/your-feature
```
3. **开发并提交**:
```bash
git add .
git commit -m "feat(scope): your feature description"
```
4. **推送到你的 Fork**:
```bash
git push origin feature/your-feature
```
5. **创建 Pull Request**:
- 目标分支选择 `dev`
- 填写 PR 模板,描述改动内容
- 关联相关 Issue
### PR 要求
- ✅ 代码符合项目规范
- ✅ 所有测试通过
- ✅ 提交信息符合 Conventional Commits 规范
- ✅ 新增功能有对应测试覆盖
- ✅ 如有 API 变更,同步更新文档
- ✅ 一个 PR 只做一件事,保持 PR 聚焦
## 📖 完善文档
文档改进同样重要!你可以:
- 修正文档中的错误或过时内容
- 补充使用示例和最佳实践
- 翻译文档到其他语言
- 改善文档结构和可读性
## ❓ 获取帮助
如果你在贡献过程中遇到问题,可以通过以下方式获取帮助:
- 提交 Issue 描述你的问题
- 查阅[开发文档](http://docs.fastapi.elevue.djangoadmin.cn)
- 阅读项目源码中的注释
## 📜 行为准则
- 尊重每一位参与者
- 建设性地提出意见和建议
- 聚焦于对社区最有利的事情
- 对他人表示同理心
再次感谢你的贡献!🎉