Skip to Content
文档贡献指南

贡献指南

感谢您对 MTPC 项目的关注和贡献!

如何贡献

报告 Bug

如果您发现了 Bug,请通过以下步骤报告:

  1. GitHub Issues  中搜索是否已有相同的问题
  2. 如果没有,创建一个新的 Issue,包含:
    • 清晰的标题
    • 详细的问题描述
    • 复现步骤
    • 期望的行为
    • 实际的行为
    • 环境信息(Node.js 版本、MTPC 版本等)
    • 相关的代码片段或日志

提出新功能

如果您有新功能的想法,请:

  1. GitHub Discussions  中讨论您的想法
  2. 创建一个 Issue 描述新功能:
    • 功能描述
    • 使用场景
    • 实现建议
    • 可能的影响

提交代码

开发流程

  1. Fork 项目到您的 GitHub 账户
  2. 克隆您的 Fork:
    git clone https://github.com/your-username/mtpc.git cd mtpc
  3. 安装依赖:
    pnpm install
  4. 创建新的分支:
    git checkout -b feature/your-feature-name
  5. 进行开发
  6. 提交您的更改:
    git add . git commit -m "feat: add your feature description"
  7. 推送到您的 Fork:
    git push origin feature/your-feature-name
  8. 创建 Pull Request

提交信息规范

我们使用 Conventional Commits  规范:

  • feat: 新功能
  • fix: Bug 修复
  • docs: 文档更新
  • style: 代码格式调整(不影响功能)
  • refactor: 重构(既不是新功能也不是 Bug 修复)
  • test: 测试相关
  • chore: 构建过程或辅助工具的变动

示例:

feat: add support for custom permission scopes fix: resolve issue with role binding validation docs: update installation guide refactor: simplify resource definition API

代码规范

  • 使用 TypeScript 进行类型检查
  • 使用 Biome 进行代码格式化
  • 遵循项目的代码风格
  • 添加适当的注释和文档
  • 为新功能添加测试

测试

在提交 PR 之前,请确保:

  1. 所有测试通过:
    pnpm test
  2. 代码格式正确:
    pnpm lint
  3. 类型检查通过:
    pnpm typecheck

文档贡献

如果您想改进文档,可以:

  1. 直接编辑 apps/site 目录下的 MDX 文件
  2. 遵循现有的文档风格和格式
  3. 提交 PR

Pull Request 流程

PR 检查清单

在提交 PR 之前,请确保:

  • 代码通过所有测试
  • 代码通过类型检查
  • 代码通过 lint 检查
  • 添加了必要的测试
  • 更新了相关文档
  • 提交信息符合规范
  • PR 描述清晰完整

PR 描述模板

## 描述 简要描述这个 PR 的目的和内容 ## 变更类型 - [ ] Bug 修复 - [ ] 新功能 - [ ] 文档更新 - [ ] 代码重构 - [ ] 性能优化 - [ ] 其他 ## 相关 Issue Closes #123 ## 变更内容 - 变更 1 - 变更 2 ## 测试 描述如何测试这些变更 ## 截图(如果适用) 添加截图展示变更效果 ## 检查清单 - [ ] 代码通过所有测试 - [ ] 代码通过类型检查 - [ ] 代码通过 lint 检查 - [ ] 添加了必要的测试 - [ ] 更新了相关文档

开发环境设置

必要工具

  • Node.js >= 18
  • pnpm >= 8
  • Git

安装依赖

pnpm install

运行开发服务器

pnpm dev

运行测试

# 运行所有测试 pnpm test # 运行特定包的测试 pnpm --filter @mtpc/core test # 监听模式 pnpm test --watch

构建项目

# 构建所有包 pnpm build # 构建特定包 pnpm --filter @mtpc/core build

项目结构

mtpc/ ├── apps/ │ ├── example-api/ # 示例 API 应用 │ └── site/ # 文档网站 ├── packages/ │ ├── core/ # 核心包 │ ├── rbac/ # RBAC 扩展 │ ├── adapter-hono/ # Hono 适配器 │ └── adapter-drizzle/ # Drizzle 适配器 └── docs/ # 额外文档

社区规范

行为准则

  • 尊重所有贡献者
  • 接受建设性的批评
  • 专注于对社区最有利的事情
  • 对其他社区成员表示同理心

沟通渠道

  • GitHub Issues:Bug 报告和功能请求
  • GitHub Discussions:一般讨论和问题
  • Discord/Slack(如果有):实时交流

获取帮助

如果您在贡献过程中遇到问题:

  1. 查看 文档
  2. 搜索 GitHub Issues 
  3. GitHub Discussions  中提问
  4. 联系维护者

许可证

通过贡献代码,您同意您的贡献将根据项目的许可证进行许可。

致谢

感谢所有贡献者的辛勤付出!


继续学习: 常见问题

Last updated on