Search code examples
githubsmalltalksqueakmetacello

Installing Smalltalk project from GitHub Repository


First of all: I never worked with Smalltalk before, so it's a bit of a culture shock for me. I am using Squeak 5.1 (32bit).

Now to my question: I want to install a Smalltalk project from a GitHub Repository. I successfully installed Metacello using this code, executing it in Transcript:

"Get the Metacello configuration (for Squeak users)"
Installer gemsource
    project: 'metacello';
    addPackage: 'ConfigurationOfMetacello';
    install.

"Bootstrap Metacello Preview, using mcz files (#'previewBootstrap' symbolic version"
((Smalltalk at: #ConfigurationOfMetacello) project 
  version: #'previewBootstrap') load.

"Load the Preview version of Metacello from GitHub"
(Smalltalk at: #Metacello) new
  configuration: 'MetacelloPreview';
  version: #stable;
  repository: 'github://dalehenrich/metacello-work:configuration';
  load.

"Now load latest version of Metacello"
(Smalltalk at: #Metacello) new
  baseline: 'Metacello';
  repository: 'github://dalehenrich/metacello-work:master/repository';
  get.
(Smalltalk at: #Metacello) new
  baseline: 'Metacello';
  repository: 'github://dalehenrich/metacello-work:master/repository';
  load.

And I also installed the Metacello Scripting API using this code:

Installer gemsource
    project: 'metacello';
    install: 'ConfigurationOfMetacello'. 

If I now want to install a project from a GitHub Repository, for example this:

Metacello new
  baseline: 'Animations';
  repository: 'github://hpi-swa/animations/repository';
  load.

Then I allways get this error:

gofer repository error: 'GoferRepositoryError: UndefinedObject>>thisOSProcess'...ignoring 

Am I missing something?


Solution

  • You're absolutely right, that doesn't work. OSProcess is has not yet been marked as compatible with Squeak 5.1 and even if it were, it's not being pulled in by Metacello. I'll report this to the developers.

    In the mean time you can load OSProcess with

    (Installer ss project: 'OSProcess') install: 'OSProcess-dtl.98'