2023/12/02

HTTP::Message に10年越しの PR がマージされた話

この記事は、"Perl Advent Calendar 2023" 2日目の記事です。


むかしむかしあるところ

いまとなっては記憶が定かではないのですが、10年前の当時、私は Plack::Middleware をよく書いている時期があり、なんらかの実装をしているときに HTTPステータスが欲しくなり、ハードコードするのもなあと思いながら本体Plackがどうしているのかというのを見ていてこのコードに辿りついたのです。

lib/Plack/Handler/CGI.pm#L6-L9

# copied from HTTP::Status
my %StatusCode = (
    100 => 'Continue',
    101 => 'Switching Protocols',

copied from HTTP::Status

Plack本体でも HTTPステータスのリストは HTTP::Statusモジュールからコピーされてきているのでした。

お、これ HTTP::Status がHTTPステータスの一覧を取得する関数提供してくれたらいいのに。

そう思って、ぱっと作った PR がこれ でした。差分は +22 だけです。

Feb 24, 2013 UTC のことです。

そして、3日後にポジティブなコメントが1件つきますが、そのあと進展がなく、ただ時が過ぎ去ります。

私もそれほど積極的に必要としていなかったため、放置モードに。

それから1年後

何がきっかけかわかりませんが、1年以上過ぎた Apr 3, 2014 に 新しいコメントが付きます

関数名を変えた方がいいよ、ということで、わたしはすぐに反応し2日後にはコメントを返して 関数名を修正したコミット を積みます。

そして私は何を疑問に思ったのか、rebaseした方が良いでしょうか?という意図で書いたと思えますが、英文法的にいまいちなコメントを残します。

I'd better to rebase the branch?

これがきっかけかわかりませんが、その後また放置モードに。

さらに2年後

時は流れて 2016年になります。

何がきっかけだったか思い出せませんが、この放置された PR を私は一縷の望みをかけて作り替えます。

こちらが新しく送った PR です。最初の PR から 3年過ぎてますね。

ただ、この PR も送ってはみたものの反応は全くなく、また1年が過ぎます。

空白の5年間

PRを改めてから1年後にまた何がきっかけか謎だったのですが、反応があります。Dec 8, 2017 の出来事です

ハッシュを提供する関数名は単数形じゃなくて複数形の方がよかった、という提案とコメント内容が実態と食い違っている、という指摘とついでにコンフリクトしてる、というコメントだったのですが、私はこのコメントになんと延々と5年間 気づかなかったのです。。。

転職やUS赴任があったので忙しかったのでしょう。いや、その間もOSS活動なにかしらしてるので気づくチャンスはあったと思うのだけど、なにせgithubの通知が機能してないし、、、(個人の感想です)

Ship! その時が!

そして 今年になってある日ふとこの PR の存在に気付いたわけです。Goのライブラリをいろいろ書いてるときに自分の PR群を振り返っている最中に見つけた感じだったと思います。

5年もの歳月が過ぎ去っていることにやや焦りつつ、修正を送ってみると今回は即反応があり、Changesの修正とともにPRは再度作り直されてしゅっと2日でマージされました! YAS!

そしてそしてついに 9月の終わりに CPAN にも出てました

最初の PRを送った日からまるっと10年過ぎてますねw

というわけで、かなり長い時間が過ぎましたが、比較的コアな Perlモジュールに PR を取り込んでもらった(最終的にPRは自分が書いたものではないけど)話でした。2023年の私のハイライトです。

よし、次は Plack側の修正PRを、、、

サイト内検索