Look at [Recent Changes] to watch this wiki develop (RSS [here>recent changes.rss]). This wiki is a companion to the [BodyBuilder project>http://BodyBuilder.sourceforge.net] at SourceForge. If you want to follow the development sign up to the [mailing list>http://lists.sourceforge.net/lists/listinfo/bodybuilder-development]. If you want to contribute you must be free to 'give away' your code since the [BodyBuilder license] is the famous 'new BSD' license. ---- [Packaging BOF at Smalltalk Solutions 2006]. ---- This wiki is currently empty, running up to [StS2006>http://www.lwnwexpo.plumcom.ca/smalltalk.cfm] I hope to post the various scripts people have sent me as example of their current build automation. I also intend to provide a description of the [PackageBot] client/server system in use at Soops which is in dire need of a redesign. For the moment I'll simply point you to [SCons>http://SCons.org] which is a system that shares several properties with what I have in mind for BodyBuilder. A [list of other interesting build systems]. If you (or your shop) has done any significant build automation on VW I would love it if you created a page here with a short 'war story' on what you have, how you use it and snags encountered. Even if you don't intend to join the BodyBuilder project I would greatly appreciate it if you write up your experiences here so we can get a feel for what is desired. See the [Wiki Syntax] page for editing hints. Existing solutions/war stories: *[PackageBot] ([Soops>http://www.soops.nl]) *[i-views' build scripts] Below this line seems a nice spot to start a short list of requirements you have for such a project, feel free to add/edit: ---- *Smalltalk syntax (or a subset) for build scripts *Be able to version build scripts in Store *Handle multiple 'repositories' (directories with .pcl/.st files, Store) *Build not only images but also drive ResHacker, compile modules in other languages, call Make/Ant/Scons/... *Parallelized builds, perhaps distributed in the future. *Support Continuous Integration. *Run tests *Drive image based COM Automation tools (generate IDL, generate .reg) as well as external tools (MIDL compiler) *be callable by and can call Make/Ant/SCons/... ---- The PackageBot already looks like a cool approach. Unfortunately, I can't attend the conference in Canada, so I'd like to contribute some design ideas here, or on the list, or elsewhere. The most important things, from my experience, are: * Runtime images should be built from within a development image ("written out") without the need to snapshot and exit. This way development can resume while bugs are checked out in the runtime. Deploying a runtime basically should feel like some kind of "save image as..." **See the technique of [Image Gestation>http://desk.org:8080/ImageGestation].In general BodyBuilder should support all 'compilation' techniques for images. At the moment that would be building up on a base image, stripping with RTP, and perhaps at a later date ImageGestation. --RH. * Whether one wants to package a full product for shipping, or just a runtime image for testing should be easily configurable. **Right, in the case of Make that is done by creating different rules. * Inclusion and exclusion of packages, classes, methods, globals etc. should be configurable indepedently from Store packages/bundels, i.e. be programmatically useable to pick items across package bounds. This is especially useful when building product variants (i.e. a "Demo") that should exclude certain functionality for sure. Implementing this behavior with the package/bundle mechanism can be complicated because overrides are hardly maintainable. **I don't consider different componentization part of BodyBuilder itself. Having said that we do have change files/sets available which allow us to script removals as well as additions using existing libraries. --RH * RTP is nice, but we should get rid of it. Image "stripping" is prone to too many side effects and occasional issues. If saving runtime images from within a development image could be achieved, the rest of BodyBuilder is probably rather simple scripting. **I insist on making BodyBuilder compatibile with all methods of image creation including stripping. --RH I've written a few useful classes (CodeComponentCollector, ParcelBuilder, OSBatchManager) I'd like to contribute to the discussion - let me know. Andre Schnoor andre_dot_schnoor_AT_web.de