[Glass] Basic questions regarding GemBuilder for Smalltalk, GemTools, and tODE

Otto Behrens otto at finworks.biz
Wed Oct 2 05:42:43 PDT 2013


> I agree with everything Otto said.

I wish my wife would. :-)

> I took some not too fine  ways in code just to avoid having gemstone
> specific packages.

Have also got some tricks here. What made a big difference is we have
stubs in Pharo for GemStone classes and methods we use on them, for
example System and SystemRepository. So we write GS specific code (eg
to commit a transaction or migrate) in Pharo. It's been a long time
since I needed to write a method that's in GS only. And we need to
clean up the old ones.

> On a remote
> server I have an installation of jenkins continuous integration server.
> Whenever I commit, jenkins runs a build for pharo _and_ gemstone for the
> same code. Most of the time I discover problems when jenkins runs the test
> and pharo stays green while gemstone turns red.

Yes, do exactly that. Cool.

> If everything looks green I
> update my development server with the new code.
>
> Updating the development server: The production server does a backup every
> night. I have a script [1] that copies the backup from the production server
> and recreates the image on the development server. On top of that I load the
> newest version from metacello. This is a very essential step. With
> bootstrapping the test server in the same state as the production server you
> test exactly what will happen later when you update the production server.

Yes, do that too. Only difference is we don't have a development
server. We just do it as a jenkins job.

> For testing gemstone in more detail I can do two things: I can download the
> last prepared image from jenkins into my local gemstone. Or I download the
> last backup of my production server and recreate the image on my laptop.

Also

> is mostly topaz usage because gemtools is too slow for me. And for updating
> tasks you are better off with topaz in combination with a tool like screen
> [2] anyway. That's because if the internet connection breaks while you are
> updating everything is rolled back.

Yes, agree

A key thing is the automation of all this. Quite some effort goes into that.


More information about the Glass mailing list