WebKit に PR を送りたい
バグっぽい挙動を見つけ、実装を追っていたら直せそうだったので直して PR を出すまでのログ。
基本的には以下のページを見ながら作業を進めていく。
clone
git clone https://github.com/WebKit/WebKit.git WebKit --depth 1
build
M3 MacBook Air で1~1.5時間かかった。もしかすると何か設定がおかしいのかもしれない。
Tools/Scripts/build-webkit --debug
無事に終わると以下のような表示が出る。
==============================================================
WebKit is now built (1h:07m:11s).
To run Safari with this newly-built code, use
the command "Tools/Scripts/run-safari --debug".
==============================================================
run-minibrowser
build の成功表示には run-safari
をするようにとあるが、手元だとエラーが出て動かなかった。minibrowser というものがあるようだったので試してみたところ動いたのでminibrowserで進めることにした。
Tools/Scripts/run-minibrowser --debug
PR 作成
もし作成しようとしている PR に対応する Bug が Bugzilla になければ作成してから始める。description は変更できないのでよく確認してから作成する。
git-webkit setup
を使ってセットアップ。2024-11-24 時点では Python 3.13 に対応していなかったため注意。表示が変わらないまま数十分待つ箇所があったが気長に待つ。
Tools/Scripts/git-webkit setup
PRのために必要な箇所を変更したら、自分でブランチを作成したりコミットしたりせず、 git-webkit pr
を呼び出す。
mainブランチで呼び出すと対応するBugzilla上のバグのURLを聞かれ、適切なブランチが作成される。
setup 時に指定したエディタでコミットメッセージを編集できるので、(OOPS!)
となっている箇所を指示に従って適切に書き換える。Reviewed by NOBODY (OOPS!)
の部分はそのままにした。
Tools/Scripts/git-webkit pr
setup 時に設定した GitHub Token が間違っているというようなエラーが出たが、そもそもラベルを設定できる権限はないのでメンバーじゃないならそのままで問題なさそう。
そんなこんなでなんとか PR を送れた。すぐに GitHub 上で返信があり、修正したバグをテストするテストケースを追加してと言われたので今度はレイアウトテストの書き方を調べる。
テストケースの追加
テストの実行
Tools/Scripts/run-webkit-tests --debug LayoutTests/fast/css/<filename>.html
PR の更新
git reset --soft HEAD^
して git-webkit pr
し直してしまったが、普通にコミットした方が良かった気がする。
https://github.com/WebKit/WebKit/blob/22751c7a6daf0665bf8d50505c7ec42e15ea7ea6/LayoutTests/fast/css/highlight-text-repaint.html を参考にそれっぽいテストを書いて、mainだと失敗し、自分のブランチだと成功することを確認したので PR を更新してレビューを再度リクエストした。
iOS-wk2, iOS-wk2-wpe の CI が失敗し、かなり詰まってしまったが、単にマウスイベントに関わるテストは TestExpectations で Skip していただけだった。
遂に approve された!最後にテストケースの小さな修正を入れたのでその CI が通ったらマージされるんじゃないだろうか。他の人の記事に2ヶ月かかったみたいな記載があったのでビビっていたがむしろ早すぎるくらいで感動。