PHPマニュアルにbpftraceを使ったトレースのサンプルセクションを追加した

タイトル通りですがPHPマニュアルのDTraceに関するドキュメントに新規にセクションを追加し、bpftraceを使ったトレースサンプルを追加しました。

www.php.net

めでたい!という感じでやっております。

PR

github.com

4/20に最初のPRを作って6/8にマージされました、だいたい1か月半くらい。

本当はLaravel Live Japanの開催前くらいにマージされてると嬉しいなーと思っていたんですが、一時停滞し、その後のPRまとめ対応くらいのタイミングで再度修正依頼がきて対応した結果マージされました。

背景

最近の活動(eBPFユーザーとトレースポイントに関心を持つ人を増やしたい)の一環として、過去にこのドキュメントへの情報追加などは行っていたものの、じゃあここにたどり着いてトレースためそうってなった時にマニュアル読んだら使えるかというと、一部のもともと知識のある人を除いたらおそらく使えないし、書いてあるSystemTapのサンプルは動かず不可解なエラーに遭遇して心が折れて終わるんじゃないかなあ、というのがあり、 最初からきちんと動くbpftraceのサンプルがあれば入口として良いんじゃないか(公式ドキュメントにあれば外でも紹介しやすいし)と思ったところから。

特にずっと考えていたとかではなく、PHPカンファレンス小田原の懇親会あたりで喋っててぼんやりそれもありか、そのうちやろうかなあ、くらいに思ったところからかな・・。

この辺の機能、自分の記事見返しても2020年くらいから動かしてる1のだけど、当時はまだbpftraceもubuntuでインストールできるのはsnap版でバージョンも古く、普通に各ディストリビューションでそのままパッケージインストールして動作するようになったのは比較的最近・・というほどでもないけど2023年くらいからじゃないかと思うので、まあぼちぼちいいだろうというところもありますね。

とはいえ最近はAI Slopの話題もあり、ドキュメントというのはPRを送りやすい口でもあるのであまり遅くなってマニュアルまわりの状況が変わってもいやだなあ、というのも少し思ったところです。

PR作成にあたって考えたことなど

  • 新規のセクション追加なのでなんでこれがあったらいいのか?というのを丁寧めに説明する
    • もちろん自分としてはこれがあったら良いだろうと思って行動しているが、ドキュメントはひとたび取り込まれたらメンテし続けなければならないし、それに見合う価値がある(と考えている)ということを伝える
  • 既存のSystemTapセクションとテイストを揃える
  • AIじゃないですよ感を出していく
    • AI使ってドキュメント貢献の実績作りたいだけ、みたいに思われたらやだなーと思い
    • 異常な熱量をもって本気で足したい感を出していくという戦略をとった、一つとしてはやたらはやく反応し、修正を取り込みコメントをするなど、あと手を動かしてこう動いてますよ、というのを都度提示した
    • (果たしてそれがよかったのかは不明)

日本語訳

  • 自分で書いたので日本語訳はこだわりたいよねえということでAIを使わず自分の思う読みやすさを念頭に翻訳した
    • 結果未翻訳がちょろっと残ったり、いらんレビューの手間をかけさせてしまったりもしたが・・
  • 翻訳してたら原文にやや不備がありそっちも自分で直すというマッチポンプをしてしまった
  • 元のDTraceセクションがややかたい感じなのでどこまで揃えるかはやや悩んだ

ドキュメント追加プロセスの全体の印象

  • レビューがめっちゃ細かいなあとは思った、PHPのドキュメントシステム(PhD)で採用してるDocBook形式が難しく見様見真似で書いていたがparaをsimparaの使い分けとか
  • がまあこれマージされたあとに、結構早く各国語翻訳プロセスが動くので、(昨今はAIを使ってるのであるにせよ)追加で修正が入ると作業を増やしてしまうのでそれはそう、と思った
    • (実際今回も上記の通り追加修正を一回いれたので、すいませんーという気持ちになった)
  • それはそれとして、指摘は前向きにしてくれるしきちんと対応すれば放置せずに対応してくれるな、と思いました、

自分としては今後また機会があるかわからないですが、何かの参考になれば(なるか?)ということで