# Entaku.rb #2: OSS ## 参加者 * expajp * osyo * ima1zumi * okuramasafumi ## 話したいこと * OSSへのPRの出し方 (ima1zumi) - るりまの2.7対応のうちのちょっとしたところ - Ruby Hacking Challengeの依存ライブラリをbrewで入れるコマンドとか - 1行, 2行くらいの修正ですがPRkowai - どういう手続でPRを出すのか? - ちょっとした修正だと気後れしてしまう * OSSコントリビュートへのきっかけがつかめない (expajp) * バグ踏むことってあんまりない * プロダクトの全体像を掴んだりポリシーを理解しないとエンハンスって難しいのでは? * そこの壁を越えるきっかけがあまりない ## OSS の出し方、どうすればいいのかな ### ログ * どうやって PR を出せばいいのか * 手順がわからない * 既存のPRを見る * [Ruby on Rails に貢献する方法 \- Railsガイド](https://railsguides.jp/contributing_to_ruby_on_rails.html) * https://github.com/ko1/rubyhackchallenge に PR を出したい * 既存の PR を見て他の人がどうやって出しているのか調べてみるといいかも * RHC の PR 一覧: https://github.com/ko1/rubyhackchallenge/pulls?q=is%3Apr+is%3Aclosed * お伺いを立てた方がいいのかな? * ruby-jp とかで聞いてみるのは手段としてはあり * commiterに聞いてみる * PRを出す前に相談するのはあり(経緯は書いておく)、PRを出した後にslackとかクローズドな場で話すのはあまりよくない * PR を出した経緯とかが書いてあると便利 * おおくらの事例 * https://github.com/rubygems/rubygems/pull/3687 * https://ruby-jp.slack.com/archives/CM0DN2H28/p1591188421028000 ``` bundle gemコマンドでGitHubのユーザー名が[USERNAME]になってしまうのがいやで設定方法を探していたんですが、ドキュメントには見当たらずにソースコードを読んだところ git config github.user の出力を使っている(なければ[USERNAME]にフォールバックする)実装になっていることがわかりました。 この設定項目ですが、 man git-configの中には記載がないため、公式な設定項目ではないようです。 このように非公式な設定項目に依存したコードって問題ないのでしょうか。 (もし問題ありそうなら、Bundler自体に設定を持たせるPRを投げたいです) ありがとうございます、なるほど、hubコマンドが使っている設定値である可能性が高い、と。 個人的な意見ですが、hubのような外部コマンドが設定する値にBundlerが(アンドキュメンテドな形で)依存するのはあまり良くない感じがします(なくても動くものなので問題ないかもしれませんが…)。 今日のOSSパッチ会で、[USERNAME]を明示的に置き換えるようなオプションをbundle gemコマンドに追加できないか試してみます。 ``` * 失敗してもいいところから始める * ドキュメントの修正とか * コメントの修正とか * PRの内容が破壊的変更を生まない * 勢いで PR を出すしかねえ ## OSSコントリビュートへのきっかけがつかめない * どういうきっかけで PR を出すのか * 自分がほしい機能を足してもらうための手段 * 自分が困ってるなら誰かが困っているはず * 方向性を問うためにissueを立てることがある * 大規模な変更はPR出すよりissue立てたほうが * 小規模なissueはメンテナは興味を示さない * 一番最初に Ruby に立てたチケット * https://bugs.ruby-lang.org/issues/14142 * 自分の中でユースケースがあるなら提案する * ↑他にも説得材料があれば * コードリーディング * 読んでると「ん?」となる箇所がある * banken に Tama.rb でPRを送った話 * テストがない箇所にテストを追加する * PR に出すときはテストがあると便利 * テストを書くのがむずかしい… * ポリシーに従うのが大変