Skip to content

建立拉取請求指南

UTL_1138 edited this page Nov 5, 2022 · 2 revisions

本页面由“Open Chinese Convert 開放中文轉換”机器转译而成,欢迎精通繁体中文的台湾朋友帮助我们进行人工翻译。

為了確保專案提交歷史記錄具體、精練、便於檢索,提高多人協作和專案管理的效率,我們希望你能遵照本文認真建立拉取請求(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

為拉取請求附上此標識,即表明此拉取請求中的提交不提交到主分支,且不應被合併到主分支。或由於其他原因目前不適合合併。

例如,在預覽版分支中禁用隱私政策:

[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

例外情況

對於 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 資原始檔

修改 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-uiclassic-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 子模組

修改 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 成員直接向專案倉庫提交更改時應當遵循本文的相關規則。
  • FGI 成員應當以“壓縮與合併(Squash and merge)”的方式合併拉取請求,所有提交記錄符合本文規則的拉取請求除外。
  • 執行更改拉取請求的內容、標題或狀態等可能與建立人意思相背的操作時,FGI 成員應當在該拉取請求評論回覆,告知建立人具體的原因。
  • 關閉非因完成而關閉的拉取請求後,FGI 成員應當在該拉取請求評論回覆,告知建立人具體的原因與申請複議的權利。
Clone this wiki locally