SlideShare a Scribd company logo
1 of 37
Download to read offline
Undestanding the
Pharo dev Process
Guille Polito, CNRS & Inria
@guillepolito
2
Open
Issue
Submit
Code
Validate

Code
Integrate
+
Build
Close
Issue
Pharo < 7
n+1
Change
n
3
:the new kid on the block
4
Pharo 7?
n n+1
Change
? 5
Pharo Repository
6
master
development
• master branch will point to latest stable release
• development branch with current development
V6.0
V6.1
Proposing a Change
7
’s Machine
Push
Fork
Pull Request
Commit
Clone
+ +
Proposing a Change?
• Do not commit a change to development
• Instead create a new branch named after the
issue:



e.g., 10271-Remove-Old-Compiler
• Issue the pull request 

new branch —> development
8
Maintaining your repo
9
’s Machine
Push
Pull
+ +
Multiple Images
10
’s Machine
+
HEAD=12b96fd7
HEAD=12b96fd7
Load, commit
HEAD=40121187HEAD=12b96fd7
What happens when a
fix is proposed?
11
A Git-centric process
Pull Request

Change
n+1
Build
12
Validate
• Jenkinsfile
• travis.yml like file
• describe the build process
The Build Process
13
1. Bootstrap















14
Build Dissected
10%
1. Bootstrap
2. Compiler











15
Build Dissected
Binary

Hermes
12%
1. Bootstrap
2. Compiler
3. Monticello







16
Build Dissected
Chunk files
14%
1. Bootstrap
2. Compiler
3. Monticello
4. Metacello



17
Build Dissected
Monticello
19%
1. Bootstrap
2. Compiler
3. Monticello
4. Metacello
5. Dev-Environment
18
Build Dissected
Metacello

Baselines
100%
• Ensure initial state!
• Allow complex changes that before required
staging
• e.g., changes in key-object layouts (Slots)
• e.g., changes in “in-use” objects (Compiler,
Monticello)
Building from sources
19
1. Bootstrap
2. Compiler
3. Monticello
4. Metacello
5. Dev-Environment
20
Build Dissected
Metacello

Baselines
100%
Thou Shalt Update the
21
Baselines
1. Bootstrap
2. Compiler
3. Monticello
4. Metacello
5. Dev-Environment
22
Build Dissected
Metacello

Baselines
100%
• Build once, validate many times
• All tests * #(win,unix,mac)
• Staged tests (sunit only so far) * #(win,unix,mac)
• Future: Lint Rules? others?
Validations
23
What happens when
an issue is integrated?
24
A Git-centric process
Change
n+1
Build
25
files.pharo.org/image/70
26
Tooling
27
Setting up Iceberg
28
The Pharo Plugin
29
The Github Plugin
30
Validating Issues
31
Integration
32
A glimpse from
the future
33
Managing External Projects
34
Pull / Push
Fork
Pull Request
Further Work
• Issue tracker integration
• Notifications
• Evaluate using Github issue tracker
• Expect modularisations and changes
35
Conclusion
Push
n+1
Build
36
’s Machine
Push
Pull
+ +
Tx Christophe, Pavel, and all the Pharo community
• Travis
• OSX is slow
• For windows we would need appveyor…
• Less freedom to design our process
• Jenkins: we have full control (and responsibility) on it
37

More Related Content

What's hot

Git workflow libre semikov
Git workflow libre semikovGit workflow libre semikov
Git workflow libre semikov
Inna Kravchenko
 

What's hot (19)

Git
GitGit
Git
 
Building a raku module
Building a raku moduleBuilding a raku module
Building a raku module
 
Git workflow libre semikov
Git workflow libre semikovGit workflow libre semikov
Git workflow libre semikov
 
How we scaled git lab for a 30k employee company
How we scaled git lab for a 30k employee companyHow we scaled git lab for a 30k employee company
How we scaled git lab for a 30k employee company
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Introduction to git & GitHub
Introduction to git & GitHubIntroduction to git & GitHub
Introduction to git & GitHub
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Introduction to git and github
Introduction to git and githubIntroduction to git and github
Introduction to git and github
 
Learning git
Learning gitLearning git
Learning git
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git and github fundamentals
Git and github fundamentalsGit and github fundamentals
Git and github fundamentals
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.com
 
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
Dev, Staging & Production Workflow with Gitify (at MODXpo 2015 in Munich)
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
 
Introduction to Git Commands and Concepts
Introduction to Git Commands and ConceptsIntroduction to Git Commands and Concepts
Introduction to Git Commands and Concepts
 
Git 101
Git 101Git 101
Git 101
 
Solving the Workflow (or, how MODX.today is being built with git and Gitify)
Solving the Workflow (or, how MODX.today is being built with git and Gitify)Solving the Workflow (or, how MODX.today is being built with git and Gitify)
Solving the Workflow (or, how MODX.today is being built with git and Gitify)
 

Similar to Understanding the Pharo dev Process

Git - Simplified For Testers
Git - Simplified For TestersGit - Simplified For Testers
Git - Simplified For Testers
upadhyay_25
 

Similar to Understanding the Pharo dev Process (20)

Introduction to Git (part 3)
Introduction to Git (part 3)Introduction to Git (part 3)
Introduction to Git (part 3)
 
Python Automation With Gauge + Selenium + API + Jenkins
Python Automation With Gauge + Selenium + API + JenkinsPython Automation With Gauge + Selenium + API + Jenkins
Python Automation With Gauge + Selenium + API + Jenkins
 
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
 
Git hub actions: Android CI Pipeline
Git hub actions: Android CI PipelineGit hub actions: Android CI Pipeline
Git hub actions: Android CI Pipeline
 
14 oct Git & GitHub.pptx
14 oct Git & GitHub.pptx14 oct Git & GitHub.pptx
14 oct Git & GitHub.pptx
 
December #PnP #SPFx call #CLI exteranlize demo
December #PnP #SPFx call #CLI exteranlize demoDecember #PnP #SPFx call #CLI exteranlize demo
December #PnP #SPFx call #CLI exteranlize demo
 
Building community with CentOS Stream
Building community with CentOS StreamBuilding community with CentOS Stream
Building community with CentOS Stream
 
Serving Pull Requests with Jenkins
Serving Pull Requests with JenkinsServing Pull Requests with Jenkins
Serving Pull Requests with Jenkins
 
XPDDS17: Intel GVT-g: From Production to Upstream - Zhi Wang, Intel
XPDDS17: Intel GVT-g: From Production to Upstream - Zhi Wang, IntelXPDDS17: Intel GVT-g: From Production to Upstream - Zhi Wang, Intel
XPDDS17: Intel GVT-g: From Production to Upstream - Zhi Wang, Intel
 
Version control
Version controlVersion control
Version control
 
Git Init (Introduction to Git)
Git Init (Introduction to Git)Git Init (Introduction to Git)
Git Init (Introduction to Git)
 
Pybind11 - SciPy 2021
Pybind11 - SciPy 2021Pybind11 - SciPy 2021
Pybind11 - SciPy 2021
 
GitHub Actions: your free CI engine (and much more)
GitHub Actions: your free CI engine (and much more)GitHub Actions: your free CI engine (and much more)
GitHub Actions: your free CI engine (and much more)
 
Git foundation
Git foundationGit foundation
Git foundation
 
Migrating NYSenate.gov
Migrating NYSenate.govMigrating NYSenate.gov
Migrating NYSenate.gov
 
Git & Github Workshop - Le Wagon Melbourne
Git & Github Workshop - Le Wagon MelbourneGit & Github Workshop - Le Wagon Melbourne
Git & Github Workshop - Le Wagon Melbourne
 
Git - Simplified For Testers
Git - Simplified For TestersGit - Simplified For Testers
Git - Simplified For Testers
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git Workflow
Git WorkflowGit Workflow
Git Workflow
 

More from Guille Polito

More from Guille Polito (9)

Run-Fail-Grow: Creating Tailored Object Oriented Runtimes
Run-Fail-Grow: Creating Tailored Object Oriented RuntimesRun-Fail-Grow: Creating Tailored Object Oriented Runtimes
Run-Fail-Grow: Creating Tailored Object Oriented Runtimes
 
PADR - Engineering for Reseach
PADR - Engineering for ReseachPADR - Engineering for Reseach
PADR - Engineering for Reseach
 
First-class undefined classes for Pharo
First-class undefined classes for PharoFirst-class undefined classes for Pharo
First-class undefined classes for Pharo
 
Oz Object Spaces - Uqbar Workshop 2013 (spanish)
Oz Object Spaces - Uqbar Workshop 2013 (spanish)Oz Object Spaces - Uqbar Workshop 2013 (spanish)
Oz Object Spaces - Uqbar Workshop 2013 (spanish)
 
Going Native With DBXTalk - Smalltalks 2013
Going Native With DBXTalk - Smalltalks 2013Going Native With DBXTalk - Smalltalks 2013
Going Native With DBXTalk - Smalltalks 2013
 
Virtual Smalltalk Images - IWST - ESUG 2013
Virtual Smalltalk Images - IWST - ESUG 2013Virtual Smalltalk Images - IWST - ESUG 2013
Virtual Smalltalk Images - IWST - ESUG 2013
 
Where am I in my Phd - October 2012
Where am I in my Phd - October 2012Where am I in my Phd - October 2012
Where am I in my Phd - October 2012
 
Bootstrapping a Smalltalk - Smalltalks 2012
Bootstrapping a Smalltalk - Smalltalks 2012Bootstrapping a Smalltalk - Smalltalks 2012
Bootstrapping a Smalltalk - Smalltalks 2012
 
DBXTalk - Smalltalks 2011
DBXTalk - Smalltalks 2011DBXTalk - Smalltalks 2011
DBXTalk - Smalltalks 2011
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Understanding the Pharo dev Process