[Update 3/16/2009: see the post GLASS Beta Update: Cooking with GLASS (Preview) for the latest preview information].
As a few brave souls discovered, the process for updating to the new crop of tools is a little more complicated than it needs to be. A couple of them even got their fingers pinched during the update:).I was looking for feedback, so I appreciate the effort. Hopefully their sacrifices will be worthwhile.
There weren’t that many changes made to the OmniBrowser code in GLASS post GLASS.230-dkh.177, however, the changes that were made created havoc for any windows opened prior to the update. I had originally hoped that a couple of errors between friends would be okay, but enough people ran into odd problems during the updates to GLASS.230-dkh.182 and GLASS.230-dkh.183, that it became clear that the update process needed to be improved.
I tried a number of things including an attempt to work around the problems with the new GemTools Client code. I was successful in getting the new GemTools Client to run against the older versions of GLASS (which is a step in the right direction), but I wasn’t able to get around the crashes and walkbacks. With a nudge from Igor Stasenko, I finally settled on using an update script.
In the end I made two significant changes to the update process:
- Update the GemTools client before updating the server. In the past we’ve updated the server-side code first and then updated the client-side code. However, since we’re recommending that users move to a completely different client image, I think it is easier to get the client update out of the way before doing the server update, especialy now that the latest GemTools Client code will run against older versions of GLASS. Any problems in getting the GemTools Client built and connected to the server can be worked out before making changes on the server side.
- Update the Server using a script instead of the Monticello Browser. With this particular update, using a script is necessary since the windowing mechanism for the current session becomes broken during the update. In the long run, it is useful to have a script-based update mechanism that can be used to update production repositories that aren’t easily accessed through the GemTools Client.
Since GLASS.230-dkh.183 I’ve made a handful of improvements that are worth trying out:
- merge Pier-Model-lr.245, load Pier-Blog-lr.103.
- OSTestRunner bugfixes.
- debugIt implemented. debugIt opens a Debugger on the selected code, setting a breakpoint on the first statement.
- exploreIt implemented. exploreIt opens a Chasing Inspector on the result of evaluating the selected code.
- Remove MonticelloConfigurations as a required package.
If you’ve been following the mailing list, you will have noted that we’ve received a flurry of bug reports in the last week or so. I appreciate the bug reports, but because I intend to address a good number of them before the next beta update, the next update will be deferred for at least 2 more weeks.
1. Update GemTools Client: GemStone-dkh.355
If you choose to use Pharo as the basis of your GemTools Client, be sure to download the latest dev image as a starting point. As of today, pharo0.1-10211dev09.01.2.zip is the latest dev image. If you choose to use Squeak as your GemTools Client, start with a basic 3.10 image like Squeak3.10-7159-basic.zip.
Use the Universe Browser, select the GemTools-Client version 0.355 package (in Network category) and install it. Note that during the install using 3.10, you will be warned about an extension to OTToolset – is is safe to proceed.
Open a Workspace and evaluate the expression ‘OGLauncher open‘ and then edit the Glass session, inserting the login information that is relevant to your system – stoneHost, gemHost, stoneName and netLDI.
Login using the GemToolsLauncher and get ready to update the GLASS repository to GLASS.230-dkh.187. Note that during the login using Pharo, you will get a warning about using a deprecated #authorInitials: api – it is safe to proceed.
Even though the Class Browser and Monticello Browser are functional, I wouldn’t try to do too much work using the new GemTools Client and an old version of GLASS. For best results you should immediately update your GLASS repository.
Since I’m still actively working on the new tools, I don’t plan to publish a ‘one-click’ GemTools Client, until the rate of change has settled down.
2. Update GemStone Repository: GLASS.230-dkh.187
The following update script:
- Adds a method to SystemChangeAnnouncement.
- Turns off autoMigrate.
- Loads GLASS.230-dkh.187 from the GemSource repository.
- Sets autoMigrate back on.
- Performs a commit.
The code should be pasted into the workspace pane of a Gemstone-dkh.355 GemTools Launcher or run from a topaz session.
| httpRepository version rg | SystemChangeAnnouncement compileMethod: 'item: ignored' category: 'accessing'. MCPlatformSupport autoMigrate: false. httpRepository := MCHttpRepository location: 'http://seaside.gemstone.com/ss/GLASS' user: '' password: ''. "pick up the GLASS repository if it's already in default repository group" MCRepositoryGroup default repositoriesDo: [:rep | rep = httpRepository ifTrue: [ httpRepository := rep ]]. version := httpRepository loadVersionFromFileNamed: 'GLASS.230-dkh.187.mcz'. version load. rg := version workingCopy repositoryGroup. rg addRepository: httpRepository. MCPlatformSupport autoMigrate: true. System commitTransaction.
If you’ve used the GemTools Launcher to run the update script you should logout and then log back in before continuing with your work. If you use topaz to update the repository, you need to remember to use a GemStone-dkh.355 GemTools Client to connect to your repository.
The GemTools Client is still in preview, so unless you are brave and/or curious, I’d recommend that you stick with a more stable version of GLASS.