プロジェクト

全般

プロフィール

バグチケットの進め方 » 履歴 » バージョン 12

toshi_a 初音, 2019-12-26 00:23

1 1 toshi_a 初音
{{>toc}}
2
3 12 toshi_a 初音
!バグ.png!
4
5 1 toshi_a 初音
h1. 進め方
6
7 2 toshi_a 初音
トラッカー「バグ」は、[[ロール#報告者|報告者]]がある現象をバグだと考えて報告する場合に使われる。
8 1 toshi_a 初音
9
基本的な流れとしては、
10
11 2 toshi_a 初音
# [[ロール#コミッタ|コミッタ]]が、それは仕様なのかバグなのか判断する(分類待ち)
12 1 toshi_a 初音
# バグであると判断した場合、修正パッチを募集する(実装待ち)
13
# 修正パッチを試用し、レビューする(パッチ適用待ち、レビュー待ち)
14
# 適切なブランチにmergeする(マージ待ち)
15
16
というふうになる。
17
18
h2. ステータス「分類待ち」の場合
19
20 2 toshi_a 初音
この場合、[[ロール#モデレータ|モデレータ]]がそれがバグなのか、または意図した挙動なのかを判断し返信する。
21 1 toshi_a 初音
22 6 toshi_a 初音
h3. それがバグではないと判断できる場合
23 1 toshi_a 初音
24 6 toshi_a 初音
明らかに見当違いであったり、議論の末報告された問題はバグではなく、修正する必要がないと判断した場合はチケットを以下のように更新する。
25 1 toshi_a 初音
26 6 toshi_a 初音
* *ステータス*: 「却下」
27 1 toshi_a 初音
28
他にも、以下のような場合は「却下」となる。
29
30
* Twitter関連のバグだったが、TwitterがAPIの提供を止めたなど、修正する意味が無くなった
31 6 toshi_a 初音
* 提案には一理あるが、プログラムではなく当初の考え方に問題があり、どちらかといえば機能追加となってしまう場合(この場合は、パッチが添付されていればトラッカーを「提案」に変えることができる)
32 1 toshi_a 初音
* [[ロール#報告者|報告者]]以外誰も再現できておらず、その後[[ロール#報告者|報告者]]としばらく連絡が取れない場合
33
34 6 toshi_a 初音
h3. バグか仕様か判断できない場合
35
36
議論をしても報告された内容が仕様なのかバグなのか判断できない場合、チケットを以下のように更新する。
37
38
* *ステータス*: 「toshi_aの判断待ち」
39
40
この場合、 *担当者を変更する必要はない* 。
41
42
このステータスへの遷移は、[[ロール#モデレータ|モデレータ]]の誰か一人でもtoshi_aが判断すべきと考えたら即座に行って良い。
43
44 1 toshi_a 初音
h3. 修正パッチがある場合
45
46
しばしば、バグ報告にいきなり修正パッチがついている場合がある。この場合、ステータスは「パッチ適用待ち」にする。
47
48
この遷移は、報告された問題の存在さえ確認できていれば、パッチの良し悪しに関わらず行って良い。パッチ自体の品質については、あとで判断する。
49
50 10 toshi_a 初音
この遷移を行う人が[[ロール#コミッタ|コミッタ]]である場合、パッチを添付するのではなく、変更を新しいブランチとしてpushし、ブランチ名を書かなければならない。
51
52 1 toshi_a 初音
h3. パッチがない場合
53
54 2 toshi_a 初音
[[ロール#報告者|報告者]]がパッチを添付しない場合は、[[ロール#モデレータ|モデレータ]]はステータスを「実装待ち」にする。
55 1 toshi_a 初音
56
h2. ステータス「実装待ち」の場合
57
58
このステータスは、誰かが修正するのを待っている場合、又は修正方法を議論している場合。
59
60
h3. コミッタ
61
62 2 toshi_a 初音
[[ロール#コミッタ|コミッタ]]は、このチケットの問題を解決するコミットをすることができる。
63 1 toshi_a 初音
64 11 Yuto Tokunaga
くわしいルールについては、 [[#ブランチの起点について|ブランチの起点について]] に従う。
65 1 toshi_a 初音
66
このブランチをPushしたら、チケットのステータスを「レビュー待ち」に変更する。
67
68
この時、次のフィールドをそれぞれ以下のようにする。
69
70
* *ステータス*: 「レビュー待ち」
71
* *ブランチ名*: コミットしたブランチ名を入れる。
72 2 toshi_a 初音
* *担当者*: ([[ロール#報告者|報告者]])。この更新をしている本人が[[ロール#報告者|報告者]]だった場合は担当なしにする。
73 1 toshi_a 初音
74
h3. コミッタ以外
75
76 2 toshi_a 初音
[[ロール#コミッタ|コミッタ]]でない人でも修正パッチを添付して注記を追加することができる。この場合は、同時にステータスを「パッチ適用待ち」にする。
77 1 toshi_a 初音
78
h2. ステータス「パッチ適用待ち」の場合
79
80 2 toshi_a 初音
このステータスの時にやるべきことは、単にそのパッチをコミットすることである。したがって、このステータスのチケットは[[ロール#コミッタ|コミッタ]]しか操作することができない。
81 1 toshi_a 初音
82
h3. パッチをコミットする
83
84 2 toshi_a 初音
[[ロール#コミッタ|コミッタ]]は、「パッチ適用待ち」のコミットを見たら、いつでもこのパッチをコミットできる。
85 1 toshi_a 初音
86 8 toshi_a 初音
詳細は [[リポジトリのブランチ名の規約|リポジトリのブランチ名の規約]] に従う。
87 1 toshi_a 初音
88
ただし、コミットする時にはgitコマンドの--authorオプションを使って、パッチを作った人をAuthorにすること。
89
90
このブランチをPushしたら、チケットのステータスを「レビュー待ち」に変更する。
91
92
この時、次のフィールドをそれぞれ以下のようにする。
93
94
- *ステータス*: 「レビュー待ち」
95
- *ブランチ名*: コミットしたブランチ名を入れる。
96
- *担当者*: ([[ロール#修正者|修正者]])
97 6 toshi_a 初音
98
h2. ステータス「toshi_aの判断待ち」の場合
99
100
このステータスの場合、toshi_aが「パッチ適用待ち」または「却下」にする。
101
102
このステータスになっていても、他のユーザがこのチケットについて意見を注記に書いて良い。
103 1 toshi_a 初音
104
h2. ステータス「レビュー待ち」の場合
105
106
このステータスになる時、必ずカスタムフィールド「ブランチ名」に、修正がコミットされたブランチが書いてある。
107
108
h3. チケットの担当者が設定されてる場合
109
110
この場合は、設定された担当者がそのブランチをチェックアウトして動作確認を行う。
111
112
結果、このチケットで指摘されているバグが修正されたことが確認できたら、ステータスを「マージ待ち」にする。
113
114
* *ステータス*: 「マージ待ち」
115
116
稀に、正しく意図が伝わっていなかったり別のバグが発生していることもある。そういう時にはチケットのフィールドを以下のように更新する。
117
118
* *ステータス*: 「まだダメ」
119
* *担当者*: このチケットのステータスを「レビュー待ち」に変えた人
120
* *注記*: どういった不具合が発生しているかを詳細に説明する。UI関連ならスクリーンショットなどを貼ると良い。
121
122 9 toshi_a 初音
h3. チケットの担当者が設定されていない場合
123
124
[[ロール#修正者|修正者]]以外の[[ロール#モデレータ|モデレータ]]がそのブランチをチェックアウトして動作確認を行う。
125
126
結果、このチケットで指摘されているバグが修正されたことが確認できたら、ステータスを「マージ待ち」にする。
127
128
* *ステータス*: 「マージ待ち」
129
130
稀に、正しく意図が伝わっていなかったり別のバグが発生していることもある。そういう時にはチケットのフィールドを以下のように更新する。
131
132
* *ステータス*: 「まだダメ」
133
* *担当者*: このチケットのステータスを「レビュー待ち」に変えた人
134
* *注記*: どういった不具合が発生しているかを詳細に説明する。UI関連ならスクリーンショットなどを貼ると良い。
135
136 1 toshi_a 初音
h2. ステータス「マージ待ち」の場合
137
138 2 toshi_a 初音
このステータスになったチケットは、全ての修正、確認が終わっている。したがって[[ロール#コミッタ|コミッタ]]はすぐにこれをmergeしてよい。
139 1 toshi_a 初音
140
ただし、mergeするブランチには注意すること。次のルールに従う。
141
142
* *developブランチから派生したブランチ* → developブランチにmergeする
143
* *タグ又はmasterから派生したブランチ* → masterブランチにmergeする
144
145
上記のルールに従ってmasterかdevelopにmergeしたら、チケットのフィールド「ブランチ名」のブランチは削除する。
146
147
その後、チケットのフィールドを以下のように更新する。
148
149
* *ステータス*: 「終了」
150
151 7 toshi_a 初音
また、masterにmergeした場合は、そのmasterを更にdevelopにmergeしてもよい(see: [[リポジトリのブランチ名の規約]])。逆の、developをmasterにmergeするのは、マイナーリリースを行う時なので、toshi_a以外が行ってはならない。
152 1 toshi_a 初音
153
h1. その他
154
155
h2. ブランチの起点について
156
157
ブランチ名は @topic/(チケット番号)-(適当な説明)@ という書式にする(例: <code>topic/1234-fix-hogehoge</code>)。
158
159
また、ブランチを始めるリビジョンも重要になってくる。以下のうちのどれかを選択する。可能な限り上のものを選択すること。
160
161
* そのチケットの対象バージョンがサポートされているバージョンなら、最新の版のタグ
162
* masterのHEAD
163
* developのHEAD
164
165
例えば最新バージョンが1.1.4で、1.2を開発中だとすると:
166
167
* チケットの対象バージョンが1.1だった場合、タグ「1.1.4」からブランチを作る。
168
* 開発終了した1.0が対象バージョンだった場合、タグ「1.1.4」からブランチを作る。
169
* そのバグが未リリース(まだタグを打たれていないmasterブランチ)の場合、masterブランチのHEADからブランチを作る。
170
* チケットの対象バージョンが1.2だった場合、developブランチのHEADからブランチを作る。
171
172
となる。
173
174
また、コミットの一行目の末尾には、「refs #(チケット番号)」を必ず入れること。これによって自動的にチケットとコミットが関連付けられる。
175
176
もしPushしてからrefsの入れ忘れに気づいてしまった場合は、Redmineでそのコミットを開き、「関連するチケット」にそのチケット番号を追加すれば、手動で関連付けることができる。