# 贡献指南 感谢你对 DeepAudit 的关注!我们热烈欢迎所有形式的贡献,无论是提交 Issue、创建 PR,还是改进文档。 ## 目录 - [行为准则](#行为准则) - [如何贡献](#如何贡献) - [开发环境搭建](#开发环境搭建) - [代码规范](#代码规范) - [提交规范](#提交规范) - [Pull Request 流程](#pull-request-流程) --- ## 行为准则 请在参与项目时保持友善和尊重。我们致力于为每个人提供一个开放、包容的环境。 --- ## 如何贡献 ### 报告 Bug 1. 先搜索 [Issues](https://github.com/lintsinghua/DeepAudit/issues) 确认问题未被报告 2. 创建新 Issue,使用 Bug 报告模板 3. 提供详细信息: - 操作系统和版本 - 部署方式(Docker/本地) - 复现步骤 - 错误日志或截图 - 期望行为 vs 实际行为 ### 提出新功能 1. 先搜索 Issues 确认功能未被提出 2. 创建新 Issue,描述: - 功能需求背景 - 期望的实现方式 - 可能的替代方案 ### 改进文档 文档改进同样重要!你可以: - 修复文档中的错误 - 补充缺失的说明 - 改进文档结构 - 添加使用示例 ### 贡献代码 1. Fork 本项目 2. 创建功能分支 3. 编写代码和测试 4. 提交 Pull Request --- ## 开发环境搭建 ### 环境要求 | 依赖 | 版本要求 | 说明 | |------|---------|------| | Node.js | 18+ | 前端运行环境 | | Python | 3.13+ | 后端运行环境 | | PostgreSQL | 15+ | 数据库 | | pnpm | 8+ | 推荐的前端包管理器 | | uv | 最新版 | 推荐的 Python 包管理器 | ### 数据库准备 ```bash # 使用 Docker 启动 PostgreSQL(推荐) docker run -d \ --name deepaudit-db \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DB=deepaudit \ -p 5432:5432 \ postgres:15-alpine ``` ### 后端启动 ```bash # 1. 进入后端目录 cd backend # 2. 创建虚拟环境 uv venv source .venv/bin/activate # Linux/macOS # 或 .venv\Scripts\activate # Windows # 3. 安装依赖 uv pip install -e . # 4. 配置环境变量 cp env.example .env # 编辑 .env 文件,配置数据库和 LLM 参数 # 5. 初始化数据库 alembic upgrade head # 6. 启动后端服务 uvicorn app.main:app --reload --port 8000 ``` ### 前端启动 ```bash # 1. 进入前端目录 cd frontend # 2. 安装依赖 pnpm install # 3. 配置环境变量(可选) cp .env.example .env # 4. 启动开发服务器 pnpm dev ``` --- ## 代码规范 ### 后端 (Python) - 使用 Python 3.11+ 类型注解 - 遵循 PEP 8 代码风格 - 使用 Ruff 进行代码格式化和检查 - 使用 mypy 进行类型检查 ```bash # 代码格式化 ruff format app # 代码检查 ruff check app # 类型检查 mypy app ``` ### 前端 (TypeScript/React) - 使用 TypeScript 严格模式 - 遵循 React 最佳实践 - 使用 Biome 进行代码格式化和检查 ```bash # 代码检查 pnpm lint # 类型检查 pnpm type-check # 代码格式化 pnpm format ``` ### 通用规范 - 变量和函数使用有意义的命名 - 添加必要的注释,特别是复杂逻辑 - 保持函数简短,单一职责 - 避免硬编码,使用配置或常量 --- ## 提交规范 我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范。 ### 提交格式 ``` ():