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
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SourceCode Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Pharo Smalltalkソースコード管理方法 - SourceCode Management with Pharo Smalltalk
newapplesho
August 02, 2015
More Decks by newapplesho
See All by newapplesho
OpenRestyについて
newapplesho
0
130
Continuous Integration for Pharo Smalltalk Part 2 (Travis CI)
newapplesho
0
220
今時なウェブ開発をSmalltalkでやってみる?
newapplesho
0
200
Continuous Integration for Pharo Smalltalk
newapplesho
0
170
Elasticsearch for Pharo Smalltalk
newapplesho
0
180
RUNNING Smalltalk - 実践Smalltalk
newapplesho
0
140
AWS SDK for Smalltalk
newapplesho
0
140
How Smalltalker Works
newapplesho
0
130
愛せよ、さもなくば捨てよ。
newapplesho
0
150
Other Decks in Programming
See All in Programming
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
490
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.1k
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
220
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
290
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
270
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.2k
源内ハンズオン概要編
hideg
0
210
My Marp Sample
sinoue0108
0
120
Introducing Stack Pull Request in GitHub
kkamegawa
0
100
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
Featured
See All Featured
Leo the Paperboy
mayatellez
8
2.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
250
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
260
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Google's AI Overviews - The New Search
badams
0
1.6k
Are puppies a ranking factor?
jonoalderson
2
3.8k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
220
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/