# 贡献指南

## 概述

感谢您对 DeEarthX-CE 项目的关注和支持！我们欢迎来自社区的贡献，包括代码提交、问题报告、功能建议等。本指南将帮助您了解如何参与项目开发。

[XCCGit仓库](https://git.xcclyc.cn/xcclyc/DeEarthX-CE)

## 开发环境设置

### 前提条件

在开始贡献之前，请确保您的系统满足以下要求：

- **Node.js**：v22.0+（推荐使用最新稳定版）
- **pnpm**：v8.0+（包管理器）
- **Rust**：最新稳定版（用于 Tauri 构建）
- **Git**：用于版本控制

### 克隆仓库

```bash
git clone https://git.xcclyc.cn/xcclyc/DeEarthX-CE.git
cd DeEarthX-CE
```

### 安装依赖

```bash
pnpm install
```

### 启动开发服务器

```bash
# 启动前端开发服务器
pnpm run dev

# 启动后端开发服务器（如果需要）
pnpm run test
```

## 代码规范

### 代码风格

- **TypeScript**：使用 TypeScript 官方推荐的代码风格
- **Vue**：遵循 Vue 3 风格指南
- **Rust**：遵循 Rust 官方代码风格

### 提交规范

我们使用 Conventional Commits 规范进行提交信息的编写：

```
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
```

**类型**：
- `feat`：新功能
- `fix`：修复 bug
- `docs`：文档更新
- `style`：代码风格调整
- `refactor`：代码重构
- `test`：测试相关
- `chore`：构建、依赖等杂项

## 开发流程

### 分支管理

- `main`：主分支，包含稳定版本
- `develop`：开发分支，包含最新开发内容
- `feature/xxx`：功能分支，用于开发新功能
- `fix/xxx`：修复分支，用于修复 bug

### 开发步骤

1. **创建分支**：从 `develop` 分支创建新的功能或修复分支
2. **开发代码**：实现功能或修复 bug
3. **运行测试**：确保代码通过所有测试
4. **提交代码**：使用规范的提交信息
5. **创建 PR**：向 `develop` 分支提交 Pull Request
6. **代码审查**：等待项目维护者的代码审查
7. **合并代码**：审查通过后，代码将被合并到 `develop` 分支

## 测试

### 运行测试

```bash
# 运行前端测试
pnpm run test:frontend

# 运行后端测试
pnpm run test:backend

# 运行所有测试
pnpm run test
```

### 测试规范

- 为新功能编写单元测试
- 为 bug 修复编写回归测试
- 确保测试覆盖主要功能和边缘情况

## 文档

### 文档更新

- 更新 API 文档以反映代码变更
- 更新用户文档以反映功能变更
- 确保文档与代码保持同步

### 文档规范

- 使用 Markdown 格式
- 保持文档结构清晰
- 提供详细的使用示例

## 问题报告

如果您发现了 bug 或有功能建议，请在 XCCGit Issues 页面提交：

1. **搜索现有问题**：确保问题尚未被报告
2. **创建新问题**：提供详细的问题描述
3. **添加标签**：为问题添加适当的标签
4. **提供复现步骤**：详细说明如何复现 bug
5. **提供环境信息**：包括操作系统、Node.js 版本等

## 功能请求

如果您有新功能的想法，请在 XCCGit Issues 页面提交功能请求：

[XCCGit](https://git.xcclyc.cn/xcclyc/DeEarthX-CE/issues)

1. **搜索现有请求**：确保功能尚未被请求
2. **创建新请求**：提供详细的功能描述
3. **添加标签**：为请求添加 `feature` 标签
4. **说明功能价值**：解释该功能对用户的价值
5. **提供实现建议**：如果有实现思路，欢迎分享

## 代码审查

### 审查流程

1. **接收 PR**：项目维护者接收 Pull Request
2. **代码审查**：审查代码质量、风格和功能
3. **提供反馈**：提出改进建议
4. **修改代码**：根据反馈修改代码
5. **合并 PR**：审查通过后合并代码

### 审查标准

- **代码质量**：代码是否清晰、高效
- **功能完整性**：是否实现了所有需求
- **测试覆盖**：是否有足够的测试
- **文档更新**：是否更新了相关文档
- **兼容性**：是否与现有代码兼容

## 发布流程

### 版本号规范

我们使用语义化版本号（Semantic Versioning）：

```
MAJOR.MINOR.PATCH
```

- `MAJOR`：不兼容的 API 变更
- `MINOR`：向后兼容的功能添加
- `PATCH`：向后兼容的 bug 修复

### 发布步骤

1. **更新版本号**：在 `package.json` 和相关文件中更新版本号
2. **更新 CHANGELOG**：记录版本变更内容
3. **构建项目**：确保项目能够正常构建
4. **运行测试**：确保所有测试通过
5. **创建发布**：在 XCCGit 上创建新的发布
6. **部署**：部署到相关平台

## 行为准则

我们希望所有参与者能够遵循以下行为准则：

- **尊重他人**：尊重所有社区成员，无论其背景如何
- **建设性沟通**：使用友好、建设性的语言进行沟通
- **包容多样性**：欢迎不同背景和观点的贡献者
- **专注于项目**：讨论应集中在项目相关的话题上
- **解决冲突**：以积极的方式解决冲突

## 联系方式

如果您有任何问题或需要帮助，可以通过以下方式联系我们：

- **XCCGit Issues**：用于问题报告和功能请求
- **QQ**：简单直接
- **Email**：用于重要事项的沟通

## 致谢

感谢所有为 DeEarthX-CE 项目做出贡献的开发者和社区成员！您的贡献是项目成功的关键。