プロジェクト

全般

プロフィール

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

toshi_a 初音, 2018-06-30 21:14

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