Slide 1

Slide 1 text

044΁ͷ ϓϧϦΫΤετ࡞੒ͷ खҾ͖ 4503&4%FWϨϏϡʔձ-5ίʔφʔ !GVREB

Slide 2

Slide 2 text

About me • 2017೥11݄ʹגࣜձࣾϒϥέοτ (ݱSTORES.jp, Inc) ʹJoin • ϓϩμΫτόοΫΤϯυBϥΠϯνʔϜॴଐ • 2018೥2݄ʙݱࡏ Tama.rbͱ͍͏஍ҬRubyίϛϡχςΟ΍ͬͯ·͢

Slide 3

Slide 3 text

Today’s thema OSS΁ͷ ϓϧϦΫΤετ࡞੒ͷ खҾ͖

Slide 4

Slide 4 text

Introduction (ͦΜͳʹଟ͘͸ͳ͍͚ΕͲ) ͡ͿΜ΋OSSʹϓϧϦΫΤετΛૹΔΑ͏ʹͳͬͯɺ Ϛʔδ·ͰͷྲྀΕ͕΅Μ΍ΓΘ͔ΔΑ͏ʹͳΓ·ͨ͠ Ͱ΋ɺωοτΛݟͯ΋ମܥతʹྲྀΕΛॻ͍ͯΔهࣄͬͯ΄ͱΜ Ͳݟ͔͚ͳ͍… ͱ͍͏Θ͚Ͱɺ͜Ε͔Β΍͍ͬͯͧ͘ͱ͍͏ਓͷͨΊʹ खҾ͖Λ·ͱΊͯΈΑ͏ͱࢥ͍·͢

Slide 5

Slide 5 text

͓அΓ ※ ͋͘·Ͱݸਓతܦݧʹج͍ͮͨݟղͳͷͰ ɹ΋ͬͱྑ͍ํ๏͕͋Δ͔΋͠Ε·ͤΜ ɹ(ͦͷ࣌͸ͬͦ͜Γڭ͍͑ͯͩ͘͞) ※ ࠓճ͸ϓϧϦΫΤετΛૹΔ͜ͱΛ࿩͢ͷͰ ɹissueΛཱͯΔ݅ʹ͸৮Ε·ͤΜ

Slide 6

Slide 6 text

Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ ɾϓϧϦΫΤετ࡞੒(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ର৅ϦϙδτϦͷFork 3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞੒ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) 7. ϚʔδΛ଴ͭ ɾ࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͹࿩͠·͢

Slide 7

Slide 7 text

Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ ɾϓϧϦΫΤετ࡞੒(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ର৅ϦϙδτϦͷFork 3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞੒ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) 7. ϚʔδΛ଴ͭ ɾ࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͹࿩͠·͢

Slide 8

Slide 8 text

1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷ ίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ ɾϥΠϒϥϦʓʓͷσϑΥϧτͷڍಈ͕ ɹ΋ͬͱ͜͏ͩͬͨΒͳ͊…ͬͯͳ͍ʁ ɾ࢓ࣄͰ࢖ͬͯΔOSSͷίʔυΛಡΜͰΈΔ (OSSͷಡॻձͱ͔ͨ͠ͱ͖͸νϟϯε͔΋) ※ ͪͳΈʹɺ΅͘ͷ৔߹͸RailsͷίʔυΛಡΜͰ͍ͯɺ ɹͨ·ͨ·௚ͤͦ͏ͳͱ͜Ζݟ͚ͭͨ͜ͱ͕͋Γ·͢

Slide 9

Slide 9 text

2. GitHub help wanted Ͱ୳ͯ͠ΈΔ GitHub help wantedͱ͍͏αΠτͰࠔͬͯΔ OSSΛݴޠผʹ୳͢͜ͱ͕ग़དྷΔͷͰܰΊͳ΋ ͷΛݟ͚ͭΔʹ͸͍͍͔΋͠Ε·ͤΜ

Slide 10

Slide 10 text

Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ ɾϓϧϦΫΤετ࡞੒(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ର৅ϦϙδτϦͷFork 3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞੒ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) 7. ϚʔδΛ଴ͭ ɾ࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͹࿩͠·͢

Slide 11

Slide 11 text

Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ ɾϓϧϦΫΤετ࡞੒(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ର৅ϦϙδτϦͷFork 3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞੒ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) 7. ϚʔδΛ଴ͭ ɾ࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͹࿩͠·͢

Slide 12

Slide 12 text

1. bug(վળϙΠϯτ)Λݟ͚ͭΔ ex1) σϑΥϧτͷڍಈ΁ͷҧ࿨ײ ʓʓίϚϯυͰੜ੒͞ΕΔϑΝΠϧɺ σϑΥϧτͰ˚˚͕ແޮʹͳͬͯΔ͚Ͳɺ ຖճ༗ޮʹॻ͖׵͑ΔͷΊΜͲ͍͘͞ͳ͊… ແޮͰخ͍͠ύλʔϯͳ͘ͳ͍ʁ ex2) υΩϡϝϯτͷमਖ਼ ͋Ε!?υΩϡϝϯτͱ࣮ࡍͷίʔυͷڍಈҧ͘ͳ͍ʁ...

Slide 13

Slide 13 text

2. ର৅ϦϙδτϦͷFork step1. ର৅ϦϙδτϦΛFork͢Δ step2. ࣗ෼ͷखݩʹForkͨ͠ϦϙδτϦΛ ϩʔΧϧʹclone͢Δ

Slide 14

Slide 14 text

2. ର৅ϦϙδτϦͷFork step3. ຊମΛupstream,ࣗ෼ͷϦϙδτϦΛ originͱͯ͠ొ࿥ ɹɹɹ※ OSSͷ׳शͰݩͷϦϙδτϦΛupstreamɺ ɹɹɹɹɹࣗ෼ͷखݩΛoriginͱͯ͠ొ࿥͢Δͱࣗ෼͸ฉ͍ͨͷͰ ɹɹɹɹɹͦ͏ͯ͠·͕͢͜ͷลΓ͸͓޷ΈͰ

Slide 15

Slide 15 text

3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ (ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ ɹ ɹɾRailsͷΑ͏ͳେن໛ͳOSSʹ͸ΨΠυ͕ ଘࡏ͢Δ͜ͱ͕ଟ͍ͷͰͦͪΒʹ໨Λ௨͠·͠ΐ͏ ex1) https://guides.rubyonrails.org/contributing_to_ruby_on_rails.html ɹɾແ͍৔߹͸ϦϙδτϦͷաڈͷissue΍ ɹɹϓϧϦΫΤετΛݟͯΈΔͱ ͦͷϦϙδτϦͷงғؾ͕෼͔ΔͷͰ͓͢͢ΊͰ͢ ɹɹ(Ͳ͏͍͏ϓϧϦΫΤετͩͱϚʔδ͞ΕΔ͔ݟΔͷେࣄ )

Slide 16

Slide 16 text

4. ίʔυɾυΩϡϝϯτͷमਖ਼ step1. ίʔυͷ֘౰ՕॴΛमਖ਼ (౰ͨΓલ͚ͩͲίϛοτϝοηʔδ͸ӳޠͰ͢Α) step2. खݩͰςετ͕ύε͢Δ͜ͱΛ֬ೝ ✅ ɹɹɹ

Slide 17

Slide 17 text

4. ίʔυɾυΩϡϝϯτͷमਖ਼ step3. remoteͱͯ͠ొ࿥͞Ε͍ͯΔϦϙδτϦΛ֬ೝ ɹɹɹ step4. origin(ࣗ෼ͷखݩͷ࡞ۀϦϙδτϦ)΁ϓογϡ͢Δ ɹɹɹ ϓογϡ͕׬ྃ͢Δͱ ҎԼͷϘλϯ͔Βࣗ෼ͷ࡞ۀϦϙδτϦ͔Β ɹɹɹ GUI্ͰForkݩͷϦϙδτϦʹϓϧϦΫΤετΛ࡞੒ग़དྷΔΑ͏ʹͳΓ·͢

Slide 18

Slide 18 text

5. ϓϧϦΫΤετΛ࡞੒ ForkݩͷϦϙδτϦʹϓϧϦΫΤετΛ࡞੒͠·͢ɹɹɹ ϓϧϦΫΤετʹॻ͍ͨํ͕͍͍ͱࢥ͏͜ͱ ɹ˞ ProblemɿͲ͏͍͏໰୊͕͋ͬͨͷʁ ɹ˞ SolutionɿͲ͏௚ͨ͠ͷʁ جຊతʹյΕΔमਖ਼͸Ϛʔδͨ͘͠ͳ͍͸ͣͳͷͰɺ Before / After ͰͲΜͳخ͍͜͠ͱ͕͋Δͷ͔ɺ ͦΕͰ໰୊ͳ͍͜ͱΛ֬ೝͨ͠Αʂͱ͍͏ΤϏσϯεΛৄࡉʹॻ͘ͷ͕͓͢͢ΊͰ͢ ϝϯςφʔ͞Μͷؾ࣋ͪʹͳͬͯ֬ೝͷίετΛݮΒ͠·͠ΐ͏❗ (ٯʹͪΌΜͱॻ͔ͳ͍ͱӳޠͰΊͬͪΌ࣭໰͞ΕͯࠔΔͷͰɺ΅͘͸ҰܸͰ࢓ཹΊΔͨΊʹ ͳΔ΂͘ৄ͘͠ॻ͘Α͏ʹ͍ͯ͠·͢)

Slide 19

Slide 19 text

6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) ӳޠͰٞ࿦ʹಥೖ͢Δͱେมݫ͍͠Ͱ͕͢ɺ େ͖ͳमਖ਼(ഁյతͳมߋ)Λͨ͠Γ͢Δͱ ආ͚ΒΕͳ͍͜ͱ΋ଟ͍ͷͰ΍͍͖ͬͯ·͠ΐ͏

Slide 20

Slide 20 text

7. ϚʔδΛ଴ͭ Ұ௨Γमਖ਼΍ٞ࿦͕ऴΘͬͨΒϚʔδ͞ΕΔ͜ͱΛ ئ͍ͭͭ଴ͪ·͠ΐ͏

Slide 21

Slide 21 text

Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ ɾϓϧϦΫΤετ࡞੒(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ର৅ϦϙδτϦͷFork 3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞੒ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) 7. ϚʔδΛ଴ͭ ɾ࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͹࿩͠·͢

Slide 22

Slide 22 text

Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀ຿Ͱ࢖͍ͬͯΔϥΠϒϥϦͷίʔυ΍ڍಈͷؾʹͳΔ෦෼Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ ɾϓϧϦΫΤετ࡞੒(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ର৅ϦϙδτϦͷFork 3. ର৅ϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ৔߹)ʹ໨Λ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞੒ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Ε͹దٓ) 7. ϚʔδΛ଴ͭ ɾ࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͹࿩͠·͢

Slide 23

Slide 23 text

࣮࿥ɿաڈͷ͘͠͡ΓμΠδΣετ ݸਓతʹ΍Γ͕͔ͪͳͱࢥ͏͘͠͡ΓΛڞ༗ աڈissueಡ·ͳ͍ͰϓϧϦΫ࡞ͬͨΒ଎߈Ϋϩʔζ͞ Εͨ݅ ഁյతมߋͨ͠ΒόνϘίʹٞ࿦ʹͳͬͯݫ͔ͬͨ͠ ݅ ӳޠͲ͏͠Α͏…Ͱ೰ΜͰमਖ਼ऴΘͬͯΔͷʹ਺िؒϓ ϧϦΫग़ͤͳ͔ͬͨ݅

Slide 24

Slide 24 text

աڈissueಡ·ͳ͍ͰϓϧϦΫ࡞ͬͨΒ ଎߈Ϋϩʔζ͞Εͨ݅ ɾաڈ͢Ͱʹٞ࿦͞Εͯ٫Լ͞ΕͯΔमਖ਼Λͯ͠΋͏ͨ ͦͷ݅ʹ͍ͭͯ͸ ΋͏աڈʹٞ࿦ͯ͠Δ͔Β Ϋϩʔζ͢Δͥ

Slide 25

Slide 25 text

ڭ܇ ɾ͡ͿΜ͕ࢥ͍෇͘Α͏ͳ͜ͱ͸ ɹଞਓ͕΋͏͢Ͱʹߟ͍͑ͯΔ͜ͱ͕ଟ͍ աڈissue / PR Λݟͯ͡ͿΜͱಉ͡໰୊ҙࣝ ͷٞ࿦ɾमਖ਼ͰΫϩʔζ͞Εͨ΋ͷ͕ͳ͍͔ ɹཁ֬ೝ (·͔ͨΑͬͯͳͬͪΌ͏ͷͰ…) ɾେ͖ͳOSSͩͱGitHubͷissueͰ͸ͳ͘JIRAͰ νέοτ؅ཧͯ͠Δ৔߹΋͋ΔͷͰGitHubҎ֎ ΋దٓνΣοΫ͔ͯ͠ΒϓϧϦΫΤετΛ౤͛Α͏ ✅

Slide 26

Slide 26 text

ഁյతมߋͨ͠ΒόνϘίʹ ٞ࿦ʹͳͬͯݫ͔ͬͨ݅͠ ɾ͕࣌ؒ଍Γͳ͍ͷͰৄࡉ͸ׂѪ͠·͢ σϑΥϧτͷڍಈ͕ มΘΔͷݫ͍͠ͳ͊ʜ

Slide 27

Slide 27 text

ڭ܇ ɾ͜Ε͔ΒೖΕΔมߋ͸طଘϢʔβʔͷ ෆརӹʹͳΒͳ͍͔ʁߟ͑Δ มߋىҼͰσϑΥϧτͷڍಈ͕มΘΔ৔߹͸ Φϓγϣϯͷ༗ແͰطଘͷڍಈΛҡ࣋ग़དྷΔ ɹΑ͏ʹ͢ΔͳͲҰఆͷ഑ྀ͕ඞཁ⚠ ※ ิ଍ ɹഁյతͳมߋ͸ϥΠϒϥϦͷϝδϟʔόʔδϣϯΞοϓϦϦʔεΛ ཁٻ͢Δ͜ͱʹͳΔ ϚΠφʔόʔδϣϯϦϦʔεʹࠞͥͮΒ͍ = Ϛʔδͮ͠Β͍

Slide 28

Slide 28 text

ӳޠͲ͏͠Α͏…Ͱ೰ΜͰमਖ਼ ऴΘͬͯΔͷʹ਺िؒϓϧϦΫग़ͤͳ͔ͬͨ݅ มͳӳޠͩͱʮwwwʯͬͯࢥΘΕͳ͍͔ ΊͪΌΊͪΌ৺഑ͩͬͨ… ԿݴͬͯΔΜͩίΠπXXX

Slide 29

Slide 29 text

৺഑ͳ͍

Slide 30

Slide 30 text

݁ߏɺ ੎͍ӳޠͷਓ ଟ͍ͧ ͋͘·ͰݸਓతͳମײͰ͢

Slide 31

Slide 31 text

ڭ܇ ɾجຊతʹίʔυͷdiffʹ͸໨Λ௨͢͸ͣ ͳͷͰɺӳޠ͕׬ᘳͰͳͯ͘΋ ͱ͸͍͑ɺ࢓ࣄͱಉ͡Α͏ʹ࣮૷ͷഎܠ΍ ͳʹΛ͠Α͏ͱࢥͬͯΔ͜ͱΛ఻͑Δ౒ྗ͸ େࣄ આ໌͕೉͍͠৔߹͸ྫͱͯ͠ίʔυαϯϓϧΛ descriptionʹࡌͤΔͱ఻ΘΓ΍͍͢ͷͰ ͓͢͢ΊͰ͢

Slide 32

Slide 32 text

·ͱΊ

Slide 33

Slide 33 text

ɾϓϧϦΫΤετͷωλ ɹ͸ීஈͷۀ຿Ͱ΋ݟ͚ͭΒΕΔ ɾϓϧϦΫΤετ࡞੒͔ΒϚʔδͷྲྀΕ͸ ɹجຊతʹ௨ৗͷ(JU)VC'MPXͱಉ͡ ɾमਖ਼಺༰ʹ͸ৗʹݱࡏͷϢʔβʔͱ ɹϝϯςφʔ͞Μ΁ͷ഑ྀΛఴ͑ͯ ɾϝϯςφʔ͞Μ͕Ϛʔδ͢Δͷʹඞཁͳ৘ใ͕ ɹἧͬͯΔ͔Λߟ͑ͯ࡞Ε͹੿͍ӳޠͰ΋఻ΘΔ ϓϧϦΫΤετʹͳΔͷͰ৺഑͠ͳͯ͘େৎ෉

Slide 34

Slide 34 text

044׆ಈָ͍͠Ͱ͢Α☺ ·ͩͷํ΋͜ͷػձʹ νϟϨϯδ ͯ͠Έ·ͤΜ͔ʁ

Slide 35

Slide 35 text

͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠