$30 off During Our Annual Pro Sale. View Details »

OSS と GitHub

OSS と GitHub

GtitHub Kaigi の講演 "OSS と GitHub (仮)"の発表スライド http://githubkaigi.org/

Akira Matsuda

June 01, 2014
Tweet

More Decks by Akira Matsuda

Other Decks in Programming

Transcript

  1. OSS ͱ GitHub
    (Ծ)
    @amatsuda

    View Slide

  2. self
    @amatsuda

    View Slide

  3. @amatsuda
    name: Akira Matsuda
    Twitter: @a_matsuda

    View Slide

  4. @amatsuda
    ౰࣌ͷGitHub͸ΞΧ΢ϯτ໊ʹ
    Ξϯεί΍ϋΠϑϯ͕࢖͑ͳ͔ͬ
    ͨ…

    View Slide

  5. @amatsuda
    Ruby on Rails
    Ruby

    View Slide

  6. ୅ද࡞
    rfd: amatsuda/rfd
    RubyͰ࡞ΒΕ͍ͯΔFDͬΆ͍
    ϑΝΠϥʔ

    View Slide

  7. Most Watched
    amatsuda/kaminari
    Railsͱ͔ϖʔδωʔγϣϯ͢Δ
    ϓϥάΠϯ

    View Slide

  8. View Slide

  9. begin

    View Slide

  10. ຊ೔ͷ͓୊

    View Slide

  11. "OSS ͱ GitHub (Ծ)"

    View Slide

  12. GitHub

    View Slide

  13. View Slide

  14. ʮSocial Coding 3෦࡞ʯ
    RubyKaigi 2011 (2011/07)
    ʮ ͨͷ͍͠Railsʯ
    ͱͪ͗Rubyձٞ04 (2011/12)
    ʮΦϒδΣΫτࢦ޲ιʔγϟϧίʔσΟϯά
    εΫϦϓτݴޠRuby(Ծ)ʯ
    σϒαϛ2012 (2012/02)
    ʮSocial Codingͷੈքʯ

    View Slide

  15. ͬ͘͟Γ·ͱΊ

    View Slide

  16. GitHub says,
    "Code is about the people writing
    it."
    https://github.com/about

    View Slide

  17. Matz says,
    ʮRubyΛΩϝΔͱؾ͍͍࣋ͪʯ
    RubyKaigi 2008ͷجௐߨԋʹͯ

    View Slide

  18. Social Coding — Ruby
    RubyͰSocial CodingΛΩϝΔͱ
    ΈΜͳؾ͍͍࣋ͪʂ

    View Slide

  19. GitHub says,
    "Code is about the people writing
    it."
    https://github.com/about

    View Slide

  20. Code is about the people
    writing it.
    ιʔγϟϧίʔσΟϯά͸
    ਓؒࢌՎοʂʂʂ

    View Slide

  21. ιʔγϟϧίʔσΟϯάͷੈք
    ϓϩάϥϚʔʹͱͬͯҰ൪େࣄͳ΋ͷͰ͋Δ
    ʮιʔείʔυʯ
    Ͳ͔͜ͷاۀͷ΋ͷͰ͸ͳ͘
    Ұ෦ͷίϛολʔͷ΋ͷͰ΋ͳ͘
    ίϛϡχςΟͷڞ༗ࡒ࢈ͱͯ͠
    ୭΋͕ฏ౳ʹಡΈॻ͖Ͱ͖ΔݖརΛ༗͢Δ

    View Slide

  22. ιʔείʔυΛಡΈॻ͖͢Δ
    ݖརɾࣗ༝
    ਓຽͷࣾձ΁ͷ௚઀ࢀՃ
    ίϛϡχςΟͷ͸͡·Γ

    View Slide

  23. ʮίϛοτݖʯis dead
    ͔ͭͯ͸ಛݖ
    ࠓ΍୭΋͕ίϛολʔͱಉ͡ಓ۩
    Λ࢖ͬͯιʔείʔυΛಡΈॻ͖
    ͢ΔݖརΛ༗͢Δ

    View Slide

  24. You can commit!
    ͦΕͰ΋ίϛοτΛ͠ͳ͍ͳΜ
    ͯɺࢀ੓ݖΛ΋Β͍ͬͯΔͷʹ
    બڍʹߦ͔ͳ͍Α͏ͳ΋ͷ

    View Slide

  25. ιʔγϟϧίʔσΟϯά.is_a
    ࢢຽֵ໋
    GitHub͕ඪᒗ͢Δ“ιʔγϟϧίʔσΟϯά”Ͱى
    ͬͨ͜͜ͱ͸ɺਓຽʹΑΔιʔείʔυॴ༗͕࣮ݱ
    ͠ɺίϛολ֊ڃʹΑΔΞϯγϟϯϨδʔϜ่͕յ
    ֵ໋ͨ͠ͳͷͩͱ͍͏͜ͱʹͳΓ·͢ɻ
    ιʔγϟϧίʔσΟϯάͱ͸ɺۙ୅࢙ʹͨͱ͍͑ͯ
    ͑͹ϑϥϯεֵ໋ʹඖఢ͢ΔΦʔϓϯιʔεքͷֵ
    ໋ͩͱɻ (by @knsmr)
    http://el.jibun.atmarkit.co.jp/rails/2012/02/21-8270.html

    View Slide

  26. 2012೥ͷ༧ݴ
    pullܕ͡Όͳͯ͘pushܕͷ௨஌
    ΤσΟλ౷߹ͱ͔
    pull requestͷͻͱͭͻͱ͕ͭCI͞ΕΔ͙Β͍CIͷ
    ίϞσΟςΟԽ
    Ұ੪ϝϯς͠ͳ͍ϩόετͳGitHub
    WebΞϓϦͷ͍͍ՃݮͳೝূͰηΩϡϦςΟ͸
    େৎ෉͔ʁ

    View Slide

  27. …ͦͯ͠2014೥

    View Slide

  28. 2012೥ͷ༧ݴ
    pullܕ͡Όͳͯ͘pushܕͷ௨஌ => …ʁ
    ΤσΟλ౷߹ͱ͔ => Atom
    pull requestͷͻͱͭͻͱ͕ͭCI͞ΕΔ͙Β͍CIͷί
    ϞσΟςΟԽ => ͦΕTravis CIͰͰ͖ΔΑ
    Ұ੪ϝϯς͠ͳ͍ϩόετͳGitHub => ·ͩ…
    WebΞϓϦͷ͍͍ՃݮͳೝূͰηΩϡϦςΟ͸େৎ
    ෉͔ʁ => Two-Factor Authentication

    View Slide

  29. ຊ೔ͷ͓୊

    View Slide

  30. "OSS ͱ GitHub (Ծ)"

    View Slide

  31. OSS

    View Slide

  32. OSS and me
    ৬ۀϓϩάϥϚʔ
    ࣗ෼ͷ࢓ࣄ্ͷ໰୊Λղܾ͢Δखஈ
    ଞਓͷ໰୊Λղܾ͢ΔOSS׆ಈ
    (=ʮOSSʹߩݙʯ)͸جຊతʹ͍ͯ͠
    ·ͤΜ

    View Slide

  33. ๻ͷ஌͍ͬͯΔϓϩδΣΫτͨͪ
    Rails
    Ruby
    Kaminari

    View Slide

  34. Rails
    ࠓ೥Ͱ10प೥
    །ҰਆDHH
    20ਓ͘Β͍(?)ͷίϛολʔ
    3500ਓ+ͷʮίϯτϦϏϡʔλʔʯ

    View Slide

  35. rails/rails
    GitHubͷਖ਼ࣜެ։ͱಉ࣌ʹެࣜϦϙδτ
    ϦΛGHʹҠߦ (2008೥4݄)
    ౰ॳ͸patchํ͚ࣜͩͬͨͲɺ͠͹Β͘
    ͨ͠ΒPRʹҠߦ
    ਺ඦ݅ͨ·ͬͯͨIssue΋εΫϦϓτͰ
    Ұؾʹશ෦Ҡߦ

    View Slide

  36. GitHub — Rails
    GitHubࣗମ͕RailsͰ࡞ΒΕ͍ͯΔ
    GHͰ࠷ॳʹϗετ͞Εͨେن໛ͳ
    OSSϓϩδΣΫτ
    RubyίϛϡχςΟͷ೤ڰతͳGit
    ϒʔϜΛݗҾ

    View Slide

  37. RubyίϛϡχςΟͷ
    ೤ڰతͳGitϒʔϜΛݗҾ
    Git͕࢖͑ͳ͍ͱύον΋ॻ͚ͳ͍ʂ
    ओཁͳϓϥάΠϯྨ΋૬͍࣍ͰGHʹ
    Ҡߦɺͱ͍͏͔ɺҠߦ͠ͳ͔ͬͨ΋ͷ͸
    ഇΕͨ
    ͜ͷͱ͖ɺWEB+DB Vol. 50ಛू2ͷਆGit
    هࣄ͸·ͩͳ͔ͬͨ…

    View Slide

  38. RailsϓϥάΠϯͱGitHub
    RubyGems
    Bundler
    gem-src

    View Slide

  39. Gem le
    source 'https://rubygems.org'
    gem 'rails', '4.1.1'
    gem 'action_args'

    View Slide

  40. Gem le
    source 'https://rubygems.org'
    gem 'rails', '4.1.1'
    gem 'action_args', git: 'https://
    github.com/asakusarb/
    action_args.git'

    View Slide

  41. Gem le
    source 'https://rubygems.org'
    gem 'rails', '4.1.1'
    gem 'action_args', github:
    'asakusarb/action_args'

    View Slide

  42. gem-src
    ͋Β͔͡Ί࢓ࠐΜͰ͓͘ͱɺΠϯ
    ετʔϧͨ͠gemͷιʔείʔυ
    ΛGH͔Βcloneͯ͘͠ΕΔɺιʔ
    γϟϧίʔμʔͷඞਢπʔϧ

    View Slide

  43. amatsuda/gem-src
    Installation:
    % git clone https://github.com/amatsuda/gem-src.git ~/.rbenv/plugins/gem-src

    View Slide

  44. How to patch Rails
    GitHubͰ΀ΔΓ
    ίϛολʔͷ୭͔͕ϨϏϡʔ
    ίϛολʔͷ୭͔͕Ϛʔδ

    View Slide

  45. GitHub — Rails
    Pull RequestΛੵۃతʹ׻ܴ
    ࣹ޾৺ΛἤΔ(স) ίϛοτ਺
    ϥϯΩϯάαΠτ(ެࣜ)

    View Slide

  46. contributors.rubyonrails.org

    View Slide

  47. github.com/rails
    organization
    Railsίϛολʔ͸શһorganizationͷ
    ϝϯόʔ
    ຊମҎ֎ͷgemͱ͔΋৭ʑஔ͍ͯ͋Δ
    ͷͰɺorganizationΛݟͯ΋୭͕Rails
    ίϛολʔͳͷ͔Α͘Θ͔Βͳ͍…

    View Slide

  48. Ruby
    20೥+ͷྺ࢙
    །ҰਆMatz
    3ਓͷϑϧλΠϜίϛολʔ
    ਺໊ͷ௒ΞΫςΟϒͳίϛολʔ
    ਺े໊ͷίϛολʔ
    ͨ·ʹ֎෦͔Βͷύον

    View Slide

  49. ruby/ruby

    View Slide

  50. GitHub — Ruby ?
    GitHubࣗମ͕RubyͰ࡞ΒΕͯ
    ͍Δ
    ϝΠϯϦϙδτϦ͸svn.ruby-
    lang.org
    GHʹϛϥʔ͕͋Δ

    View Slide

  51. How to patch Ruby
    RedmineʹύονΛఴ෇͢Δ
    bugs.ruby-lang.org
    ίϛολʔͷ୭͔͕ίϛοτͯ͠
    ͘ΕΔ

    View Slide

  52. How to patch Ruby (2)
    GHʹ΀ΔΓ
    (ӡ͕Α͚Ε͹) ίϛολʔͷ୭͔͕ݟͯ͘ΕΔ
    ίϛολʔ͕patchܗࣜͷϑΝΠϧΛμ΢ϯ
    ϩʔυͯ͠git amͯ͠git-svnͰsvnϦϙδτϦ
    ʹίϛοτ
    ͠͹Β͘͢ΔͱGH্ͷϛϥʔʹ΋ಉظ͞ΕΔ

    View Slide

  53. ͳͥRuby͸GHʹҠߦ͠ͳ͍
    ͷ͔ʁ
    20೥Ҏ্GHφγͰ΍ͬͯΔ͚Ͳίϛολʔ͸
    ಛʹࠔͬͯͳ͍
    Windowsαϙʔτ
    ʮࣗ༝ͳιϑτ΢ΣΞͷ։ൃϓϩηε͕ಛఆا
    ۀͷϓϩμΫτʹґଘ͢Δͷ͸NGͳͷͰ͸ʁʯ
    ϛϥʔ࡞͚ͬͨͲ୭΋׆༻ͯ͠ͳ͍͡ΌΜɻ

    View Slide

  54. ͳͥRubyͷGHϛϥʔ͸
    ྲྀߦΒͳ͍ͷ͔ʁ
    Rubyʹίϛοτͯ͠΋ίϛοτͷΫϨ
    δοτ͕࢒Βͳ͍
    github.com/ruby/ruby/commitsʹ
    ΞΠίϯ͕ࡌΒͳ͍
    ࣗ෼ͷGHϓϩϑΟʔϧʹ૲͕ੜ͑ͳ͍

    View Slide

  55. github.com/ruby
    organization
    ruby-lang.orgͷI18nͷϝϯόʔ΋
    ࠞͬͯ͡Δ
    ͷͰɺorganizationΛݟͯ΋୭͕
    Rubyίϛολʔͳͷ͔Α͘Θ͔
    Βͳ͍…

    View Slide

  56. amatsuda/kaminari

    View Slide

  57. How could this repo get
    4000 stars?
    υΩϡϝϯτΛ͔ͬ͠Γॻ͍ͨ
    ʮίϛϡχςΟʯʹࢀՃͨ͠
    ίϛϡχςΟͷ༑ਓ͕ͨͪ޿Ίͯ
    ͘Εͨ

    View Slide

  58. υΩϡϝϯτΛ͔ͬ͠Γॻ͍ͨ
    README, Wiki
    ͱʹ͔͘ஸೡʹॻ͍ͨ
    ӳޡ͕ͪΐͬͱ͙Β͍ؒҧͬͯͯ
    ΋ɺւ֎ͷϢʔβʔ͕͙͢௚ͯ͠
    ͘ΕΔ

    View Slide

  59. ʮίϛϡχςΟʯʹࢀՃͨ͠
    GitHub.is_a ίϛϡχςΟ
    Ͱ΋ɺGitHub͚ͩͩͱϦΞϧ͡Ό
    ͳ͍
    ͍ͭ΋GitHubͰձͬͯΔΈΜͳʹ
    ϦΞϧͰ΋ձͬͯΈ͍ͨʂɹ

    View Slide

  60. ϦΞϧͳίϛϡχςΟ
    Asakusa.rbΛઃཱ (2008೥)
    RubyConf, RailsConf, RubyKaigi
    ͳͲͷΧϯϑΝϨϯε

    View Slide

  61. ΧϯϑΝϨϯεͱ͔
    Kaminari࢖ͬͯΔΑʂ
    ͋Γ͕ͱ͏ʂ
    ͍ͬͯ͢͝ݴΘΕΔ

    View Slide

  62. ϓϩϞʔγϣϯ
    Ruby on Ales
    ϥΠϒίʔσΟϯά

    View Slide

  63. GitHub is not just a Code
    Hosting
    GitHub͸SNS
    GitHub͸ίϛϡχςΟ

    View Slide

  64. GitHub͸ίϛϡχςΟ
    GitHubͷ͓͔͛Ͱੈքதʹ༑͕ͩͪ
    Ͱ͖ͨ
    ϛʔϋʔͳͷͰɺGitHub্Ͱ஌ͬͯΔਓ
    ʹϦΞϧͰձ͏ͷ͕΋͸΍झຯ
    GitHubϢʔβʔͷ࠷େͷָ͠Έ͸Χϯ
    ϑΝϨϯεʹࢀՃ͢Δ͜ͱ

    View Slide

  65. εϐʔΧʔͱͯ͠΋
    ݺ͹ΕΔΑ͏ʹ
    RailsConf (2014, γΧΰ)
    RubyConf India (2014, ΰΞ)
    RubyShift (2013, ΩΤϑ)
    Lone Star RubyConf (2013, ΦʔεςΟϯ)
    RedDot RubyConf (2013, γϯΨϙʔϧ)
    ...

    View Slide

  66. ίϛϡχςΟͷ༑ਓ͕ͨͪ
    ޿Ίͯ͘Εͨ
    Twitter
    Ruby 5
    RailsCasts

    View Slide

  67. Α͔ͬͨ͜ͱ

    View Slide

  68. ΞΠυϧ͔Β΀ΔΓʂ

    View Slide

  69. ࣦഊͨ͜͠ͱ

    View Slide

  70. ໊લ
    ʮNokogiriʯʹ͋΍͔Δ
    ໊લ͸ࣦഊ :(
    ʮಡΈํ͕Θ͔Μͳ͍ʯʮҙຯ͕Θ͔Μͳ͍ʯ
    ʮεϖϧ͕Θ͔Μͳ͍ʯʮ֮͑ΒΕͳ͍ʯͱւ֎
    ͷϢʔβʔʹΑ͘ݴΘΕΔ…
    Miyagawa͞Μʹஃ্ͰʮΩϥΩϥωʔϜʯͬͯ
    disΒΕΔ…

    View Slide

  71. ڭ܇
    υΩϡϝϯτ͕ͱͯ΋ॏཁ
    ίϛοτΛ͖Ε͍ʹ
    ໊લॏཁ

    View Slide

  72. GitHub.is_a Community!
    GHͰਓͷͭͳ͕ΓΛ
    ϑΥϩʔ͢Δ͚ͩ͡Όͳͯ͘ɺ
    ࣮ࡍʹձͬͯΈΑ͏ʂ
    ΞΠίϯ͸ɺը૾ͱຊਓ͕Ұக͢
    Δ΋ͷ͕๬·͍͠

    View Slide

  73. Code! Code!! Code!!!
    ͱʹ͔͘ίʔυΛॻ͜͏
    ຖ೔ίʔυΛॻ͜͏
    ͳΜͰ΋͍͍͔ΒίʔυΛॻ͜͏
    ૲Λ͍ͬͺ͍ੜ΍ͦ͏
    GitHub͸ɺίʔυॻ͍ͯͳ͍ͤ͘ʹ੠͕
    σΧ͍ਓͷԽ͚ͷൽ͕ണ͕ΕΔγεςϜ

    View Slide

  74. GitHub —
    ʮ͋ͪΒଆʯͱʮͪ͜Βଆʯͷ
    ڥ໨͕ແ͍ੈք
    ίʔυͷԼͷฏ౳
    ඞཁͳͷ͸ҰาΛ౿Έग़͢༐ؾ

    View Slide

  75. Code is about the people
    writing it.
    ιʔγϟϧίʔσΟϯά͸
    ਓؒࢌՎοʂʂʂ

    View Slide

  76. Let's Social Codeοʂʂ
    ਓؒࢌՎ͸“༐ؾ”ͷࢌՎοʂʂ
    GitHubͷૉ੖Β͠͞͸༐ؾͷ
    ૉ੖Β͠͞ʂʂ

    View Slide

  77. end

    View Slide