この記事は、Android#2のアドベントカレンダーの20日目の記事になります。
初めてGoogle Issue Trackerに不具合報告した話になります
経緯
ViewPager2のβ版を使って色々試していた際に謎挙動に遭遇。
ググっていろいろ調べた結果解決策がなさそうだということが判明しました。
そういえばIssue Tracker みたいなのあったなーと思い出し、
そこで不具合報告されてないかと調べてみましたが、
残念ながらそれらしい報告はありませんでした。
それなら自分で報告してしまおうということでIssue TrackerでIssueを作成することにしました。
(ちなみに遭遇した不具合は
CoordinatorLayout
とScrollViewを内包したViewPager2
を使った場合ViewPager2の横スクロールの挙動がおかしくなる
というものでした)
Issue作成に必要無なもの
ひとまず Create Issue
ボタンを押し必要な項目を確認しました
必要なのは以下の3つなのがわかりました
- Component
- 今回はViewPager2についての不具合報告なのでとりあえず
ViewPager2
と入力します - そうすると補完候補にViewPager2のComponentが出てくるのでそれを選択。
- 今回はViewPager2についての不具合報告なのでとりあえず
- Title
- Description
最初の難関
最初の難関。それは英語でした。
恥ずかしながら私は英語が苦手です。
プログラムのエラー文程度ならなんとか読めますし、分からなければGoogle翻訳などを使えばなんとかなります。
ただ、これは英語を読む場合の話。
書く場合はどうしたら良いのだろうと一瞬悩みましたが、とりあえずGoogle翻訳に頼ることにしました.
箇条書きで不具合の発生条件と内容を日本語で書き出し、それをGoogle翻訳で翻訳し、その後手直しする という方法で行くことにしました。
Issueタイトル
本文はできましたがタイトルがまだできていません。
他のIssueのタイトルを見てみると先頭に[ViewPager2]と書いてあるものが多かったのでそれに倣うことにしました。
Issue作成とその後
ここまでの流れの結果できあがったのが以下のIssueです。
(Issue作ったあとで謎挙動のあったバージョンを書き忘れているのに気づき、慌ててコメントを書いています。)
半日程度でリアクションがありました
More information on this in:
http://issuetracker.google.com/124042228#comment3
http://issuetracker.google.com/124042228#comment7
他のIssueのコメントに似たような報告があるようでそっち見てくれ とのこと
まじかよ。すでに報告あったのかよ。しかもコメントかよ。
など思いながら内容を確認し 「多分そのコメントと同じ問題だと思うよ(震え声)」 とコメントを返しました
そして次の日
ん?ステータスがAssignedになった!?
これは対応してくれるということだろうか?
(初めてなのでよくわからない)
そこから6日後
下のコメントにあったサンプル調査した旨のコメントが来ました。更に調査するとのこと
次の日
あれ?担当者変わった?
ステータスもAcceptedに変わった。調査担当と修正担当は別ということか?
(初めてなのでどういうことかよくわかってない)
そこから8日後
突然コミットログのようなコメントが来ました。
修正が終わってブランチにコミットされた?ようです。
今回の不具合はViewPager2の不具合というよりその内部で使用しているRecyclerViewに原因があったようです。
そして・・・
修正が終わり、当時のrecyclerviewの次期バージョン1.1.0-beta04 に反映されるとのこと。
ステータスもfixedに変わっています。
実際にリリースされたときのリリースノートが以下
https://developer.android.com/jetpack/androidx/releases/recyclerview#1.1.0-beta04
Fixed a bug where RecyclerView was not disallowing touch intercept when nested pre-scrolling caused a NestedScrollingParent to scroll (b/138668210, aosp/1105373). This benefits libraries such as ViewPager2.
b/138668210が私が報告したIssueですね。
(こういう場所に報告したissueが載るのはなんだか嬉しいものですね)
ということで修正版がリリースされたことが確認できました。
また、肝心のViewPager2ですが、1.0.0-beta04でRecyclerViewの修正バージョンに依存が更新されたことが確認できました
A number of issues were fixed in other components to work better with ViewPager2: RecyclerView, NestedScrollView, and Navigation.
まとめ
Issue報告ってそんなに難しくなかったよ ということが伝わればいいなと思いこの記事を書きました。
実際、こんなにも拙い英語でも意味は伝わっていたようなので
不具合の内容にもよりますが英語もそこまで問題にはならないかと思います。
今回Issueの作成から修正版のリリースまで1ヶ月と少し程度でした。
これが早いほうなのか遅いほうなのかわかりませんが、参考までに。
1点心残りは自分でもサンプル作って公開してればもっと早く調査とか終わったのかな?という点です。
次回があればサンプルも用意しよう。
以上