[Glass] What the heck is going on?

Dale Henrichs dale.henrichs at gemtalksystems.com
Tue Aug 26 05:14:02 PDT 2014

A lot of the pain that all of you have been suffering recently is because I
have been making a concerted effort to transition the GLASS infrastructure
from a loosely organized collection of blog posts, wikis, and monticello
repositories to a focussed structure for installation and management of
GemStone, documentation and related projects based on using git/github for

Collaboration has always been a sticking point for me ... from the very
beginning of the GLASS project I have always seemed to be the bottleneck
for getting anything done ... there are lots of reasons why that was the
case and over the years I have tried a number of different things to make
collaboration easier and to make things less dependent upon me.

I invented Metacello so that I would not be the only person who knew how to
load a project ...

Metacello went a long way, but for me but I never saw the level of
contribution to maintaining the projects that I wanted ... I have received
lots of bug reports and complaints about how things are not working over
the years but I have seen very little in the way of actual contributed
bugfixes or improved scripts or improved documentation from the community
itself ... putting some code in an email does not update the package files
and does not test the fix against all of the supported platforms...

At the time that Otto introduced me to the very earliest versions of
FileTree, I had been studying git and trying to work out a plan to make it
possible integrate some features of git into Metacello to make Metacello a
more complete tool..... But Otto's pioneering effort there made it possible
to actually use git instead of re-implementing git ...

Working on FileTree gave me the opportunity to learn about GitHub and I saw
that GitHub providing collaboration tools that far exceeded anything we had
available in the Smalltalk community ... 100's of developers routinely
contribute to projects on GitHub and in Smalltalk it is danged difficult to
get 3 developers to work together and contribute to the same project ...

On github one contributes updates for scripts/code documenation by issuing
  a pull request. Before integration of the pull request, tests are run
against the supported platforms If the tests pass and there are no issues
uncovered during a code review (yes code reviews are very eeay to do on
github these days) one of the core developers can merge the code into the
master project with the press of a button on a web page.

It was very obvious to me that if I wanted to realize my goal of getting
off of the critical path for GLASS, I needed to find a way move the GLASS
project to git/github ...

This work started back in 2012 and the work involve major revisions for
Metacello (Metacello Preview), FileTree, GLASS and a new development
environment designed to work in a disk-based world (tODE).

BTW over these last view years I have used github to successfully
collaborate with a number of different folks on several different projects
and I have seen how smooth things can be ... Johan is moving to git/github
in his own internal development process as well ...

The work is nearly complete, but we have entered the painful transition

 I understand that folks are not going to be able to move overnight to
these new systems and tools, but the transitions have started Seaside3.1
and Zinc have been been transitioned to depend upon GLASS1 which means that
 before trying out these projects you will need to upgrade to GLASS

So to avoid future hassles everyone should at least make a plan to get
themselves up to GLASS 1.0-beta9.3.

Besides GLASS 1.0-beta.9.3, I think that folks should understand what is
going on with the MetacelloPreview and GLASS1.

In a nutshell, the MetacelloPreview project is required to use projects
hosted on github and is itself hosted on github and GLASS1 is the GitHub
hosted version of GLASS.

These two projects differ from other projects because they are pre-loaded
in your system and the configurations for Metacello and GLASS must be
loadable in the very oldest of supported versions of GemStone and the most
recent (2.4.x to 3.2.2). So ConfigurationOfMetacello and
ConfigurationOfGLASS cannot use the constructs required for loading
projects directly from github. Consequently I have had to create separate

These two projects are bridge projects spanning the old and new ways of
doing things so it will be a while before I can completely eliminate the
old projects completely.

As I have stated elsewhere, tODE has built-in git/github support and tools
support for git/github is absolutely required.

The final piece in the puzzle is GsDevKit ... GsDevKit provides the
framework for managing GemStone instances as well as the primary location
for documentation and references to projects that have been ported to
GemStone ...

In order to survive this transition period we are going to have to work
together ... if we continue the patterns of the past where folks send me
email telling me about problems instead of contributing solutions to
problems then the process will be a prolonged one, because I only have so
many things that I do in a day and I truly am trying to do my best and I
know that at times that has not been enough ...

To me collaboration means that you have start taking ownership and
responsibility for these projects ... I have made decisions because
decisions had to be made ... I have built tools because tools had to be
made ... I hope that GsDevKit provides a starting point for an evolutionary
process and I do not want to be the arbiter of evolution ... I have visions
and Ideas but these are general visions and ideas that without active and
productive contributions from the community will not survive ... In my
experience someone has to go around putting flags in the ground in order to
stimulate action, but please don't consider these flags in the ground as
being set in concrete.

If you do not have the time to contribute then have patience ... but please
try to make the time to contribute.

I don't expect anyone to read my mind so if you want to contribute drop me
an email and tell me what area you might be interested in. If you have
questions let's share those in public so I don't have to answer the same
questions over and over.

Can you write documentation? Do you want to fix bugs? Do you want to help
improve the Squeak/Pharo compat library? Do you want to learn and improve
about tODE? Do you want to learn about Metacello? Do you want to port the
latest XML support to GemStone?

There are hundreds of things that need to be done from little to large.
Every piece is important ...

I guess I've rambled long enough...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20140826/2a1ca2a7/attachment-0001.html>

More information about the Glass mailing list