As 'developer by default' of TestServerSimple, I can just: TestServerSimple is just that, something to automatically download the latest version of packages, run the tests, and send a small report by mail. Right now the server works with Metacello configuration, is still not bulletproof to some exceptions (like a TimeOut on a distant repository), and used to work with Flair config or directly with Monticello packages. Now I dont have the time or the energy to invest more in this thing, so I would be happy to beta-test integration servers on Moose. The features you describe are interesting. So once, everybody has settled on some good solution (be it BB, Hudson, ...), just come to me with a good tutorial :) On 28 nov. 2009, at 09:23, Bart Gauquie wrote:
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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Simon