感谢你为 MTGA 项目做贡献。
本文档面向社区贡献者,说明从环境准备到提交 PR 的完整流程。
- 所有功能/修复改动都通过 Pull Request 合入。
- PR 目标分支必须是
dev。 - 保持改动聚焦:一个 PR 只解决一个问题或一类需求。
- 不要提交生成产物或本地环境目录(如
node_modules/、src-tauri/target/、dist/、.venv/)。
- Node.js(见
package.json中engines.node约束) - pnpm
- uv(Python 依赖与运行)
- Rust toolchain(用于
src-tauri/)
pnpm i
uv sync --project python-src- 需要运行 Python 时,一律使用
uv run ...。 - 不要直接使用
python ...。
本项目推荐使用 git-flow-next 规范化管理分支与发布流程。
- Linux/macOS:
brew install gittower/tap/git-flow-next- Windows:
- 在 git-flow-next 的 Release 页面下载可执行文件。
- 放到你希望的目录。
- 将该目录加入
PATH。
在仓库根目录执行:
pnpm gitflow:setup初始化后,其余操作基本遵循 git-flow-next 官方规范。
提交信息使用 Conventional Commits,例如:
feat: add xxxfix: resolve xxxchore: update xxxfeat(tauri): add xxx
pnpm dev:all- Python 改动:
pnpm py:check- YAML 改动:
pnpm eslint . --fix- Rust 改动:
pnpm rs:check- JS/TS/Vue 改动:
pnpm app:check提交 PR 时请确保:
- 目标分支是
dev。 - 描述清楚变更目的、影响范围、验证方式。
- 涉及 UI 变更时附截图。
- 涉及
src-tauri/tauri.conf.json或src-tauri/capabilities/变更时说明权限影响。
release:push仅用于维护者最终发版。- 社区开发者请忽略该命令,不需要执行。
仓库规则要求贡献 PR 的目标分支是 dev。请将 PR 的 base branch 修改为 dev。
- 先确认已按改动类型执行对应检查命令。
- 再对照 CI 日志定位平台差异或环境差异。
- 若是 Tauri/Rust 相关问题,优先查看
src-tauri/相关配置和构建日志。