SlideShare a Scribd company logo
1 of 23
Download to read offline
smalltalkCI
A Continuous Integration Framework for Smalltalk Projects
Fabio Niephaus
Hasso Plattner Institute
University of Potsdam, Germany
fabio.niephaus@student.hpi.de
Dale Henrichs
GemTalk Systems
dale.henrichs@gemtalksystems.com
Marcel Taeumel
Hasso Plattner Institute
University of Potsdam, Germany
marcel.taeumel@hpi.de
Tobias Pape
Hasso Plattner Institute
University of Potsdam, Germany
tobias.pape@hpi.de
Tim Felgentreff
Hasso Plattner Institute
University of Potsdam, Germany
tim.felgentreff@hpi.de
Robert Hirschfeld
Hasso Plattner Institute
University of Potsdam, Germany
robert.hirschfeld@hpi.de
IWST 2016, Prague, Czech Republic 08/23/2016
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Our Motivation
SWE lectures
• Student teams work on a project in Squeak/Smalltalk
• Introduction to:
– Version Control Management Systems
– Continuous Integration
2
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
GitHub
• Hosting platform for Git repositories
• Features
– Issue tracking
– Wiki
– Markdown
– Pull Requests and Forking
– Integrations (e.g. Slack, Trello, ...)
– …
3
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
TravisCI
• Hosted, distributed continuous integration service for
project hosted at GitHub
• Features
– Builds project after each code push
– Free for public repositories
– Supports a broad range of programming languages
(including Smalltalk) and build environments
– Notifications via Email/Slack/IRC/Webhooks/…
– Automatic deployment after successful builds
– …
4
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Toolchain For Students
5
Local
Repository
Remote
Repository
TravisCI
running
builderCI
Metacello Package Manager
Squeak Project
FileTree
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Some Design Goals And Decisions
• Compatible to different Smalltalk dialects
• Fast feedback loop
• Lightweight
– Few dependencies
– Small bootstrapping code base and total file size
• Reliable
– Self-contained (minimum number of external resources)
– Perform self-tests (“Eat your own dog food”)
– Dedicated config file (similar to Gemfile or package.json)
• Extensible
– Easy to add features and support other dialects/environments
• Debuggable
– Various debug options
– Reproducible builds
6
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Smalltalk Support on TravisCI
7
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
EXAMPLE PROJECT
8
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
9
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Example .smalltalk.ston
10
For full documentation, check out smalltalkCI’s README.md.
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Example .travis.yml
11
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Seaside On TravisCI
12
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Seaside On TravisCI
13
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Build Failure Example
14
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Projects Using smalltalkCI
15
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
FUTURE WORK
16
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Try Out More CI Services
17
GitLab CI
…
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Add More Smalltalk Images
18
Moose
…
Cuis Etoys
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Support for Different VMs
19
SqueakJS RSqueak/VMOpenSmalltalkVM
(e.g. latest + stable)
…
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Improve Tooling For Git
• Get rid of two-commit workflow
• Use metadata-less FileTree by default
20
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Simplify First Steps
• Uniform way to load projects from GitHub
• One-click tryout in browser via SqueakJS
21
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Conclusion
smalltalkCI…
• makes it easy to CI test Smalltalk projects
• enables easy access to free CI services
• runs locally and provides various debugging options
• is already used by more than 100 projects on GitHub
22
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Contribute!
Questions? Ideas?
23

More Related Content

Similar to smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.
Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.
Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.OW2
 
Teaching NASA to Open Source its Software the Apache Way
Teaching NASA to Open Source its Software the Apache WayTeaching NASA to Open Source its Software the Apache Way
Teaching NASA to Open Source its Software the Apache WayChris Mattmann
 
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...Seeling Cheung
 
Filling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperation
Filling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperationFilling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperation
Filling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperationIolanda Pensa
 
Interoperability at Apache Software Foundation
Interoperability at Apache Software FoundationInteroperability at Apache Software Foundation
Interoperability at Apache Software FoundationPaolo Mottadelli
 
Final FoCAS Newsletter, Issue Eight, Winter 2016
Final FoCAS Newsletter, Issue Eight, Winter 2016Final FoCAS Newsletter, Issue Eight, Winter 2016
Final FoCAS Newsletter, Issue Eight, Winter 2016FoCAS Initiative
 
Research Careers in Applied Computer Science
Research Careers in Applied Computer ScienceResearch Careers in Applied Computer Science
Research Careers in Applied Computer ScienceChristoph Lange
 
SCIKE - Internationalization strategy of the Software-Cluster
SCIKE - Internationalization strategy of the Software-ClusterSCIKE - Internationalization strategy of the Software-Cluster
SCIKE - Internationalization strategy of the Software-ClusterElisabethStemmler
 
Knowledge and Media Technologies at Salzburg Research
Knowledge and Media Technologies at Salzburg ResearchKnowledge and Media Technologies at Salzburg Research
Knowledge and Media Technologies at Salzburg ResearchSebastian Schaffert
 
OW2con'14 - OpenPaaS, the open source collaboration platform, Linagora
OW2con'14 - OpenPaaS, the open source collaboration platform, LinagoraOW2con'14 - OpenPaaS, the open source collaboration platform, Linagora
OW2con'14 - OpenPaaS, the open source collaboration platform, LinagoraOW2
 
Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...
Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...
Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...FrenchTechCentral
 
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataUsing Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataOSCON Byrum
 
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open DataOSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open DataPaco Nathan
 
Open Source Scientific Software
Open Source Scientific SoftwareOpen Source Scientific Software
Open Source Scientific SoftwareGael Varoquaux
 
Software solution - Lean development and Agile methodologies lesson 1
Software solution - Lean development and Agile methodologies lesson 1Software solution - Lean development and Agile methodologies lesson 1
Software solution - Lean development and Agile methodologies lesson 1Francesco Mapelli
 
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesPathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesTao Xie
 
SAP Big Data Innovation Lab at the University of Mannheim
SAP Big Data Innovation Lab at the University of MannheimSAP Big Data Innovation Lab at the University of Mannheim
SAP Big Data Innovation Lab at the University of MannheimProf. Dr. Alexander Maedche
 
Open Syllabus in Sakai 2.6: up and running
Open Syllabus in Sakai 2.6:  up and runningOpen Syllabus in Sakai 2.6:  up and running
Open Syllabus in Sakai 2.6: up and runningRaynauld Jacques
 
SoundSoftware: Software Sustainability for audio and Music Researchers
SoundSoftware: Software Sustainability for audio and Music Researchers SoundSoftware: Software Sustainability for audio and Music Researchers
SoundSoftware: Software Sustainability for audio and Music Researchers SoundSoftware ac.uk
 

Similar to smalltalkCI: A Continuous Integration Framework for Smalltalk Projects (20)

Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.
Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.
Software Heritage: Building the Universal Software Archive, OW2con'16, Paris.
 
Teaching NASA to Open Source its Software the Apache Way
Teaching NASA to Open Source its Software the Apache WayTeaching NASA to Open Source its Software the Apache Way
Teaching NASA to Open Source its Software the Apache Way
 
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
 
Filling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperation
Filling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperationFilling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperation
Filling the knowledge gap: New metrics for GLAMs and GLAM-Wiki cooperation
 
Interoperability at Apache Software Foundation
Interoperability at Apache Software FoundationInteroperability at Apache Software Foundation
Interoperability at Apache Software Foundation
 
Final FoCAS Newsletter, Issue Eight, Winter 2016
Final FoCAS Newsletter, Issue Eight, Winter 2016Final FoCAS Newsletter, Issue Eight, Winter 2016
Final FoCAS Newsletter, Issue Eight, Winter 2016
 
Research Careers in Applied Computer Science
Research Careers in Applied Computer ScienceResearch Careers in Applied Computer Science
Research Careers in Applied Computer Science
 
SCIKE - Internationalization strategy of the Software-Cluster
SCIKE - Internationalization strategy of the Software-ClusterSCIKE - Internationalization strategy of the Software-Cluster
SCIKE - Internationalization strategy of the Software-Cluster
 
Knowledge and Media Technologies at Salzburg Research
Knowledge and Media Technologies at Salzburg ResearchKnowledge and Media Technologies at Salzburg Research
Knowledge and Media Technologies at Salzburg Research
 
OW2con'14 - OpenPaaS, the open source collaboration platform, Linagora
OW2con'14 - OpenPaaS, the open source collaboration platform, LinagoraOW2con'14 - OpenPaaS, the open source collaboration platform, Linagora
OW2con'14 - OpenPaaS, the open source collaboration platform, Linagora
 
Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...
Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...
Inria Tech Talk : boostez la performance de vos objets connectés - Mercredi 2...
 
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataUsing Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
 
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open DataOSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
OSCON 2013: Using Cascalog to build an app with City of Palo Alto Open Data
 
Open Source Scientific Software
Open Source Scientific SoftwareOpen Source Scientific Software
Open Source Scientific Software
 
Sakai11 LA opensyllabus
Sakai11 LA opensyllabusSakai11 LA opensyllabus
Sakai11 LA opensyllabus
 
Software solution - Lean development and Agile methodologies lesson 1
Software solution - Lean development and Agile methodologies lesson 1Software solution - Lean development and Agile methodologies lesson 1
Software solution - Lean development and Agile methodologies lesson 1
 
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesPathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and Challenges
 
SAP Big Data Innovation Lab at the University of Mannheim
SAP Big Data Innovation Lab at the University of MannheimSAP Big Data Innovation Lab at the University of Mannheim
SAP Big Data Innovation Lab at the University of Mannheim
 
Open Syllabus in Sakai 2.6: up and running
Open Syllabus in Sakai 2.6:  up and runningOpen Syllabus in Sakai 2.6:  up and running
Open Syllabus in Sakai 2.6: up and running
 
SoundSoftware: Software Sustainability for audio and Music Researchers
SoundSoftware: Software Sustainability for audio and Music Researchers SoundSoftware: Software Sustainability for audio and Music Researchers
SoundSoftware: Software Sustainability for audio and Music Researchers
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Reviewjw364beach
 
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBUETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBUsamruddhijedgule2004
 
The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024Artur Skowroński
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...
Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...
Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...Piyovi
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
What is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxWhat is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxTechnogeeks
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
logical backup of Oracle Datapump-detailed.pptx
logical backup of Oracle Datapump-detailed.pptxlogical backup of Oracle Datapump-detailed.pptx
logical backup of Oracle Datapump-detailed.pptxRemote DBA Services
 
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...OnePlan Solutions
 
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...Bert Jan Schrijver
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
Business Analyzopedia - Your Pocket Gita for Business Analysis
Business Analyzopedia - Your Pocket Gita for Business AnalysisBusiness Analyzopedia - Your Pocket Gita for Business Analysis
Business Analyzopedia - Your Pocket Gita for Business AnalysisDEEPRAJ PATHAK
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 

Recently uploaded (20)

Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
 
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBUETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
ETE PPT.pdf LMMKLMKLMLKMLLMJKBHJBHBNUIHBU
 
The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...
Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...
Explore the Three Main Types of Logistics - Inbound Logistics, Outbound Logis...
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
What is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxWhat is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docx
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
logical backup of Oracle Datapump-detailed.pptx
logical backup of Oracle Datapump-detailed.pptxlogical backup of Oracle Datapump-detailed.pptx
logical backup of Oracle Datapump-detailed.pptx
 
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
 
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
Business Analyzopedia - Your Pocket Gita for Business Analysis
Business Analyzopedia - Your Pocket Gita for Business AnalysisBusiness Analyzopedia - Your Pocket Gita for Business Analysis
Business Analyzopedia - Your Pocket Gita for Business Analysis
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 

smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

  • 1. smalltalkCI A Continuous Integration Framework for Smalltalk Projects Fabio Niephaus Hasso Plattner Institute University of Potsdam, Germany fabio.niephaus@student.hpi.de Dale Henrichs GemTalk Systems dale.henrichs@gemtalksystems.com Marcel Taeumel Hasso Plattner Institute University of Potsdam, Germany marcel.taeumel@hpi.de Tobias Pape Hasso Plattner Institute University of Potsdam, Germany tobias.pape@hpi.de Tim Felgentreff Hasso Plattner Institute University of Potsdam, Germany tim.felgentreff@hpi.de Robert Hirschfeld Hasso Plattner Institute University of Potsdam, Germany robert.hirschfeld@hpi.de IWST 2016, Prague, Czech Republic 08/23/2016
  • 2. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Our Motivation SWE lectures • Student teams work on a project in Squeak/Smalltalk • Introduction to: – Version Control Management Systems – Continuous Integration 2
  • 3. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 GitHub • Hosting platform for Git repositories • Features – Issue tracking – Wiki – Markdown – Pull Requests and Forking – Integrations (e.g. Slack, Trello, ...) – … 3
  • 4. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 TravisCI • Hosted, distributed continuous integration service for project hosted at GitHub • Features – Builds project after each code push – Free for public repositories – Supports a broad range of programming languages (including Smalltalk) and build environments – Notifications via Email/Slack/IRC/Webhooks/… – Automatic deployment after successful builds – … 4
  • 5. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Toolchain For Students 5 Local Repository Remote Repository TravisCI running builderCI Metacello Package Manager Squeak Project FileTree
  • 6. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Some Design Goals And Decisions • Compatible to different Smalltalk dialects • Fast feedback loop • Lightweight – Few dependencies – Small bootstrapping code base and total file size • Reliable – Self-contained (minimum number of external resources) – Perform self-tests (“Eat your own dog food”) – Dedicated config file (similar to Gemfile or package.json) • Extensible – Easy to add features and support other dialects/environments • Debuggable – Various debug options – Reproducible builds 6
  • 7. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Smalltalk Support on TravisCI 7
  • 8. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 EXAMPLE PROJECT 8
  • 9. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 9
  • 10. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Example .smalltalk.ston 10 For full documentation, check out smalltalkCI’s README.md.
  • 11. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Example .travis.yml 11
  • 12. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Seaside On TravisCI 12
  • 13. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Seaside On TravisCI 13
  • 14. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Build Failure Example 14
  • 15. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Projects Using smalltalkCI 15
  • 16. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 FUTURE WORK 16
  • 17. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Try Out More CI Services 17 GitLab CI …
  • 18. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Add More Smalltalk Images 18 Moose … Cuis Etoys
  • 19. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Support for Different VMs 19 SqueakJS RSqueak/VMOpenSmalltalkVM (e.g. latest + stable) …
  • 20. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Improve Tooling For Git • Get rid of two-commit workflow • Use metadata-less FileTree by default 20
  • 21. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Simplify First Steps • Uniform way to load projects from GitHub • One-click tryout in browser via SqueakJS 21
  • 22. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Conclusion smalltalkCI… • makes it easy to CI test Smalltalk projects • enables easy access to free CI services • runs locally and provides various debugging options • is already used by more than 100 projects on GitHub 22
  • 23. Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present smalltalkCI – Paper Presentation – IWST ‘16 Contribute! Questions? Ideas? 23