# PR 规范 本文档用于说明向 MAA Meow 提交 Pull Request(PR)时的基本约定,帮助贡献者和维护者更快确认改动范围、验证结果与合并风险。 ## 基本原则 - **目标分支**:默认提交到 `main` 分支。 - **范围单一**:一个 PR 只解决一个明确问题,避免混入无关重构、格式化或依赖更新。 - **说明完整**:PR 描述应写清楚改动原因、影响范围、验证方式和已知风险。 - **尽早 Draft**:需求或实现方向尚未确定时,请先创建 Draft PR,方便提前讨论。 - **自己负责**:可以使用 AI 辅助,但提交者必须理解并能解释 PR 中的关键改动。 ## 分支与提交 ### 分支命名 推荐使用以下格式: | 类型 | 示例 | 适用场景 | |------|------|----------| | `feat/` | `feat/schedule-profile` | 新增功能 | | `fix/` | `fix/background-service` | 修复 Bug | | `docs/` | `docs/pr-guidelines` | 文档改动 | | `refactor/` | `refactor/task-runner` | 不改变行为的结构调整 | | `chore/` | `chore/update-gradle` | 构建、依赖、工具等维护工作 | ### 提交信息 推荐遵循 [约定式提交(Conventional Commits)](https://www.conventionalcommits.org/zh-hans/v1.0.0/): ```text (): ``` 示例: ```text feat(schedule): 添加定时任务配置 fix(background): 修复后台任务启动失败 docs: 补充 PR 规范 ``` `scope` 可选,建议填写影响范围。`subject` 使用简短描述,不以句号结尾。 ## PR 标题 PR 标题建议与提交信息保持一致,方便维护者快速判断变更类型: | 推荐标题 | 不推荐标题 | |----------|------------| | `feat(schedule): 添加定时任务配置` | `添加新功能` | | `fix(background): 修复后台任务启动失败` | `修一下后台` | | `docs: 补充构建说明` | `update docs` | 如果 PR 仍在开发中,请使用 GitHub Draft PR,而不是在标题前长期保留 `WIP`。 ## PR 描述 PR 描述至少应包含以下信息: ### 关联内容 - 关联 Issue:`Closes #123`、`Fixes #123` 或 `Related #123` - 如果没有 Issue,请说明需求来源、复现方式或为什么需要这个改动 ### 变更摘要 用 2~5 条 bullet 说明改了什么,例如: - 调整后台任务启动流程 - 新增 Profile 配置校验 - 更新构建文档中的 JDK 要求 ### 验证记录 说明你做过哪些验证。不要只写“已测试”,应写清楚设备、系统版本、权限方案、执行命令或操作路径。 推荐格式: ```markdown ## 验证 - [x] Android Studio Sync Project with Gradle Files 成功 - [x] 执行 `./gradlew assembleDebug` 成功 - [x] Android 14 / Shizuku 环境下验证后台模式可启动任务 ``` ### 截图、日志与素材 涉及 UI、权限、后台服务、任务执行或 Bug 修复时,应尽量提供: - 修改前后的截图或录屏 - 崩溃堆栈、Logcat 关键片段或 GitHub Actions 链接 - 复现步骤、测试设备、Android 版本与权限方案(Shizuku / Root) - 对 MAA Core、资源文件或第三方依赖的影响说明 ## 变更要求 ### Android / Kotlin 改动 - 保持代码路径清晰,避免把 UI、权限、后台服务与任务调度逻辑揉在同一个大函数里。 - 修改权限、后台执行、通知、无障碍或 Shizuku / Root 相关逻辑时,需要说明兼容性影响。 - 新增用户可见配置、文案或交互时,应同步更新相关文档或截图说明。 - 涉及长时间运行任务时,应考虑取消、异常处理和资源释放路径。 ### 构建与依赖改动 - 修改 Gradle、JDK、Android SDK、NDK、CMake 或工作流配置时,应说明动机和影响范围。 - 依赖升级需要提交对应锁定/配置文件变更,并说明是否影响最低系统版本或 ABI。 - 不要提交本地构建产物、IDE 缓存、下载得到的大体积资源或调试文件。 ### 文档改动 - 用户可见行为、构建步骤、权限要求或自动化接口发生变化时,应同步更新文档。 - 中英 README 中已有对应入口时,建议同时维护,避免两个入口的信息不一致。 - 文档链接应使用仓库内相对路径,避免绑定到固定分支或个人 fork。 ## 提交前检查清单 提交 PR 前至少自查: - [ ] PR 目标分支是 `main` - [ ] PR 标题清晰,最好符合约定式提交格式 - [ ] 变更范围单一,没有混入无关改动 - [ ] 已同步最新 `origin/main` - [ ] 已说明变更原因、影响范围和验证结果 - [ ] 涉及 Android 行为时,已说明测试设备、系统版本和权限方案 - [ ] 涉及构建、依赖或工作流时,已提供对应命令或 Actions 验证结果 - [ ] 文档已随用户可见行为或开发约定同步更新 - [ ] 没有提交缓存、构建产物、调试文件或大体积资源 ## 评审与合并 - 维护者可能要求补充日志、截图、复现步骤或验证记录;请在同一 PR 中继续修正。 - 如果评审意见涉及设计方向,请先回复确认方案,再继续大量改动。 - PR 被合并后,如发现后续问题,请新开 Issue 或 PR 跟进,不要在已合并 PR 中继续讨论新的无关需求。