I recently resumed working a bit on a VA Smalltalk-based system I first created over a dozen years ago. VA Smalltalk is a fantastic programming environment, but I quickly realized how much I missed automated build packaging in that world. Each build takes only a few minutes, but it’s manual, requiring clicks through a GUI and waiting for results. I wanted this to now be automated like the rest of the continuous integration free world.
Fortunately, some folks have recently built tools to help.
I started with Ernest Micklei’s Melissa tool, a handy EpPackager front-end for scripting builds. Using it to automate builds for our headed (GUI) images was straightforward: I just created a workspace and CMD file for my particular requirements.
But scripting headless (cross-development, XD) packaging was not so simple, due to the nature of passive images and the fact that the controls are hopelessly embedded in the XD development UIs. Eventually, I found that Thomas Koschate cracked that nut with his nice HqaAutomatedBuildSupport tools (available at VASTGoodies.com). To use it, I mainly just created my own AbtBuildSpecification to specify the maps, subsystems, and features to match what I used in my XD Image Properties.
For consistency’s sake, I wrote some code to invoke AbtBuildSpecification build from MelissaBuilder. When done, I set up the CMD files as Windows Scheduled Tasks (schtasks) to run overnight.
It’s a handy process, but clearly something that could benefit from standardization by the VA Smalltalk vendor. For example, there are different ways to script startup loads: abt.cnf, Melissa, AbtImageStartup, or some combination of these. Perhaps our friends at Instantiations will soon include this in the base product. Our venerable community could certainly benefit from a common way of doing these new tricks.