[squeak-dev] Packages, Packages, Packages

Colin Putney cputney at wiresong.ca
Sat Dec 12 17:28:19 UTC 2009


On 2009-12-11, at 9:14 PM, Andreas Raab wrote:

> * Figure out a build process that we can apply to the core image to build the default image automatically

I might be able to help with this one. I've written a build tool (called Mason) that could be used to automatically build a core image into a standard release image. The feature that differentiates Mason from most other build tools is that it doesn't have to be loaded into the image it's creating. Instead, it generates chunk-format scripts and runs them in a base image using OSProcess. I've been using it to build SARs, development images, HTML documentation, etc. I also use it to run SUnit test suites against various base images, and do inter-package dependency testing. 

The specification of what to build uses a protocol similar to Seaside's Canvas protocol, to build a tree of targets. Here's a short example:

specifyOn: targets
	targets directory 
		name: 'MasonExample'; 
		with:
			[targets file
				name: 'README';
				content: self readMeContents.
			targets image
				baseImage: self squeakTrunkImage;
				name: 'example';
				with: [targets version name: 'Filesystem-cwp.27' repository: self repository]].

This creates a directory called "MasonExample." Inside is a file called README, and an image (with changes) called example.image. That example.image is based on the Squeak Trunk Image and has Filesystem-cwp.27 loaded into it. 

I'll tidy things up for release tonight or tomorrow.

Colin


More information about the Squeak-dev mailing list