-
Notifications
You must be signed in to change notification settings - Fork 46
创建拉取请求指南
为了确保项目提交历史记录具体、精练、便于检索,提高多人协作和项目管理的效率,我们希望你能遵照本文认真创建拉取请求(Pull Request)。
注意,对不符合格式的拉取请求,FGI 成员视程度有权降低该拉取请求的处理优先级,甚至直接关闭。另外,我们也有可能更改拉取请求的内容、标题或状态。如果你对拉取请求的处理结果有异议,请在对应拉取请求通过评论的方式申请复议并说明理由。
拉取请求应当主题明确,所包含的更改应当完全符合主题,不得超出主题限制的范围。
例如,一个添加新游戏的拉取请求不得包含对网页样式表的修改。
拉取请求的涉及面应当尽可能单一。
例如,若欲同时提交新游戏和新作者,则应当分别创建拉取请求。
拉取请求的描述应当以 Co-authored-by 形式写明该拉取请求的其他有效贡献者。
拉取请求的完整格式模板:
[标识] 组件或范围: 子组件: 摘要 (引用)
拉取请求的常用格式模板:
组件或范围: 摘要 (引用)
拉取请求的标题应当依照如上模板命名,使用 git revert
撤销提交、使用 git merge --no-ff
或创建合并提交(Create a merge commit)拉取请求合并方式的除外。
Revert "ci/main: fixup indentation"
Merge branch 'next-sublists'
为拉取请求附上此标识,即表明此拉取请求中的提交不提交到主分支,且不应被合并到主分支。或由于其他原因目前不适合合并。
例如,在预览版分支中禁用隐私政策:
[DO NOT MERGE] next: renderers/nonl10n/singles: disable privacy-policy page
组件、范围使用文件路径不带扩展名,本文另有说明的除外。
下面本文将列举常动组件的拉取请求(提交)标题命名示例。
由于添加游戏时的主题是游戏条目这一整体,因此可以同时添加缩略图等资源,无需分拉取请求提交。
添加游戏《形骸骑士》:
games/Kelipot: new game
更新《灵龙岛》的标签和链接:
games/Dragon_Island: update tags and links
更新《矛之酒馆》的中文本地化补丁链接:
games/Tavern_of_Spear: update link of chinese l10n patch
单独更新 The HeartBeat 的缩略图:
assets/The_HeartBeat: update thumbnail
更新 Echo 的本地化游戏数据文件(同时更改两种地区语言的文件):
games/l10n/zh: Echo: update translation for description
更新『バカ部』的本地化游戏数据文件(只更改一种地区语言的文件):
games/l10n/zh-cn: Bakabu: update translation for description
更新多个游戏数据文件:
games: update author info for 3 games from Echo Project
games: remove deprecated property sensitive_media for all entities
更新多个本地化游戏数据文件:
games/l10n/zh: add description-format for all entries
由于添加作者时的主题是作者条目这一整体,因此可以同时添加头像等资源,无需分拉取请求提交。
添加作者“自我剪裁工作室”:
authors/Studio_SelfCropping: new author
单独更新“Zoharwolf”的头像:
assets/_avatar/Zoharwolf: update avatar
修改代码时,当一个模块包含多个类,且只对其中一个类进行修改时,可以使用 子组件:
指定类的名字。
fgi/game: GameDescription: initial brief-description support
test/tagmgr: update unit test case
scripts/build-next: do not use uimod plugin
对于插件代码(fgi/plugins/...),组件或范围:
中应当删除 fgi/
前辍,其余部分照常。
plugins/steam-cdn-unite: add new akamai CDN URI prefix
对于渲染器代码(fgi/renderers/...),组件或范围:
中应当删除 fgi/
前辍,其余部分遵守文件路径。由于 fgi/renderers/
目录曾经是 renderers/
,因此需要如此保证当前格式与历史提交格式相同。
renderers/list: initial multi-klass support
templates: fixup xxx bug
templates/list: use list_item widget
templates/peafowl-private/header: fixup opengraph description escape
样式表文件虽然存放于 webroot/styles/
,但 组件或范围:
中应当删除 webroot/
前辍,其余部分照常。
styles/32_game_entry: add workarounds for Mozilla Firefox
对于 webroot/base/ 下的文件,组件或范围:
中应将 webroot/base/
前辍改为 webroot/
,其余部分照常。由于 webroot/base/
目录曾经是 webroot/
,因此需要如此保证当前格式与历史提交格式相同。
webroot/robots: disallow /classic-ui
webroot/scripts/searchexpr: initial @reverse and @lastmod support
service worker 文件直接使用 sw:
作为 组件或范围:
。
sw: proactive opaque cache avoiding
修改 UI l10n 资源文件时,文件路径中不包括语言的地区分支。
uil10n/zh: add translation for ...
uil10n/zh: add translation for many keys
但若欲修改 _PRIVATE.yaml
后辍的文件,则应当指定语言变体。同时使用 PRIVATE:
作为 子组件
。
uil10n/zh-tw: PRIVATE: add hotfix for list-klass-platform-mobile
doc/search_help: add more exampless
若欲修改 staging-ui
和 classic-ui
下的文件,则应当使用 staging-ui:
或者 classic-ui/UI包代号:
作为 组件或范围:
,同时使用其余的文件名部分作为 子组件
。
staging-ui: styles/32_game_entry: add workarounds for Mozilla Firefox
classic-ui/pioneer: templates/pioneer-private/header: fixup build
修改 git 子模块文件不得使用 子组件:
。
更新 FGI 自有图标仓库的图标:
icons: bump to lastest version
对于第三方维护的仓库,master
可以替换为大部分的 git 引用,可以是分支名、标签或 commmit hash,但不能是 HEAD 等。
some_thirdparty/some_submodule: bump to upstream master
写明全树范围(treewide)的提交表示修改覆盖了整个源代码树,提交的内容通常是和具体组件不太相关的修改。
修改全树范围文件不得使用 子组件:
。
treewide: fixup line endings
treewide: run zhconv
拉取请求的摘要必须以英文书写,开头小写。
拉取请求的引用为查找和此补丁修改内容的相关地址,以便于审查者通过这些链接找到和此修改的更多原因和其他信息。引用的具体方式详见 GitHub 官方文档 Linking a pull request to an issue。
games/Deers_and_Deackards: new game (#691)
game/TianHeHui: update tags and links (#246)
未准备好供 FGI 成员审查的拉取请求应当设置为“草稿(Draft)”状态,直到该拉取请求准备好供 FGI 成员审查。
- FGI 成员直接向项目仓库提交更改时应当遵循本文的相关规则。
- FGI 成员应当以“压缩与合并(Squash and merge)”的方式合并拉取请求,所有提交记录符合本文规则的拉取请求除外。
- 执行更改拉取请求的内容、标题或状态等可能与创建人意思相背的操作时,FGI 成员应当在该拉取请求评论回复,告知创建人具体的原因。
- 关闭非因完成而关闭的拉取请求后,FGI 成员应当在该拉取请求评论回复,告知创建人具体的原因与申请复议的权利。