3.2 KiB
3.2 KiB
贡献指南
感谢您对 HtmlToPdf Service 的关注!我们欢迎任何形式的贡献。
如何贡献
报告 Bug
如果你发现了 Bug,请通过 GitHub Issues 报告。创建 Issue 时请包含:
- 问题的详细描述
- 复现步骤
- 预期行为 vs 实际行为
- 运行环境(操作系统、.NET 版本、Docker 版本等)
- 相关的日志或错误信息
功能建议
有新功能想法?请创建一个 Feature Request Issue,描述:
- 功能的详细说明
- 使用场景
- 可能的实现方案(可选)
提交代码
-
Fork 仓库
-
克隆你的 Fork
git clone https://github.com/your-username/html-to-pdf.git cd html-to-pdf -
创建功能分支
git checkout -b feature/your-feature-name -
进行开发
- 遵循现有的代码风格
- 添加必要的测试
- 确保所有测试通过
-
提交更改
git add . git commit -m "feat: 添加某某功能" -
推送到你的 Fork
git push origin feature/your-feature-name -
创建 Pull Request
- 描述你的更改
- 关联相关的 Issue(如果有)
开发环境设置
前置要求
- .NET 9.0 SDK
- Docker & Docker Compose
- Node.js 18+(用于管理后台开发)
- Redis(或使用 Docker)
本地开发
# 启动 Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine
# 进入源码目录
cd src
# 还原依赖
dotnet restore
# 运行测试
dotnet test
# 启动服务
dotnet run --project HtmlToPdfService.Api
管理后台开发
cd src/HtmlToPdfService.Admin
npm install
npm run dev
代码规范
C# 代码规范
- 使用 4 空格缩进
- 类名使用 PascalCase
- 私有字段使用
_camelCase前缀 - 方法名使用 PascalCase
- 异步方法以
Async结尾 - 添加 XML 文档注释
提交信息规范
使用 Conventional Commits 格式:
<type>(<scope>): <description>
[optional body]
[optional footer]
Type 类型:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式(不影响功能)refactor: 重构test: 测试相关chore: 构建/工具相关
示例:
feat(api): 添加批量任务提交接口
fix(pool): 修复浏览器池内存泄漏问题
docs: 更新 API 文档
测试
运行测试
cd src
dotnet test
测试覆盖率
dotnet test --collect:"XPlat Code Coverage"
Pull Request 检查清单
提交 PR 前请确保:
- 代码可以正常编译
- 所有测试通过
- 添加了新功能的测试(如适用)
- 更新了相关文档
- 提交信息符合规范
- 代码已格式化
行为准则
参与本项目,请遵守以下准则:
- 尊重所有贡献者
- 保持友善和专业的交流
- 接受建设性的批评
- 关注项目和社区的最佳利益
问题?
如有任何问题,欢迎通过以下方式联系:
再次感谢您的贡献!🎉