Hi bart we use some scripts (developed at netstyle) and ESUG will support hernan student to develop one. I know that Jorge started also and should work with them. So we should join forces. The idea is that the server should be able to load metacello configuration. Jorge/Hernan/Simon - what is the status - how could we join forces? Stef On Nov 28, 2009, at 1:23 PM, 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