links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Personal SqueakSource
Last updated at 5:09 am UTC on 24 January 2018

Short Description

An easy one-time configuration to get Monticello history available for ones own private code in all images.

Requirements Solved

The primary goal of Personal SqueakSource was invisibility.

Basically, code history that "just works" without having to change anything.


In 2003, a web-site for storing and sharing the code of Squeak projects was developed and deployed as http://www.squeaksource.com. Later, a separate instance of this same application (also known as "SqueakSource") was deployed as http://source.squeak.org, to manage the base image code itself.

This page describes a quick and easy way to run set up a personal SqueakSource repository running on your laptop, enabling the full Monticello history of one's own proprietary code to be made seamlessly available in all images.

System Requirements

The system generates the scripts needed for a Linux installation only. The automated server start/stop is achieved via the daemontools Linux utility. For other platforms, a similar utility such as a .bat file startup script, etc., could possibly be used, or a Linux virutal box, or otherwise start the server manually.

Terse Setup Description

  1. Save a Squeak 5.1 image as 'ss.image'.
  2. Install Personal SqueakSource from SqueakMap.
  3. tar xf cogspurlinuxht-16.18.3692.tgz (or current production VM) in the same directory as ss.image.
  4. SSRepository deploy.  "do it, webserver.zip is created"
  5. Copy webserver.zip to run location, unzip and cd into.
  6. Soft-link your mc directory in as ss.
  7. run ./configsys
  8. run ./configsvc

Detailed Setup Description

  1. Start up a base 5.1 / trunk image. Save it as ss.image. This is the name the scripts refer to.
  2. Install Personal SqueakSource from SqueakMap.
Note this will be interactive Installation – Seaside wants to know the admin credentials.
  1. Save the image. This is your master image. It will never be necessary to save it again unless there's a code update. We will not be using image persistence.
  2. Make sure to have the latest vm untar'd in the current directory as cogspurlinuxht.
  3. Now execute the following in a workspace:
      SSRepository deploy
A file called webserver.zip is created in the current directory.
  1. Create a work directory (no spaces) from which to run the webserver. Copy webserver.zip to it. Unzip it:
      unzip webserver.zip
  2. cd into webserver. The setup scripts must be run from here.
  3. From the Linux command-line, run:
New user squeaksource is created, daemontools is installed, and the Spur-HT vm enabled. The webserver directory we're working in has been moved to /home/squeaksource.
  1. If daemontools wasn't already installed, then it may be necessary to reboot or run
       sudo svscanboot
  2. Before proceeding, its important to cd to the new run directory:
      cd /home/squeaksource/webserver
  3. Now its time to copy or, preferably, soft-link your primary Monticello directory in this current directory (webserver) as ss. When we create the repository, a SqueakSource Project will be created for each subdirectory in this directory.
      ln -s /your/development/directory/mc ./ss
  4. The last step will install the server as a daemon and keep it running even across reboots.
To verify the server is running, after a few seconds, you should be able to point your browser to http://localhost:[webPort] and see the title screen.

Personal SqueakSource performs its background "recovery" process on startup, which ensures any new files are in the Magma database. Upon the first start, they're all new. Depending on how many .mcz files there are, full history will not be indexed until a few hours, but its a background process that takes care of itself, so its okay to shutdown the computer even if its still running – it'll pick up where it left off next time.

Note:If Versions are saved only to the ss directory (linked dev directory), then the history for those saved versions will not be available until after the next recovery, which happens on restart / reboot.

Versions saved to the localhost:8079/ProjectName will also be saved to your development directory (e.g., ss), and be indexed immediately.

Making History available in images

To make the history available in images, the HTTP repository pointing to the http://localhost:8079/DirectoryName must be added to each MC Package.

For power users: It is recommended to make your own subclass of Installer, add the 'package-definitions' method category and definitions like in Installer. That way, among other configuration conveniences, you can simply execute the following to add the correct locally running Personal-SS repository to all relevant packages:
  MyInstaller addLocalRepositories