Dear all, I come from a Java world and there we use for instance : http://hudson-ci.org/ to do a continuous integration build. Which means all latest code gets updated, all test ran & if build successful, the code is tagged (so you can take the code again from a successful build). It also provides a nice GUI, and lets you inspect previous builds, the results from that build, ... .
In Pharo, I did not directly find an alternative, and therefor, also as an exercise, I tried to build one myself. The primitive, but working result so far is: http://www.squeaksource.com/BuildBot. This project depends on BBProjectDescription, which defines class BBBuildProjectDescription with defines: - BBBuildProjectDescription>>allProjectPackageNames - BBBuildProjectDescription>>installLatestWithDependencies - BBBuildProjectDescription>>buildsClassToPutVersionsOn What buildbot then does is using a BBBuildProjectDescription , checkout all latest code, run the tests for all these packages & , if successfull, take the buildsClassToPutVersionsOn and add a new method on it, describing the exact package numbers : for instance: BuildBotMockProjectBuilds class >> packagesForBuild20091127102654 ^#(('TODO' -> 'TODO-BKBAG.5.mcz') ('BuildBtMockProject' -> 'BuildBtMockProject-BartGauquie.7.mcz') ). Using this information I can easily install this exact version. Furthermore creating a release is then just creating for instance a class BuildBotMockProjectReleases with: BuildBotMockProjectReleasesclass >> release_1_0 ^BuildBotMockProjectBuilds packagesForBuild20091127102654 I am in fact 'tagging' a group packages that belong together and work together. So I can rollout this exact versions of the packages to some image automatically. However, Today I noticed that there already existed a project: http://www.squeaksource.com/TestServerSimple which more or less does the same thing. The only thing it does not do, or I did not find it, is to version the build, so that you can restore a project again ; a project which is consisting of a number of packages which are compatible and for which all tests ran. Is there a way to do that in TestServerSimple? Furthermore, are there any other projects that do a similar thing I'm not aware of? Is there any default way in Pharo to build a project which consists of multiple packages that each have different versions? I've seen MetaCello & Gofer as some other way 2 load groups of packages, but no integration into some kind of ci tool. This kind of automated ci server seems 2 me an essential tool in Pharo. Thanks for any pointers / ideas ! Kind Regards, Bart -- imagination is more important than knowledge - Albert Einstein Logic will get you from A to B. Imagination will take you everywhere - Albert Einstein Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning. - Albert Einstein The true sign of intelligence is not knowledge but imagination. - Albert Einstein Gravitation is not responsible for people falling in love. - Albert Einstein
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
