GtitHub Kaigi の講演 "OSS と GitHub (仮)"の発表スライド http://githubkaigi.org/
OSS ͱ GitHub(Ծ)@amatsuda
View Slide
self@amatsuda
@amatsuda name: Akira Matsuda Twitter: @a_matsuda
@amatsuda ࣌ͷGitHubΞΧϯτ໊ʹΞϯείϋΠϑϯ͕͑ͳ͔ͬͨ…
@amatsudaRuby on RailsRuby
ද࡞ rfd: amatsuda/rfdRubyͰ࡞ΒΕ͍ͯΔFDͬΆ͍ϑΝΠϥʔ
Most Watchedamatsuda/kaminariRailsͱ͔ϖʔδωʔγϣϯ͢ΔϓϥάΠϯ
begin
ຊͷ͓
"OSS ͱ GitHub (Ծ)"
GitHub
ʮSocial Coding 3෦࡞ʯ RubyKaigi 2011 (2011/07)ʮ ͨͷ͍͠Railsʯ ͱͪ͗Rubyձٞ04 (2011/12)ʮΦϒδΣΫτࢦιʔγϟϧίʔσΟϯάεΫϦϓτݴޠRuby(Ծ)ʯ σϒαϛ2012 (2012/02)ʮSocial Codingͷੈքʯ
ͬ͘͟Γ·ͱΊ
GitHub says,"Code is about the people writingit."https://github.com/about
Matz says,ʮRubyΛΩϝΔͱؾ͍͍࣋ͪʯRubyKaigi 2008ͷجௐߨԋʹͯ
Social Coding — RubyRubyͰSocial CodingΛΩϝΔͱΈΜͳؾ͍͍࣋ͪʂ
Code is about the peoplewriting it.ιʔγϟϧίʔσΟϯάਓؒࢌՎοʂʂʂ
ιʔγϟϧίʔσΟϯάͷੈք ϓϩάϥϚʔʹͱͬͯҰ൪େࣄͳͷͰ͋Δʮιʔείʔυʯ Ͳ͔͜ͷاۀͷͷͰͳ͘ Ұ෦ͷίϛολʔͷͷͰͳ͘ ίϛϡχςΟͷڞ༗ࡒ࢈ͱͯ͠ ୭͕ฏʹಡΈॻ͖Ͱ͖ΔݖརΛ༗͢Δ
ιʔείʔυΛಡΈॻ͖͢Δݖརɾࣗ༝ ਓຽͷࣾձͷࢀՃ ίϛϡχςΟͷ͡·Γ
ʮίϛοτݖʯis dead ͔ͭͯಛݖ ࠓ୭͕ίϛολʔͱಉ͡ಓ۩ΛͬͯιʔείʔυΛಡΈॻ͖͢ΔݖརΛ༗͢Δ
You can commit!ͦΕͰίϛοτΛ͠ͳ͍ͳΜͯɺࢀݖΛΒ͍ͬͯΔͷʹબڍʹߦ͔ͳ͍Α͏ͳͷ
ιʔγϟϧίʔσΟϯά.is_aࢢຽֵ໋ GitHub͕ඪᒗ͢Δ“ιʔγϟϧίʔσΟϯά”Ͱىͬͨ͜͜ͱɺਓຽʹΑΔιʔείʔυॴ༗͕࣮ݱ͠ɺίϛολ֊ڃʹΑΔΞϯγϟϯϨδʔϜ่͕յֵ໋ͨ͠ͳͷͩͱ͍͏͜ͱʹͳΓ·͢ɻιʔγϟϧίʔσΟϯάͱɺ࢙ۙʹͨͱ͍͑ͯ͑ϑϥϯεֵ໋ʹඖఢ͢ΔΦʔϓϯιʔεքͷֵ໋ͩͱɻ (by @knsmr)http://el.jibun.atmarkit.co.jp/rails/2012/02/21-8270.html
2012ͷ༧ݴ pullܕ͡Όͳͯ͘pushܕͷ௨ ΤσΟλ౷߹ͱ͔ pull requestͷͻͱͭͻͱ͕ͭCI͞ΕΔ͙Β͍CIͷίϞσΟςΟԽ Ұ੪ϝϯς͠ͳ͍ϩόετͳGitHub WebΞϓϦͷ͍͍ՃݮͳೝূͰηΩϡϦςΟେৎ͔ʁ
…ͦͯ͠2014
2012ͷ༧ݴ pullܕ͡Όͳͯ͘pushܕͷ௨ => …ʁ ΤσΟλ౷߹ͱ͔ => Atom pull requestͷͻͱͭͻͱ͕ͭCI͞ΕΔ͙Β͍CIͷίϞσΟςΟԽ => ͦΕTravis CIͰͰ͖ΔΑ Ұ੪ϝϯς͠ͳ͍ϩόετͳGitHub => ·ͩ… WebΞϓϦͷ͍͍ՃݮͳೝূͰηΩϡϦςΟେৎ͔ʁ => Two-Factor Authentication
OSS
OSS and me ৬ۀϓϩάϥϚʔ ࣗͷࣄ্ͷΛղܾ͢Δखஈ ଞਓͷΛղܾ͢ΔOSS׆ಈ(=ʮOSSʹߩݙʯ)جຊతʹ͍ͯ͠·ͤΜ
ͷ͍ͬͯΔϓϩδΣΫτͨͪ Rails Ruby Kaminari
Rails ࠓͰ10प །ҰਆDHH 20ਓ͘Β͍(?)ͷίϛολʔ 3500ਓ+ͷʮίϯτϦϏϡʔλʔʯ
rails/rails GitHubͷਖ਼ࣜެ։ͱಉ࣌ʹެࣜϦϙδτϦΛGHʹҠߦ (20084݄) ॳpatchํ͚ࣜͩͬͨͲɺ͠Βͨ͘͠ΒPRʹҠߦ ඦ݅ͨ·ͬͯͨIssueεΫϦϓτͰҰؾʹશ෦Ҡߦ
GitHub — Rails GitHubࣗମ͕RailsͰ࡞ΒΕ͍ͯΔ GHͰ࠷ॳʹϗετ͞ΕͨେنͳOSSϓϩδΣΫτ RubyίϛϡχςΟͷڰతͳGitϒʔϜΛݗҾ
RubyίϛϡχςΟͷڰతͳGitϒʔϜΛݗҾ Git͕͑ͳ͍ͱύονॻ͚ͳ͍ʂ ओཁͳϓϥάΠϯྨ૬͍࣍ͰGHʹҠߦɺͱ͍͏͔ɺҠߦ͠ͳ͔ͬͨͷഇΕͨ ͜ͷͱ͖ɺWEB+DB Vol. 50ಛू2ͷਆGitهࣄ·ͩͳ͔ͬͨ…
RailsϓϥάΠϯͱGitHub RubyGems Bundler gem-src
Gem lesource 'https://rubygems.org'gem 'rails', '4.1.1'gem 'action_args'
Gem lesource 'https://rubygems.org'gem 'rails', '4.1.1'gem 'action_args', git: 'https://github.com/asakusarb/action_args.git'
Gem lesource 'https://rubygems.org'gem 'rails', '4.1.1'gem 'action_args', github:'asakusarb/action_args'
gem-src͋Β͔͡ΊࠐΜͰ͓͘ͱɺΠϯετʔϧͨ͠gemͷιʔείʔυΛGH͔Βcloneͯ͘͠ΕΔɺιʔγϟϧίʔμʔͷඞਢπʔϧ
amatsuda/gem-src Installation:% git clone https://github.com/amatsuda/gem-src.git ~/.rbenv/plugins/gem-src
How to patch Rails GitHubͰΔΓ ίϛολʔͷ୭͔͕ϨϏϡʔ ίϛολʔͷ୭͔͕Ϛʔδ
GitHub — Rails Pull RequestΛੵۃతʹܴ ࣹ৺ΛἤΔ(স) ίϛοτϥϯΩϯάαΠτ(ެࣜ)
contributors.rubyonrails.org
github.com/railsorganization Railsίϛολʔશһorganizationͷϝϯόʔ ຊମҎ֎ͷgemͱ͔৭ʑஔ͍ͯ͋Δ ͷͰɺorganizationΛݟͯ୭͕Railsίϛολʔͳͷ͔Α͘Θ͔Βͳ͍…
Ruby 20+ͷྺ࢙ །ҰਆMatz 3ਓͷϑϧλΠϜίϛολʔ ໊ͷΞΫςΟϒͳίϛολʔ े໊ͷίϛολʔ ͨ·ʹ֎෦͔Βͷύον
ruby/ruby
GitHub — Ruby ? GitHubࣗମ͕RubyͰ࡞ΒΕ͍ͯΔ ϝΠϯϦϙδτϦsvn.ruby-lang.org GHʹϛϥʔ͕͋Δ
How to patch Ruby RedmineʹύονΛఴ͢Δbugs.ruby-lang.org ίϛολʔͷ୭͔͕ίϛοτͯ͘͠ΕΔ
How to patch Ruby (2) GHʹΔΓ (ӡ͕Α͚Ε) ίϛολʔͷ୭͔͕ݟͯ͘ΕΔ ίϛολʔ͕patchܗࣜͷϑΝΠϧΛμϯϩʔυͯ͠git amͯ͠git-svnͰsvnϦϙδτϦʹίϛοτ ͠Β͘͢ΔͱGH্ͷϛϥʔʹಉظ͞ΕΔ
ͳͥRubyGHʹҠߦ͠ͳ͍ͷ͔ʁ 20Ҏ্GHφγͰͬͯΔ͚Ͳίϛολʔಛʹࠔͬͯͳ͍ Windowsαϙʔτ ʮࣗ༝ͳιϑτΣΞͷ։ൃϓϩηε͕ಛఆاۀͷϓϩμΫτʹґଘ͢ΔͷNGͳͷͰʁʯ ϛϥʔ࡞͚ͬͨͲ୭׆༻ͯ͠ͳ͍͡ΌΜɻ
ͳͥRubyͷGHϛϥʔྲྀߦΒͳ͍ͷ͔ʁ Rubyʹίϛοτͯ͠ίϛοτͷΫϨδοτ͕Βͳ͍ github.com/ruby/ruby/commitsʹΞΠίϯ͕ࡌΒͳ͍ ࣗͷGHϓϩϑΟʔϧʹ͕ੜ͑ͳ͍
github.com/rubyorganization ruby-lang.orgͷI18nͷϝϯόʔࠞͬͯ͡Δ ͷͰɺorganizationΛݟͯ୭͕Rubyίϛολʔͳͷ͔Α͘Θ͔Βͳ͍…
amatsuda/kaminari
How could this repo get4000 stars? υΩϡϝϯτΛ͔ͬ͠Γॻ͍ͨ ʮίϛϡχςΟʯʹࢀՃͨ͠ ίϛϡχςΟͷ༑ਓ͕ͨͪΊͯ͘Εͨ
υΩϡϝϯτΛ͔ͬ͠Γॻ͍ͨ README, Wiki ͱʹ͔͘ஸೡʹॻ͍ͨ ӳޡ͕ͪΐͬͱ͙Β͍ؒҧͬͯͯɺւ֎ͷϢʔβʔ͕͙ͯ͘͢͠ΕΔ
ʮίϛϡχςΟʯʹࢀՃͨ͠ GitHub.is_a ίϛϡχςΟ ͰɺGitHub͚ͩͩͱϦΞϧ͡Όͳ͍ ͍ͭGitHubͰձͬͯΔΈΜͳʹϦΞϧͰձͬͯΈ͍ͨʂɹ
ϦΞϧͳίϛϡχςΟ Asakusa.rbΛઃཱ (2008) RubyConf, RailsConf, RubyKaigiͳͲͷΧϯϑΝϨϯε
ΧϯϑΝϨϯεͱ͔ KaminariͬͯΔΑʂ͋Γ͕ͱ͏ʂ ͍ͬͯ͢͝ݴΘΕΔ
ϓϩϞʔγϣϯ Ruby on Ales ϥΠϒίʔσΟϯά
GitHub is not just a CodeHosting GitHubSNS GitHubίϛϡχςΟ
GitHubίϛϡχςΟ GitHubͷ͓͔͛Ͱੈքதʹ༑͕ͩͪͰ͖ͨ ϛʔϋʔͳͷͰɺGitHub্ͰͬͯΔਓʹϦΞϧͰձ͏ͷ͕झຯ GitHubϢʔβʔͷ࠷େͷָ͠ΈΧϯϑΝϨϯεʹࢀՃ͢Δ͜ͱ
εϐʔΧʔͱͯ͠ݺΕΔΑ͏ʹ RailsConf (2014, γΧΰ) RubyConf India (2014, ΰΞ) RubyShift (2013, ΩΤϑ) Lone Star RubyConf (2013, ΦʔεςΟϯ) RedDot RubyConf (2013, γϯΨϙʔϧ) ...
ίϛϡχςΟͷ༑ਓ͕ͨͪΊͯ͘Εͨ Twitter Ruby 5 RailsCasts
Α͔ͬͨ͜ͱ
ΞΠυϧ͔ΒΔΓʂ
ࣦഊͨ͜͠ͱ
໊લ ʮNokogiriʯʹ͔͋Δ ໊લࣦഊ :( ʮಡΈํ͕Θ͔Μͳ͍ʯʮҙຯ͕Θ͔Μͳ͍ʯʮεϖϧ͕Θ͔Μͳ͍ʯʮ֮͑ΒΕͳ͍ʯͱւ֎ͷϢʔβʔʹΑ͘ݴΘΕΔ… Miyagawa͞Μʹஃ্ͰʮΩϥΩϥωʔϜʯͬͯdisΒΕΔ…
ڭ܇ υΩϡϝϯτ͕ͱͯॏཁ ίϛοτΛ͖Ε͍ʹ ໊લॏཁ
GitHub.is_a Community! GHͰਓͷͭͳ͕ΓΛ ϑΥϩʔ͢Δ͚ͩ͡Όͳͯ͘ɺ࣮ࡍʹձͬͯΈΑ͏ʂ ΞΠίϯɺը૾ͱຊਓ͕Ұக͢Δͷ͕·͍͠
Code! Code!! Code!!! ͱʹ͔͘ίʔυΛॻ͜͏ ຖίʔυΛॻ͜͏ ͳΜͰ͍͍͔ΒίʔυΛॻ͜͏ Λ͍ͬͺ͍ੜͦ͏ GitHubɺίʔυॻ͍ͯͳ͍ͤ͘ʹ͕σΧ͍ਓͷԽ͚ͷൽ͕ണ͕ΕΔγεςϜ
GitHub — ʮ͋ͪΒଆʯͱʮͪ͜Βଆʯͷڥ͕ແ͍ੈք ίʔυͷԼͷฏ ඞཁͳͷҰาΛ౿Έग़͢༐ؾ
Let's Social CodeοʂʂਓؒࢌՎ“༐ؾ”ͷࢌՎοʂʂGitHubͷૉΒ͠͞༐ؾͷૉΒ͠͞ʂʂ
end