Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

私はいかにしてpull request を行ったか - あるいは social development について

2011年9月10日に神戸大学で行われたRuby関西主催の「第51回Ruby/Rails勉強会@関西」で発表したgithubでpull requestを行った経験談の資料です。

  • Identifiez-vous pour voir les commentaires

私はいかにしてpull request を行ったか - あるいは social development について

  1. 1. 私はいかにしてpull request を 行ったかあるいは Social Developping について よしだあつし
  2. 2. 自己紹介 お名前: よしだあつし Twitter ID: @yalab 職業: プログラマ兼ニート 興味: Rails 3.1、 scala、 android
  3. 3.  まずはGithubについて簡単に説明します
  4. 4. Github とは?
  5. 5. Github とは? https://github.com/ git リポジトリのホスティングサー ビス wiki や Ticket などのプロジェク ト支援ツール多数 コードコラボレーションのプラット フォーム
  6. 6. Github を使っているプロジェクト Ruby On Rails Rubygems Node.js jquery その他多数...
  7. 7. 言語の割合 Javascript 20% Ruby 16% Python 9% Shell 8%https://github.com/languages
  8. 8.  github を使用し た開発サイクル
  9. 9. 1、プロジェクトをフォークする
  10. 10. 1、プロジェクトをフォークする
  11. 11. 2、プロジェクトを clone
  12. 12. 3、fix->commit->push
  13. 13. 4、pull requset
  14. 14. 5、説得
  15. 15. 5、説得後 マージ or リジェクト たまに放置
  16. 16.   ここからが 本題です
  17. 17.   ある日よしだ君は 当時最新版だったrails 3.0.0.beta3 を使って 開発をしていました
  18. 18.   「最新版のRailsを使って アプリを作ってみるお」
  19. 19.   カタカタカタカタ
  20. 20.   「よし、後はメールが 送信できればおk」
  21. 21.   カタカタカ.....
  22. 22.   「あれ?」
  23. 23.   From: do-not-reply@localhost To: test@localhost Subject: 縺皮匳骭イ縺ゅj縺後→縺_縺斐*縺_縺セ縺 Date: Fri, 04 Jun 2010 21:00:00 +0900 縺薙_Γ繝シ繝ォ繧貞女菫。縺輔l縺滓凾轤ケ縺ァ縺ッ縺セ縺_ 逋サ骭イ縺ッ遒コ螳壹@縺ヲ縺翫j縺セ縺帙s縲莉·荳九_Μ繝 ウ繧ッ縺ォ繧「繧ッ繧サ繧ケ縺励_∫匳骭イ繧堤「コ螳壹@縺ヲ縺上□縺輔> https://localhost:3000/users/confirmation?confirmation_ token=X4VLMPc4iqyyVzCTWOK3 繧ゅ@縺薙_Γ繝シ繝ォ縺ォ隕壹∴縺檎┌縺_蝣エ蜷医_♀謇区焚縺ァ縺吶′ anmitsu64@gmail.com縺セ縺ァ縺秘_」邨。縺上□縺輔>縲_
  24. 24.   「文字化け!?」
  25. 25.   「えっとどうすればいいんだ?」
  26. 26.   カタカタカタカタ
  27. 27.   「なんかActionMailerの基底が tmailじゃなくってmail ってのになってる。」
  28. 28.  「ってことはrails2のフィックスのさせ 方じゃダメなのかな?」
  29. 29.   Google様....
  30. 30.  「....やはりググっても何も出てこない か」
  31. 31.  「よろしい。ならば戦争モンキーパッチ ングだ」
  32. 32. モンキーパッチングとは? オリジナルのコードを変更すること なく動的に格調したり変更したりす る方法 class String def cat "nya~" end end # あるいは String.module_eval do def cat "nyan" end end
  33. 33.  カタカタカタカタカタカタカタカタカタカ タカタカタ
  34. 34.   できた
  35. 35. ブログで公開
  36. 36.   ここから時間は 半年ほど進む
  37. 37.  「さて久々にまた新しいRailsアプリでも作るかな」
  38. 38.   カタカタカタカタ
  39. 39.   「よし、後はメールが 送信できればおk」
  40. 40.   「あれ?」
  41. 41.   From: do-not-reply@localhost To: test@localhost Subject: 縺皮匳骭イ縺ゅj縺後→縺_縺斐*縺_縺セ縺 Date: Fri, 04 Jan 2011 21:00:00 +0900 縺薙_Γ繝シ繝ォ繧貞女菫。縺輔l縺滓凾轤ケ縺ァ縺ッ縺セ縺_ 逋サ骭イ縺ッ遒コ螳壹@縺ヲ縺翫j縺セ縺帙s縲莉·荳九_Μ繝 ウ繧ッ縺ォ繧「繧ッ繧サ繧ケ縺励_∫匳骭イ繧堤「コ螳壹@縺ヲ縺上□縺輔> https://localhost:3000/users/confirmation?confirmation_ token=X4VLMPc4iqyyVzCTWOK3 繧ゅ@縺薙_Γ繝シ繝ォ縺ォ隕壹∴縺檎┌縺_蝣エ蜷医_♀謇区焚縺ァ縺吶′ anmitsu64@gmail.com縺セ縺ァ縺秘_」邨。縺上□縺輔>縲_
  42. 42.   ア〜〜〜〜
  43. 43.   「まだ直ってない」
  44. 44.   「モンキーパッチじゃだめだ」
  45. 45.  「よろしい。ならば戦争pull request だ」
  46. 46. pull request とは? github でパッチを取り込んでもら うためのアクション
  47. 47.   pull requestを考えたものの
  48. 48.   ここで一つの葛藤が生まれる
  49. 49. 葛藤 メンドくさ...誰かが直してくれるの を待ったほうがいいんじゃないか? 僕が書くようなコードを送ってもい いんだろうか? っていうか僕英語できないんです けど (英検3級)
  50. 50.   「悩んだ結果」
  51. 51.  
  52. 52. 送ってみた
  53. 53. 送ってみた「やぁマイケル。iso-2022-jpってエンコーディングでメール送りたかったけどなんか今のmail gemじゃ扱えなかったんだ。だから修正してみたよ。」
  54. 54. 返事があった「ありがとう。で、これってruby 1.8でも動くの?」
  55. 55. 説明する「ごめん動かない。Ruby 1.8はマルチバイト文字をサポートしてないからね。Ruby 1.8 で動かした場合単純に何もしないようにしてる。」
  56. 56. 他の人のコミットで壊れた「あそ。HEADをいじったらエラーになったんだ。ルイスってやつの最近のコミットが原因なんだけどrebaseして直して。その後にマージするか決めるわ」
  57. 57. rebase とは 自分のコミットを載せる基準コミッ トを変更する作業 今回の件でいうとコミットの順番を 並べ変えてルイスの変更の後に僕 の変更を行ったことにした
  58. 58. 修正する「rebaseして直したよ」
  59. 59. 野次がはいる「ちょっと待って、iso-2022-jpってダミーエンコーディングだよ。Rubyがフルサポートしてないのにこのパッチを取り込むのってまずくない?」
  60. 60. 反論する「iso-2022-jpがダミーなんて知ってるよ。encodingが欲しいならgemを作れ。そこは問題なんじゃなくってascii非互換(とされている)とをmail gem がまったく使えない事が問題なんだよ」
  61. 61. そしてマージされる「ありがとう。マージしたよ」
  62. 62.   万歳
  63. 63. pull request をして得られるもの 自分のコードが認められた承認欲 求 自信がつく 野良ビルドを作らなくていい プレゼンでしゃべるネタになる
  64. 64. pull request 時の注意点 READMEにcontributeについて 書いてある場合はそれに従う テストは全て通す インデントなどは元プロジェクトに 従う 必要以上のことはしない(ファイル 末尾に改行を加えるとか)
  65. 65. pull request 時の注意点 pull request 後はそのブランチを いじってはいけない リジェクトされても泣かない マージされた暁には勉強会でプレ ゼンする リジェクトされても勉強会でプレゼ ンする
  66. 66.   ソフトウェアは完璧ではなく バグや機能不足があります
  67. 67.  OSSなプログラムならば自身の手で 直すことが可能です
  68. 68.  せっかく直した(あるいは回避した)のだったらその成果で世界に貢献するというのはどうでしょうか?
  69. 69.  なんちゃって英語でもわりといけました
  70. 70. まとめ github で pull request をした 経験をお話しました あなたが見つけたバグは直されて いないから見つかったものです 待っていても直らないので積極的 に直しましょう(報告だけでも十分な 貢献です)
  71. 71. まとめ 英語のコミュニケーションも辞書や google翻訳を使えばなんとかなり ます 何よりも我々にはコードというコ ミュニケーション手段がある
  72. 72.   ちなみに
  73. 73.   パッチを送る以外にも いろいろ出きることはある
  74. 74. 出きること 利用して広める 不具合や改善案の報告をする ドキュメントを書く パッチを書く
  75. 75.   RubyもOSSソフトウェアです
  76. 76.  すでにOSSソフトウェアを利用してな にかしらの恩恵を受けています
  77. 77.  OSSから受けた恩恵は是非OSSへ貢献することでか えしてください
  78. 78.   ご清聴ありがとう ございました

×