るりまにリンク切れを発見したのでPRを送ってみた
この記事は「フィヨルドブートキャンプ Part 1 Advent Calendar 2023」21日目の記事です。 adventar.org
Part2はこちら adventar.org
昨日はPart1はYuki WatanabeさんのRails7 のフロントエンドライブラリ「Hotwire」を使ってみた感想と開発でお世話になったページをまとめました、Part2はumizaruさんのチェリー本の輪読会を終えてでした。
はじめに
ある日Rubyリファレンスマニュアル(るりま)を読んでいたところ、Kernel.#Integer
のページ内にリンク切れを発見しました。
module Kernel (Ruby 3.2 リファレンスマニュアル) これはコントリビュートチャンスかも?ということで、るりまにPRを送ってみたのでPRを送るまでの流れを書きます。
Issueを立てる
前述の通りKernel.#Integer
のページ内のFixnumとBignumのリンクが切れているのに気づいたので、次にこのリンク切れに関するIssueやPRが立っていないかるりまのリポジトリを確認しました。
みたところ該当するようなPRもIssueも無さそうだったので、自分でIssueを立てることにしました。
立てたIssue
Kernel.#IntegerのFixnumとBignumのリンクが切れている · Issue #2854 · rurema/doctree
過去のIssueとPRを参考にする
IssueとPRに目を通している中で、別ページのFixnumとBignumのリンク切れを修正しているPRをいくつか発見しました。
それらに目を通すことで、以下のようなことがわかり、とても参考になりました。
- FixnumとBignumはRuby3.2で削除されている
- 1が分かったことで、「Ruby3.1まではFixnumとBignumのリンクを表示し、Ruby3.2からは表示しない」という具体的な修正方法がわかる
- バージョンによって違う書き方をするやり方がわかる
- リファレンスマニュアルの書式はReferenceManualFormatDigestに載っていますが、
@until
などを使ってバージョンごとの説明を記述している実例が確認できてよかったです。
- リファレンスマニュアルの書式はReferenceManualFormatDigestに載っていますが、
対象ファイルの修正と表示確認、PR作成
まず本家のリポジトリからフォークして、フォークしたリポジトリをクローンしたら、ブランチを切って対象ファイルの修正をします。
こんな感じでFixnumとBignumのリンクはRuby3.2未満の場合に表示するようにしました。
- 引数を整数([[c:Fixnum]],[[c:Bignum]])に変換した結果を返します。 + 引数を整数 + #@until 3.2 + ([[c:Fixnum]],[[c:Bignum]]) + #@end + に変換した結果を返します。
次にこの変更が意図した通りの表示になっているか確認したいですが、確認するためにはbitclustというgemが必要です。
ということでbitclustをインストールします。*1
$ gem install bitclust-core bitclust-dev refe2 $ bitclust setup
次にbitclustを使ってHTMLファイルを生成します。
自分が確認したいKernelモジュールのページは以下のようなコマンドで生成できました。
// Ruby3.1用のhtml $ bitclust htmlfile ./refm/api/src/_builtin/Kernel --target=Kernel --ruby=3.1 > ファイル名 // Ruby3.2用のhtml $ bitclust htmlfile ./refm/api/src/_builtin/Kernel --target=Kernel --ruby=3.2 > ファイル名
生成されたHTMLファイルをブラウザで開いて確認します。
問題なさそうなので、pushしてフォークした自分のリポジトリから本家にPRを送りました。
作ったPR
Kernel.#IntegerのFixnumとBignumのリンク切れを修正した
まとめ
以前なら「るりまにPRを送るなんて...」と尻込みしていたと思いますが、9月のOSS Gateとフィヨルドブートキャンプのコラボ企画に参加しOSSにPRを送る経験ができたので、今回もやってみようかなと思えました。
今の所できたOSS活動はtypoやリンク切れの修正ですが、もっと色々チャレンジしていけたらなと思います。
感謝の参考
Rubyリファレンスマニュアルを修正する方法 - Eggshell
自分はほぼこの記事に倣って作業しただけです🙏
フォークからPR作成までの流れを画像付きで説明してくださっています。
明日のアドベントカレンダー
明日はhondaさん(Part1)、Yuukagoさん(Part2)です!
*1:Gemfileにbitclust-core、bitclust-dev、refe2が記載されていたので$ bundle installでも良さそう。