今日の英語表現 7/30 · ステップ: PR説明。 例文はすべてこの記事のために作られたものです。実際のレポジトリのPRを持ってきたわけではなく、Issue番号は例です。
目次
一目でわかる一覧
| 表現 | Fixes #1234 / Closes #1234 / Resolves #1234 |
| 意味 | このPRが1234番のIssueを修正します(マージされるとIssueをクローズします)。 |
| 使用箇所 | PR説明、コミットメッセージ |
| 丁寧さ | 該当なし。機械が読み取るフォーマットです。 |
1. 意味とニュアンス
GitHubのドキュメントによると、PR説明やコミットメッセージにクローズキーワードとIssue番号を一緒に書くと、PRとIssueが紐付けられ、PRがマージされるときにIssueが自動的にクローズされます。キーワードは9個あります: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved。ドキュメントでは、大文字で書いたり、キーワードの後ろにコロンをつけたりしても(CLOSES #10, Closes: #10)よいと説明しています。
重要な条件が1つあります。 PRがレポジトリのデフォルトブランチ(通常は main)を対象としている場合のみ キーワードが動作します。リリースブランチを対象とするPRに Fixes を書いても、Issueはクローズされず、紐付けも作成されません。他のレポジトリのIssueを指すときは Fixes owner/repo#1234 のようにレポジトリ名を追加します。Issueが複数ある場合は Fixes #10, fixes #11 のように Issueごとにキーワードをつける 必要があります。
KubernetesのPRテンプレートには Which issue(s) this PR is related to という項目があり、案内文にはIssue番号の前に Fixes をつけるよう書かれています。KubeVirtのPRテンプレートも References 欄に Fixes # 行をあらかじめ用意し、マージされたときにIssueをクローズするにはこの形式で書くよう案内しています。
英語の文としてのニュアンスも把握しておきましょう。 fixes は「バグを直す」、 closes は「Issueを完了する」(機能リクエストやドキュメント作業にも自然)、 resolves はその中間です。機能はすべて同じですが、Issueの性質に合った単語を選ぶと読みやすくなります。
2. 例文
状況 1: バグ修正PRの1行目
Fixes #1234
The restore job now waits for the PVC to be bound before starting the pod.
1行目にキーワードを置き、空行のあとに何を修正したのかを1〜2文で記述します。
状況 2: Issueをクローズせずに紐付けだけを行う場合
Part of #2001. This PR adds the API field only; the controller logic will follow in a separate PR.
大きな作業の一部である場合、 Fixes を使ってはいけません。このPRがマージされた瞬間に、まだ終わっていないIssueがクローズされてしまうためです。 Part of, Related to, Refs などの言葉はキーワードではないため、Issueをクローズしません。
状況 3: レビュアーが紐付けを求めるとき
Could you add
Fixes #1234to the PR description so the issue gets closed on merge?
3. 似た表現との違い
- Closes #1234. 機能リクエストやドキュメント作業のように「バグ」ではないIssueにより自然です。動作は同じです。
- Related to #1234 / Refs #1234. 紐付けのみを行い、クローズしません。GitHubは番号をリンクに変換し、Issue側に言及の記録を残します。
- Follow-up to #1200. 以前のPRの後続作業であることを意味します。10個の follow-up PRにつながります。
4. 韓国人がよく犯すミス
- This PR is for fixing the issue #1234. 文としては通じますが、キーワードの形式ではないためIssueがクローズされない可能性があります。また、 the issue #1234 のように冠詞をつけません。
- 修正した文: Fixes #1234
- Fix #1234 issue. 命令文のように見え、 issue が後ろにつくため不自然です。
- 修正した文: Fixes #1234
- Fixes #10, #11 2番目のIssueにはキーワードがないためクローズされません。
- 修正した文: Fixes #10, fixes #11
5. 1行練習
次の内容をPR説明の最初の2行として書いてください。このPRはIssue 3456番の一部のみを解決します。
3456番Issueの一部です。今回のPRではドキュメントのみを修正します。
模範解答
Part of #3456
This PR only updates the docs. The code change will follow in a separate PR.
一部のみを解決するため、 Fixes の代わりに Part of を使います。 will follow は「後ほど続く、後に続く」という意味です。
Titiの一言。 Fixes はGitHubが読み込んで動作するキーワードです。Issueが完全に解決されたときのみ使用します。
参考
- GitHub Docs, Linking a pull request to an issue: https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue
- Kubernetes PRテンプレート: https://github.com/kubernetes/kubernetes/blob/master/.github/PULL_REQUEST_TEMPLATE.md
- KubeVirt PRテンプレート: https://github.com/kubevirt/kubevirt/blob/main/.github/PULL_REQUEST_TEMPLATE.md