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

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...
 
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
 
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
 
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 programming
ESUG
 
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
ESUG
 
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 results
ESUG
 
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
ESUG
 
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
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
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
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
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
ESUG
 

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

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Recently uploaded (20)

WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 

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