---
# System prepended metadata

title: 'Entaku.rb #2: OSS'

---

# 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 に出すときはテストがあると便利
    * テストを書くのがむずかしい…
    * ポリシーに従うのが大変
