smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

Continuous integration (CI) is a programming practice that reduces the risk of project failure by integrating code changes multiple times a day. This has always been important to the Smalltalk community, so custom integration infrastructures are operated that allow CI testing for Smalltalk projects shared in Monticello repositories or traditional changesets. In the last few years, the open hosting platform GitHub has become more and more popular for Smalltalk projects. Unfortunately, there was no convenient way to enable CI testing for those projects. We present smalltalkCI, a continuous integration framework for Smalltalk. It aims to provide a uniform way to load and test Smalltalk projects written in different Smalltalk dialects. smalltalkCI runs on Linux, macOS, and on Windows and can be used locally as well as on a remote server. In addition, it is compatible with Travis CI and AppVeyor, which allows developers to easily set up free CI testing for their GitHub projects without having to run a custom integration infrastructure.

[1]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[2]  Alexandre Bergel,et al.  Increasing test coverage with Hapao , 2014, Sci. Comput. Program..

[3]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[4]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[5]  Robert Hirschfeld,et al.  Towards reducing the need for algorithmic primitives in dynamic language VMs through a tracing JIT , 2015, ICOOOLPS@ECOOP.

[6]  Oscar Nierstrasz,et al.  Pharo by Example , 2010 .

[7]  Andrew Glover,et al.  Continuous Integration: Improving Software Quality and Reducing Risk (The Addison-Wesley Signature Series) , 2007 .

[8]  Robert Hirschfeld,et al.  SqueakJS: a modern and practical smalltalk that runs in any browser , 2014, DLS '14.

[9]  Adele Goldberg,et al.  Smalltalk-80 - the interactive programming environment , 1984 .

[10]  Marco Torchiano,et al.  On the effectiveness of the test-first approach to programming , 2005, IEEE Transactions on Software Engineering.

[11]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[12]  Alec Sharp Smalltalk by Example: The Developer's Guide , 1997 .

[13]  Stéphane Ducasse,et al.  Fuel: a fast general purpose object graph serializer , 2014, Softw. Pract. Exp..

[14]  Stéphane Ducasse,et al.  Seaside: A Flexible Environment for Building Dynamic Web Applications , 2007, IEEE Software.

[15]  Jacob Stein,et al.  Class modification in the GemStone object-oriented DBMS , 1987, OOPSLA '87.