Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SourceCode Management with Pharo Smalltalk - Ph...
Search
newapplesho
August 02, 2015
Programming
0
140
SourceCode Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Pharo Smalltalkソースコード管理方法 - SourceCode Management with Pharo Smalltalk
newapplesho
August 02, 2015
Tweet
Share
More Decks by newapplesho
See All by newapplesho
OpenRestyについて
newapplesho
0
120
Continuous Integration for Pharo Smalltalk Part 2 (Travis CI)
newapplesho
0
210
今時なウェブ開発をSmalltalkでやってみる?
newapplesho
0
180
Continuous Integration for Pharo Smalltalk
newapplesho
0
160
Elasticsearch for Pharo Smalltalk
newapplesho
0
170
RUNNING Smalltalk - 実践Smalltalk
newapplesho
0
130
AWS SDK for Smalltalk
newapplesho
0
130
How Smalltalker Works
newapplesho
0
110
愛せよ、さもなくば捨てよ。
newapplesho
0
130
Other Decks in Programming
See All in Programming
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
460
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
AgentCoreとHuman in the Loop
har1101
5
240
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
CSC307 Lecture 04
javiergs
PRO
0
660
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.6k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
ぼくの開発環境2026
yuzneri
0
240
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
Oxlintはいいぞ
yug1224
5
1.4k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
220
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
160
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
We Have a Design System, Now What?
morganepeng
54
8k
Test your architecture with Archunit
thirion
1
2.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
How to train your dragon (web standard)
notwaldorf
97
6.5k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
170
Transcript
Pharo Smalltalkιʔείʔυཧํ๏ Source Code Management with Pharo Sho Yoshida /
@newapplesho SORABITO Co. Ltd. 2 August 2015
͜ͷࢿྉʹ͍ͭͯ Pharo Smalltalkͷιʔείʔυཧํ๏Λࢿྉʹ·ͱΊ·ͨ͠
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ ͋ͷιʔείʔυཧͬͯ Ͳ͏ͬͯ࡞͍ͬͯΔΜͰ͔͢ ͑ʂ ͋ΔͷSmalltalkerಉ࢜ͷձ
Smalltalkͷιʔείʔυอํ๏ʹ͍ͭͯ • ʮ͔Βͳ͍͜ͱSmalltalkʹฉ͚ʯͱ͍͏Smalltalk • ͔ͩΒίϝϯτυΩϡϝϯτΛ͋·Γ͞ͳ͍Smalltalker • υΩϡϝϯτΛݟ͚ͭͯݹ͍ • ҰମͲ͏ͳ͍ͬͯΔΜͩ ͱ͍͏͜ͱͰ͍ͬͯΔ͜ͱΛ·ͱΊͯΈ·ͨ͠
ࠓճͷൣғ • Smalltalkͷॲཧܥͨ͘͞Μ͋Γཧํ๏όϥόϥ • Pharo Smalltalkʹ͍ͭͯઆ໌͠·͢ʢԼهదͰ͢ɻ͢Έ·ͤΜʣ 2015 2010ࠒ 2012ࠒ 2014
2002? MetacelloʹΑΔฏఆ FileTreeͷొ Pharo3.0 Released FileTreeඪ४උ Pharo4.0 Released Monticello(MCZ)ͷग़ݱ Squeak Released ύοέʔδͷಋೖ?? 2008 MCZͷීٴͱϦϙδτϦͷཚཱ GitHubͷ౸དྷ 1996? Pharo Released MCZࠞಱ࣌ͷ౸དྷ 2013? SmalltalkHubొʁ Gitग़ݱ 2005? FileTree+GitHubͰͷύοέʔδެ։͕૿͑ͯ͘Δͣ Gitཧئ࣌ʁ GitHub Enterpriseఏڙ։࢝ Smalltalkͱग़ձ͏
Ή͔͠Ή͔͠ɾɾɾ Once upon a time ͰͦΜͳੲͰͳ͍͔ paul bica https://www.flickr.com/photos/dexxus/5626316429/
PharoͷલͷSqueakͰ • ύοέʔδʢιʔείʔυ܈ʣϑΥʔϚοτͱͯ͠SARܗ͕ࣜ͋ͬͨ • SqueakMapͱ͍͏ΣϒϕʔεͷύοέʔδཧͰΘΕ͍ͯΔ • Ͱ࡞Δͷख࡞ۀͰେม ৄ͘͠Γ͍ͨํʮSqueakࣗ༝ࣗࡏ http://swikis.ddo.jp/squeak/13ʯΛࢀߟʹ͢ΔͱΑ͍Ͱ͠ΐ͏ http://map.squeak.org
Monticelloͷग़ݱ • MCZܗࣜͷύοέʔδϑΝΠϧཧπʔϧ • όʔδϣϯཧՄೳɺࠩ֬ೝ͕Մೳ • ϩʔΧϧσΟϨΫτϦ͓ΑͼFTP, HTTPܦ༝Ͱ֎෦ʹอՄೳ खಈ࡞ͷSARܗࣜΑΓָͰศརɻ Squeakࣗ༝ࣗࡏΛಡΉͱ࣌ͷظײ͕Θ͔Δ
MCZͷීٴͱϦϙδτϦͷཚཱ • MCZීٴ͠Squeak, PharoͰσϑΥϧτͷύοέʔδཧͱͳͬͨ • MCZܗࣜͷϑΝΠϧΛҰൠެ։͢ΔͨΊͷϦϙδτϦαʔόʔ͕ొ • SqueakSource,SqueakSource3ྑSqueakSource͕ཚཱͨ͠ Ͳ͜ʹԿ͕͓͍ͯ͋Δͷ͔ෆ໌ɻ SmalltalkೖऀओཁͳϦϙδτϦΛΒͳ͍ͱ
ཉ͍͠ύοέʔδ͕ݟ͚ͭΒΕͳ͍Մೳੑ͕͋Δɻ ݱࡏ͜ͷղܾ͞Ε͍ͯͳ͍ SmalltalkͩΊࣗຫɹhttp://www.slideshare.net/umejava/smalltalk-38297600
MCZࠞಱ࣌ͷ౸དྷ • MCZܗࣜศརͰ͕͋ͬͨܽଟ͔ͬͨ • ύοέʔδؒͷґଘؔղܾ͕͍͠ʢࣗͷύοέʔδʹೖΕΔߥٕ͕ ͋ͬͨΓώυ͔ͬͨʣ • ॲཧܥɺॲཧܥͷόʔδϣϯΛࢦఆͰ͖ͳ͍ʢʮಈ͚OKʂʯͬͯϊϦɻ ͍͍ͷ͔ʁʣ •
࠷৽Խ৬ਓٕʢʮ͜Εͩʂʯͬͯͳײ͡ͰMCZϑΝΠϧΛखಈϩʔυʣ ࢲֶੜͷࠒSmalltalkΠϝʔδ࡞Γ৬ਓʹͳ͍ͬͯͨ mario https://www.flickr.com/photos/64738468@N00/31049645/
MetacelloʹΑΔฏఆ • MonticelloͷͰ͋ͬͨύοέʔδґଘॲཧܥ͝ͱͷ੍ޚΛՄೳʹ͢Δ γεςϜ • MetacelloͷొʹΑΓύοέʔδґଘͰΤϥʔʹͳΔ͜ͱ͕গͳ͘ͳͬͨ • ͦͯ͠Πϝʔδ࡞Γ৬ਓ৬Λࣦͬͨͣʢ͜Ε͕ग़ͨॳSmalltalkͱແԑͳࣄΛ͍͚ͯͨ͠Ͳwʣ Α͘ݟ͔͚ΔConfigurationOfXX ͕MetacelloΛهड़͢ΔΫϥε
Metacelloͷ͍ํୈ23ճSmalltalkษڧձͷࢿྉΛࢀߟ http://www.smalltalk-users.jp/Home/gao-zhi/dai23kaismalltalkbenkyoukai Always Shootingɹhttps://www.flickr.com/photos/alwaysshooting/15315019007/
GitHubͷ౸དྷ • Metacello͕ొͨ͜͠ΖʹGitHub͕·Γͭͭ͋ͬͨ • ͔͠͠ͳ͕ΒSmalltalkerಠࣗιʔείʔυཧํ๏Λଓ͚ͨ • MetacelloొҎ߱ϓϥΠϕʔτͳϓϩδΣΫτཧ͓Αͼଟਓ։ൃͰ Λ๊͍͑ͯͨ ͋ͷೣ͕ා͔ͬͨͷ͔͠Εͳ͍
MCZͰͷӡ༻ͷ • MCZܗࣜιʔείʔυΛzipܗࣜͰΞʔΧΠϒͨ͠ͷ • MCZϑΝΠϧͦͷ··ΛGitͰཧͯ͠خ͘͠ͳ͍ • ϓϥΠϕʔτͳϓϩδΣΫτͷ߹SqueakSource͕ඞཁʹͳΔ • ϒϥϯνཧ͕Ͱ͖ͳ͍ •
Pull Request͕͑ͳ͍ • ιʔείʔυΛݟΔͨΊͷSmalltalk͕͍ͭ͋ΔͱݶΒͳ͍
Git͍͍ͨ ͋ͷೣͷαΠτʹެ։͍ͨ͠ Gitཧئ࣌ͷ࢝·Γ jessicahtam https://www.flickr.com/photos/jessicatam/4177468736/in/photostream/ gitཧΛಌΕଓ͚ͨSmalltalkerͷޠ
FileTreeͷొ ࢀߟࢿྉ: http://www.slideshare.net/esug/of-metacello-git-scripting-and-things FileTreeͱ Monticello repository for directory-based Monticello packages
enabling the use of git, svn, etc. for managing Smalltalk source code. https://github.com/dalehenrich/filetree ΑΓ ιʔείʔυΛgitͰཧ͢ΔͨΊͷ σΟϨΫτϦϕʔεͷιʔείʔυཧπʔϧ ൃݟͨ͠ͱ͖Pharo2.0ʹଈ࠲ʹΠϯετʔϧͨ͠
MCZͩͱɾɾɾ Smalltalk͕ͳ͍ͱݟ͑ͳ͍Α
package class method properties method source FileTreeͩͱ ݟ͑Δͧɺࢲʹݟ͑Δͧ
FileTreeͱGitཧ ݟ͑Δͧɺࢲʹݟ͑Δͧ
FileTreeͷϝϦοτ • ϑΝΠϧϕʔεཧͳͷͰGitͷଞݴޠͷίʔυཧํ๏͕ར༻Մೳ • ϓϥΠϕʔτSqueakSourceͷಋೖ͕ෆཁʹͳΓཧίετݮ • ϒϥϯν͕͑Δ • Pull Request͕͑Δ
• Pharo 3.0͔Βඪ४උ
FileTreeͷ͍ํʢอଘฤʣ • Monticello BrowserΛ։͖ɺอଘ͍ͨ͠ύοέʔδΛબ • [+Repository]ΛΫϦοΫɺ[filetree://]Λબͯ͠อଘ͢ΔσΟϨΫτϦΛબ • Monticelloͱҧ͍όʔδϣϯຖʹιʔείʔυ͕ग़ྗ͞Εͳ͍ͷͰҙ ʢsaveͨ͠Βgit,mercurialͰόʔδϣϯཧΛ͢Δʣ ؆୯Ͱ͢Ͷ
FileTreeͷ͍ํʢಡΈࠐΈฤʣ • ಡΈࠐΉࡍʹBaselineΛ͔ͭͬͯಡΈࠐΉ • BaselineFileTreeͰอଘͨ͠ύοέʔδؒґଘΛهड़ • Metacelloͷ͕ࣝ͋Ε؆୯ʹهड़Մೳ • Metacelloͷbaseline:͚ͩΛऔΓग़͠ͷΛߟ͑ΔͱΘ͔Γ͍͢ BaselineOfXX
͕BaselineΛهड़͢ΔΫϥε
Baselineͷྫ
BaselineΛͬͨಡΈࠐΈ | pathToPackageDirectory | "edit to match the path to
your chosen package directory" pathToPackageDirectory := '/YOUR-GIT-DIRECTORY-PATH/sendgrid-smalltalk/pharo-repository/'. Metacello new baseline: 'SendGrid'; repository: 'filetree://', pathToPackageDirectory; load. SendGrid Smalltalkͷ߹ https://github.com/newapplesho/sendgrid-smalltalk
FileTree + Baseline + Git • BaselineͷίʔυFileTreeͰอଘ͢ΕΧϨϯτϒϥϯνͷιʔείʔυ͕ ಡΈࠐΊΔ • όʔδϣϯཧGitʹͤΕOK
• ϏδωεͳͲͷϓϥΠϕʔτϓϩδΣΫτͷཧʹͱͯศར
SORABITOͷ߹ ConfigurationOf BaselineOf ϓϩδΣΫτʹ ඞཁͳ֎෦ύοέʔδಡΈࠐΉ ։ൃ base image ϓϩδΣΫτͷ ιʔείʔυΛಡΈࠐΈ
image ެࣜPharo image ఆظతʹߋ৽ ਵ࣌ ֎෦ύοέʔδΛݟۃΊΔඞཁ͕͋ΔͨΊ ࡞ʹܦݧ͕͘͠ඞཁʢϦϙδτϦཚཱʣ ֤SmalltalkerʹͤΔ αʔόʔʹσϓϩΠ͢Δͱ͖ ࡞ͬͨΠϝʔδඞͣେࣄʹอଘ͓ͯ͘͜͠ͱ ʴ ʴ image࡞৬ਓͷ෮ݖʁ
͜ΕͰແࣄղܾͨ͠ͷͩΖ͏͔ • ϓϥΠϕʔτϓϩδΣΫτཧ΄΅ղܾͨ͠ͱࢥ͏ • ֎෦ύοέʔδґવͱͯ͠MCZཧ͕େ • SmalltalkHubͱ͍͏৽ϦϙδτϦͰ͖ͯ͠·ͬͨ • ͋ͷೣαΠτͰύοέʔδެ։ͯ͠ଞͱ࿈ܞ͠ͳ͍ͱSmalltalkerʹൃݟ͞ Εͳ͍Մೳੑ͋Δ
Will https://www.flickr.com/photos/bongonian/8545465929/
GitʹಌΕࡾઍཬ gitཧΛಌΕଓ͚ͨSmalltalkerͷޠͷ࠷ऴষ flowcomm https://www.flickr.com/photos/flowcomm/4372513286/
FileTreeGitHubαϙʔτ • FileTreeʹGitHubʹެ։͞ΕͨιʔείʔυΛclone͢Δػೳ͋Δ • औಘ͢Διʔείʔυcommitͷࣝผ൪߸ͰࢦఆՄೳ • ConfigurationOfͷversionϝιουʹgithubͷύεΛࢦఆ͢Δ • ར༻͢ΔʹBaselineʹGitཧͷύοέʔδͷґଘؔʹهड़ͯ͠ίϛοτ͢Δ ඞཁ͕͋Δ
• GitHub͔Βclone͢ΔConfigurationOfΛSmalltalkHubͳͲʹެ։͢Εཚཱ࣌ ΓΕΔ
SendGrid Smalltalkͷྫ github://<user>/<project>[:SHA][/<path>] ͱ͍͏ϧʔϧʹͳ͍ͬͯΔ
SendGrid Smalltalkͷྫ github://newapplesho/sendgrid-smalltalk:ce676f2225374264108042c4c734fe116b3c5080/pharo-repository
GitHub͔Βऔಘ͢ΔConfigurationOfΛར༻ github://newapplesho/sendgrid-smalltalk:ce676f2225374264108042c4c734fe116b3c5080/pharo-repository ϩʔΧϧʹGitHubͷιʔείʔυΛऔಘ͢Δ
SendGrid Smalltalkͷྫ ConfigurationOfͷΈSmalltalkHubʹެ։
FileTree + Git࠷ߴͰ͢Ͷ
४උͬͨ ͋͞SmalltalkΛॻ͜͏ paul bica https://www.flickr.com/photos/dexxus/5820866907/