Laker Departing[1]

2.4.4.1

GemStone/S 64 2.4.4.1 is the first version in the 2.4.x series for which GLASS is officially supported. GemStone/S 64 2.4 originally shipped in September of 2009, but I delayed announcing GLASS support for 2.4 until I had the configuration issues firmly in hand and Seaside 3.0 support was up to snuff. That day has finally come!

If you are interested in finding out what new and wonderful things are available in 2.4.4.1 at the server level then you should read the 2.4 series of release notes (at a minimum, you should scan the Table of Contents for topics that might interest you):

At the server level 2.4.4.1 and 2.4.4 are identical. The only changes are for GLASS:

Server Documentation

The full set of 2.4.x GemStone server documentation can be found here.

Server Download

You can find 2.4.4.1 downloads for Mac and Linux on the Glass Downloads page.

Server Installation

Installation instructions (via shell script – RECOMMENDED) are also available on the downloads page.

Alternatively you can follow the instructions in the Linux install guide for 2.4. There is no install guide for the Macintosh – use he installation shell script on the downloads page.

Jame’s instructions for installing GemStone on SliceHost (Ubuntu 9.10 (Karmic)) should still be valid, just download the 2.4.4.1 file instead of 2.4.1

Server Upgrade from GemStone/S 64 2.3.1

If you have an existing GLASS installation running on GemStone/S 64 2.3.1 or an earlier version of GemStone/S 64 2.4 you can upgrade your repository to use the new 2.4.4.1 executables by following the upgrade instructions in Chapter 2 of the Linux install guide for 2.4 after finishing your installation. The upgrade instructions in the Linux install guide for 2.4 are valid for Mac users as well.

If you are new to GLASS, you might want to take a look at the Getting Started with GLASS page for additional information about installing and setting up your GLASS installation.

GemTools 1.0-beta.8

With GemStone/S 64 2.4.4.1 you should use GemTools 1.0-beta.8.

If you already have a GemTools 1.0-beta.6 image, then you should update to 1.0-beta.8. Otherwise, I recommend that you download the GemTools 1.0-beta.8 for 244 One-Click image.

You may also build your own GemTools 1.0-beta.8 image.

GLASS 1.0-beta.8.1

The extent0.seaside.dbf that ships with 2.4.4.1 has GLASS 1.0-beta.8.1 pre-installed. GLASS 1.0-beta.8.1 does not have Seaside or any of the other GLASS add on projects loaded. The following projects are loaded by default:

For more information on what optional projects are available and instructions for loading them in GLASS, see the Optional GLASS Projects page.

Seaside, Pier, Magritte

For information about loading Seaside2.8, Pier and Magritte into GLASS 1.0beta.8.1 please see the Seaside 2.8 GLASS support page.

For information about loading Seaside3.0, Pier2 and Magritte2 into GLASS 1.0beta.8.1 please see the Seaside 3.0 GLASS support page.

—–
http://www.flickr.com/photos/chefranden/2680773287 / CC BY 2.0

Feb 11/2010 Fishing flags[1]

As most of you are probably aware, the SqueakSource server has been a little unstable over the last few weeks. To add insult to injury, the GemStone data center went down for several hours last week, as well. With GemSource offline, it isn’t possible to bootstrap Metacello. During the email exchange on the Pharo mailing list, it came up that as of Metacello 1.0-beta.25, I had started maintaining an alternate repository that could be used if GemSource was unavailable (some manual assembly required).

With the 1.0-beta.27 release, the Metacello bootstrap process automagically uses the secondary repository (http://www.squeaksource.com/metacello) if the primary repository (http://seaside.gemstone.com/ss/metacello) is not available. That means that as long as either SqueakSource or GemSource is online, you will be able to bootstrap Metacello.

Redundant Repositories

The 1.0-beta.27 release goes beyond bootstrapping Metacello. A couple features were added (or bugs fixed if you are so inclined) that make it possible for you to leverage redundant repositories in your own Metacello project.

  1. Secondary repository.
  2. Copy mcz files to secondary repository.
  3. Add secondary repository to baseline spec.
  4. Project reference with secondary repository.

Secondary Repository

First you need to create Monticello projects on a second server. This is probably the toughest problem since there aren’t that many public SqueakSource repositories out there. Within GemStone we have plans to create an additional, public GemSource repository, but those plans haven’t materialized yet. Perhaps the instability of the SqueakSource server may spur the creation of additional public repositories.

Copy mcz files to secondary repository

Second, you need to arrange to copy your mcz files to the secondary repository whenever you release a new version of your configuration. I’ve published the script that I use for copying Metacello mcz files to http://www.squeaksource.com/metacello. The script can be modified for use in your own project.

Add secondary repository to baseline spec

Third, you need to create a baseline version that references the secondary repository. As an example, I’m adding a secondary repository to the configuration of Gofer by copying the spec for 1.0-baseline which looks like the following:

baseline100: spec
  <version: '1.0-baseline'>
  spec for: #common do: [
    spec blessing: #baseline.
    spec repository: 'http://seaside.gemstone.com/ss/metacello'.
    spec
      package: 'Gofer-Core';
      package: 'Gofer-Tests' with: [ spec requires: 'Gofer-Core' ].
    spec
      group: 'default' with: #('Core');
      group: 'Core' with: #('Gofer-Core');
      group: 'Tests' with: #('Gofer-Tests'). ].

to the 1.0.2.1-baseline and then adding a secondary repository for Gofer (http://www.squeaksource.com/metacello):

baseline1021: spec
  <version: '1.0.2.1-baseline'>
  spec for: #common do: [
    spec blessing: #baseline.
    spec
      repository: 'http://seaside.gemstone.com/ss/metacello';
      repository: 'http://www.squeaksource.com/metacello'.
    spec
      package: 'Gofer-Core';
      package: 'Gofer-Tests' with: [ spec requires: 'Gofer-Core' ].
    spec
      group: 'default' with: #('Core');
      group: 'Core' with: #('Gofer-Core');
      group: 'Tests' with: #('Gofer-Tests'). ].

Yep, that’s all it takes …

Project reference with secondary repository

Finally, if you want to reference a project where the configuration is saved in a primary and secondary repository (in this case, http://www.squeaksource.com/MetacelloRepository and http://seaside.gemstone.com/ss/metacello) then you can do something like the following:

spec project: 'Gofer Core' with: [
  spec
    className: 'ConfigurationOfGofer';
    repository: 'http://www.squeaksource.com/MetacelloRepository';
    repository: 'http://seaside.gemstone.com/ss/metacello'. ].

—–
http://www.flickr.com/photos/46468661@N04/4348094671/ / CC BY 2.0

Me and MaulOnce the GemTools 1.0-beta.6 configuration was released, James Foster took a Pharo 1.0 one-click image and transformed it into a GemTools 1.0-beta.6 one-click(zip) for OS X, Linux and Windows.

The one-click image is available on the GLASS downloads page.

Photo by http://www.flickr.com/photos/cogdog/2313353249/ / CC BY 2.0

SSGN-OHIO_launch_Tomahawk-01Pier version 1.2.1.4 fixes a couple of GemStone portability issues.

To install or upgrade in GLASS 1.0-beta.8 evaluate the following expression in a GemTools workspace:

MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [
	[	Gofer project load: 'Seaside28' version: '2.8.4.6'.
		Gofer project load: 'Magritte' version: '1.2.1.4'.
		Gofer project load: 'Pier' version: '1.2.1.4' ]
	on: Warning
	do: [:ex |
		Transcript cr; show: ex description.
		ex resume ]].

I recommend that you specify explicit versions when you load, because the default version of intermediate projects may not be exactly what you expect. By explicitly loading a version you will have fewer surprises.

Note also that I’ve wrapped the standard Gofer project load messages with a handler for Warnings that dumps the  warning message to the Transcript and then resumes execution. The #commitOnAlmostOutOfMemoryDuring: method will do just that … it creates and enables an AmostOutOfMemory signal handler that performs a commit when you are almost out of memory – quite convenient for any operation that might run out of memory on you.

Photo by http://www.flickr.com/photos/mateus27_24-25/2168015333/ / CC BY-NC 2.0

Bell Buoy CrabsThe first fruits of the GLASS 1.0-beta.8 release: Seaside 2.8.4.6 is available for GLASS, Pharo and Squeak.

After snapping off GLASS 1.0-beta.9 for development this morning, I got right to work porting the absolute latest Seaside 2.8 release to GemStone and since there was new Seaside 2.8 code for Pharo and Squeak, I updated the ConfigurationOfSeaside28 for all three platforms.

To install or upgrade in GLASS 1.0-beta.8 evaluate the following expression in a GemTools workspace:

Gofer project load: 'Seaside28' version: '2.8.4.6'.

Now that the configurations for the GLASS code base are broken up into smaller pieces it is very easy for me (or anyone else) to make incremental releases.

In producing this release it should be noted that I released a new version of ConfigurationOfGsCore (version 0.240) without having to release a new ConfigurationOfGLASS. When ConfigurationOf28 the new version of ConfigurationOfGsCore is automatically loaded.

I will be providing detailed development steps shortly, so that other developers can get into the game.

Photo by http://www.flickr.com/photos/curtisperry/122790934/ / CC BY-NC-ND 2.0

open sign...I know, I know, the paint is not even dry on GLASS 1.0-beta.8 and I’m opening GLASS 1.0-beta.9 for development? Well, of course!

There are nearly a dozen bugs that are targeted for fixing in 1.0-beta.9, so we need a place to stash the bugfixes and with Metacello, that means opening a version for development.

In addition to GLASS version 1.0-beta.9, I’ve  created development versions for each of the fundamental projects managed in ConfigurationOfGLASS:

  • ConfigurationOfGsCore version 0.240
  • ConfigurationOfGsMisc version 0.237
  • ConfigurationOfMonticello version 0.238
  • ConfigurationOfGsOB version 0.239

I am hoping that other developers will eventually start contributing bugfixes to the GLASS project and opening the development versions is the first step. Over the coming weeks I will provide more information about the GLASS development process, but if you are hot to get started, drop me a line and I’ll let you know what I’m thinking.

Photo by http://www.flickr.com/photos/sashafatcat/3007623878/ / CC 2.0

Vaporized[1]

With GLASS 1.0-beta.8. I am finally providing an upgrade path for GLASS.230-dkh.231, the GLASS Appliance 1.0beta11 (GLASS.230-dkh.164), and GemStone/S 64 2.3.1.

FINALLY!

There are a number of changes that take effect with the 1.0-beta.8 release (part of the reason that the release has taken so long):

There are outstanding tasks that need to be completed before the entire 1.0-beta.8 release process is complete and you should keep an eye on the 1.0-beta.8 Release tasks for monitoring progress towards completion. Here is a list of the major milestones that are pending:

With all of that said, 1.0-beta.8 is ready to be used:

So have at it and let me know if you have problems.

1.0-beta.8 Upgrade Instructions

If you have an existing instance of GLASS including:

Upgrade your installation by following these steps:

  1. Create a GemTools client image (Steps 3 through 8 on the Getting started with GLASS page) based upon Pharo or Squeak
  2. Make a backup of your starting extent (Step 9 on the Getting started with GLASS page)
  3. Update GLASS to 1.0-beta.8 (Steps 10 and 11 on the Getting started with GLASS page)

If you have upgraded from a version earlier than 1.0-beta.0, then you are done! The upgrade for optional projects was performed as part of the GLASS update.

If you are upgrading from 1.0-beta.0 or later, then you are not quite done with the upgrade process.

Upgrade Optional Projects for 1.0-beta.0 and later

The 1.0-beta.8 GLASS configuration no longer manages all of the GLASS projects directly. Only a handful of fundamental GLASS projects are being managed. To finish the upgrade process you will need to individually upgrade the optional projects like Seaside28Seaside30 or SOAP.

For post 1.0-beta.0 upgrades, you should pick and choose from the projects and load only those projects that you are using or want in your repository.

The implication of having optional projects is that the fundamental GLASS projects and the optional projects can now be upgraded independently, so monolithic releases are no longer necessary.

http://seaside.gemstone.com/ss/MetacelloRepository

The MetacelloRepository on GemSource is where the configuration for projects that are known to work in GLASS are stored:

  • ConfigurationOfGLASS
  • ConfigurationOfGofer
  • ConfigurationOfGoferProjectLoader
  • ConfigurationOfGrease
  • ConfigurationOfGsCore
  • ConfigurationOfGsFastCGI
  • ConfigurationOfGsHyper
  • ConfigurationOfGsMisc
  • ConfigurationOfGsMonticello
  • ConfigurationOfGsOB
  • ConfigurationOfGsScaffolding
  • ConfigurationOfGsSeasideTesting28
  • ConfigurationOfGsSOAP
  • ConfigurationOfGsSqueakSource
  • ConfigurationOfMagritte
  • ConfigurationOfMetacello
  • ConfigurationOfPier
  • ConfigurationOfPierAddOns
  • ConfigurationOfSeaside
  • ConfigurationOfSeaside28
  • ConfigurationOfSeaside28Examples
  • ConfigurationOfSeaside30
  • ConfigurationOfSwazoo2
  • ConfigurationOfXMLSupport

Any one of the above configurations can be loaded on top of GLASS 1.0-beta.8.

Using Gofer one can load the latest version of Magritte using the following expressions:

Gofer new
	gemsource: 'MetacelloRepository';
	package: 'ConfigurationOfMagritte';
	load.
(Smalltalk at:#ConfigurationOfMagritte) project latestVersion load.

Even though Gofer drastically reduces the complexity of the load expressions involving Monticello, there is still room for improvement when loading configurations and that’s where Gofer Project Loader comes into play.

Using Gofer Project Loader the following expression is equivalent to the previous Gofer expression:

Gofer project load: 'Magritte'.

With Gofer Project Loader you can specify a default repository (for GLASS: http://seaside.gemstone.com/ss/MetacelloRepository). Gofer Project Loader is also aware of the ‘ConfigurationOf’ convention, so it isn’t necessary to type the leading ‘ConfigurationOf’.

The Gofer Project Loader expression:

Gofer project load: 'Magritte' version: '1.2.1.4'.

loads version ’1.2.1.4′ from ConfigurationOfMagritte and:

Gofer project
    load: 'Magritte' 
    version: '1.2.1.4' 
    group: 'Magritte-Seaside'.

loads the ‘Magritte-Seaside’ package (along with the dependent packages of ‘Magritte-Seaside’) from version ’1.2.1.4′ of ConfigurationOfMagritte.

The following Gofer expression is useful if you would like to just load the ConfigurationOfMagritte without loading the Magritte project itself:

Gofer new
	gemsource: 'MetacelloRepository';
	package: 'ConfigurationOfMagritte';
	load.

It should be obvious by now that it will be worthwhile spending some time learning about Metacello (take the Metacello Tutorial), Gofer and Gofer Project Loader. I think you will find Metacello it very useful to build a Metacello configuration to manage the packages in your own project.


http://www.flickr.com/photos/markkelley/ / CC BY-NC-ND 2.0

[1]

GemTools 1.0-beta.6 is a prerequisite for GLASS 1.0-beta.8.

GemTools 1.0-beta.6 features:

  • fixed highlighting for class definition/creation template
  • enabled syntax highlighting in workspaces
  • double click includes leading $_. In package GemTools-Overrides that is not loaded by default, because it stomps on a method in Character.
  • GsOBColumnPanel>>currentNode sends #currentNode to server-side, fixing a couple of ancient bugs
  • reset GLASS version after doing a Server update
  • exclude #baseline versions from update glass client version list
  • add proportional splitters to inspectors (resize panes vertically)
  • Use Help System instead of ProfStef
  • fix Issue 54 “Typos and unclear instructions in GemTools ProfStef tutorial”
  • add ”Admin>>Doit…>>Version Report” menu item (included in bug report template) that shows versions of all installed configs
  • add toggle ”Admin>>Commit on Almost Out of Memory” command
  • upgrade path from 0.231, 0.232.2 and 1.0-beta.0 through 1.0-beta.7 to 1.0-beta.8

The Terse Guide to the (new) GLASS Tools has been transferred (and updated) to the glassdb wiki see the GemTools Launcher Guide page.

For GemTools  installation instructions see the Getting started with GLASS page (steps 3 through 6).

For GemTools update instructions see the Update GemTools Launcher page.

GemTools Client 1.0-beta.6 has been tested with:

  • Pharo 1.0
  • Squeak 4.1

Let me know if you run into problems.

—–
http://www.flickr.com/photos/35669523@N04/3310187686 / CC BY-NC-ND 2.0

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Categories

 

July 2010
M T W T F S S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031