30% of the worldwide market
of shipping containers is controlled by Smalltalk systems.

Stéphane Ducasse, Director of Research INRIA Lille

Arden Thomas: Simple Deployment

Arden Thomas, the Product Manager for Cincom Smalltalk wanted to share some thoughts on deployment, and get some comments, ideas and feedback:

Deployment in Cincom® VisualWorks® (should apply to Cincom® ObjectStudio®, too) typically involves using Runtime Packager, which is a very capable, but non-trivial process.

So what is the minimal we can do if we want simple and trivial deployment?  It would probably be used for for small applications or for testing.

To understand this better, I set out to experiment with deployment of an application, with the goal of making it as simple as possible. Here is what I did, fairly explicitly, in case you want to reproduce it:

Create a runtime image:

  1. Start Base.im (found in /preview/packaging, save as deploy.im).
  2. Load the runtimepackager parcel.
  3. Start runtimepackager (tools -> Runtime Packager).
  4. Click ‘next’ until I am at the last stet, ‘Strip and Save image’, save the image (checkpoint).
  5. Click ‘Do this step’.
  6. Move runtime.im to my image directory.

Create an application parcel:

  1. Start visual.im, save as dev.im.
  2. Load StoreForPostgresQL.
  3. Connect to Cincom public repository, browse published items.
  4. Load ‘SpiderSolitaire 1.7 released’ bundle (Solitaire application by Dave Buck).
  5. Open system browser, find SpiderSolitaire.
  6. Right click on SpiderSolitaire, choose ‘publish as parcel’.
  7. Save and quit image.

Create a cmd file (Windows) to start the application (Solitaire.cmd) :

@echo off
@Start ..\bin\win\visual.exe runtime.im -pcl
SpiderSolitaire.pcl -doit 'SpiderSolitaireUI open'

Launch application, try it, close it, verify engine has shut down  … all good!

OK, now that I have a runtime.im, simple creation / deployment looks like this:

  1. Publish a parcel.
  2. Create the cmd file.

Thats it!  Simple and effective.  Also note if you need to load several parcels, you can use the –cnf command line option, and list the parcels in a file.

Questions:

  • Should we provide a runtime.im version of base to save some steps?

I’d like the application start not to show the command prompt window, but have not found the right parameter.  Share if you know, comments welcome!

If you would like to comment on Arden’s post or provide some feedback, click here.