バグチケットの進め方 » 履歴 » バージョン 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でそのコミットを開き、「関連するチケット」にそのチケット番号を追加すれば、手動で関連付けることができる。 |