[squeak-dev] [Cuis] Cuis

keith keith_hodges at yahoo.co.uk
Thu Jan 21 18:00:09 UTC 2010


Igor,

first let us define some terms.

The Squeak Community
===================
You and the board appear to define community as "anyone who pipes up  
on squeak-dev".

Now this definition has caused all manner of problems in the past  
especially with 3.9, and it resulted in the Pharo split, because the  
3.9 team were constantly beaten up by people on squeak-dev. (One of  
those persons doing the beating happened to be Andreas). This  
definition of community also includes the average "lurker", who may  
download the image every now and then to see if it is interesting  
enough for them to not have to do java any more.

The "team model" adopted and endorsed by the board for many years,  
whereby the teams had their discussions on a separate mailing list,  
specifically afforded a layer of protection from the wide ranging  
opinions of "lurkers". The flagrant violation of this simple social/ 
political essential layer (which protected Ralph for more than 6  
months), is what caused our problems in the first place, when Andreas  
went to squeak-dev with "this is the new process, I am a board member  
I can do what I like and I haven't even spoken to the release-team for  
two months". Andreas was elected on a mandate of helping along a  
release, and by implication to help along the release-team doing the  
release. That mandate did not include, using his position on the board  
to promote his own interests, and that of his company, over that of  
the communities interests, which I shall outline below.

My definition of "community" is, the body of individuals who have  
significant code bases built on squeak or squeak like base images, who  
are tasked with the problem of maintaining packages, for users who are  
using an ever increasing variety of tools and forks of squeak. My  
definition of "community" includes all pharo developers, pharo users,  
cuis developers, and cuis users, cobalt, croquet, etoys, gjallar the  
lot. For example, I consider Göran, who is tasked with the maintenance  
of Gjallar, to be the archetypal, community member, whose needs bear  
understanding and supporting.

So the "lurkers" who download an image occasionally, they pop up on  
squeak-dev and see "nothing appears to have changed in 4 years". These  
are the ones that panicked the board, people I had never heard of, and  
as far as I know had no commits to any current projects i.e. they  
aren't really part of the community.

The "community" who have actual code running, have seen that the range  
of tools they can use to make their job easier to move their code  
about, to test it and to deploy their code for different clients has  
steadily increased and improved over the past 4 years. Now we have  
package management systems, improved testing tools (TestReporter),  
improved MC, Logging, Rio, Sake, Bob, AtomicLoading, Installer, and  
LPF *** running in all base images.

The Vision
=========
The "lurkers" just want to see a new flashy image, that they might try  
a little project in one day.

The "community" want to see the board provide vision and to promote  
harmony both philosophically/ideologically, and with technical  
facilities; harmony among all squeak forks, even those who don't want  
to be harmonised (i.e. Pharo). The community members want to be able  
to publish a package (e.g. Magma) and have it be tested to work for  
everyone, whether they be pharo users or squeak users. The community  
wants to be able keep its large published, even deployed code bases up  
to date and bug free.

This means that "the community" don't want yet another fork to  
support, the communities enthusiasm for "yet more of the same" waned  
when pharo forked, and no one wanted to volunteer for 3.11 after 3.10.  
To be honest we were all too busy just keeping our own code bases  
running, to have to worry about another fork of squeak.

In anticipation of spoon aka squeak 5.0, those of us with big code  
bases are already anticipating a significant porting effort in the  
future, we don't want to have another one foisted on us every 6 months.

Where are we now
==============
The board has responsibility to the community, the whole community,  
and I don't just limit that to squeak users.

This means that the board needs to set and understand its terms of  
engagement, that it is here to provide an "older and wiser  
supervisory" service different branches of the community, to foster an  
inclusive "culture" around which interesting innovations and solutions  
can happen.

It is not here to promote the interests of Andreas, and his company in  
the following:

1. Producing yet another fork for its own sake, "fork de andreas", and  
calling it squeak  - is not in the interests of the community.
2. Undermining the existing common tools and the progress made, in the  
past 3 years by the community***
3. Orphaning existing code bases, not providing any fixes to us, or a  
migration path.
4. Ignoring users of other forks, and users trapped by inertia in past  
squeak releases.

My Personal Situation
=================
I was funded in part to work on squeak, because my vision aimed to  
provide tools as a means to harness the creativity of the whole  
community. This was considered a benefit to both myself and my  
clients, and my paying clients considered it a bonus to be able to  
contribute back to the OSS community, from which we also derive great  
benefits. The vision provided a suite of tools we could use to build  
and test our production images, and our code base would be able to  
track the latest developments from whatever source.

The board scuppered all of the above, and the reputation of squeak as  
a viable solution that is worth contributing back to (i.e and  
funding!!!!) has been irreparably damaged. So thanks the incompetent  
fly by the seat of their pants flailings of the board, I loose a small  
but significant income stream that took several years to build up.

We also believed that modelling an extreme programming approach to  
testing and releasing, with a goal of bi-monthly releases, would be of  
value to the community and our own projects. (we would be on squeak  
3.14-alpha by now, if Andreas had put his considerable skills to  
contributing to the release team's work, rather than replacing it)

The fact that the actions of the board, have allowed an individual to  
take over, without due process, for his own benefit, following the  
agenda of his company, while at the same time, causing problems for  
others, is an issue of serious concern that the board should take  
seriously, and is not. It is the board that is going around in  
circles, refusing to take the "terms of engagement" request seriously.

I have no use for Multimedia tools in squeak or half of Andreas'  
ideas, I don't even know or care what they are, and I doubt if Göran  
gjallar (a project management tool using seaside and magma) has much  
use for them either. These are loadable things, that should be  
provided in external packages (again for all base images), Andreas  
should go off and become a contributing member of the community first  
before presuming to run it. How many loadable packages are on  
squeaksource provided and maintained by Andreas, if the answer is  
none, then he is not really a contributing member of the community, he  
is merely an informed user, aka lurker. Why would his opinion on a  
package management solution for the community to use be relevant, if  
he doesn't have any packages? Andreas develops using a "monolithic  
image under his control", so effectively do the Pharo team members,  
yet we, the community had a professed goal of moving towards a kernel  
image with load-able packages.

I myself made a specific decision NOT to run for the board (though I  
was asked), because I didn't see any purpose for a board member to be  
both on the board and on the release team, after all the board had  
endorsed the release team and therefore had a DUTY to uphold it as a  
decision making entity in its own right. The release-team has the  
authority to decide what is in the release, not the board, since that  
is what the board appointed the release team to do.

Andreas however joined the board specifically as a ploy to mussel  
through his own agenda which is to release a new image. No mention of  
the cultural context in which we are all operating, and those of us  
who are "the community" of package developers, are offered nothing  
from this new deal.

The core image, as a practical artefact, is the least important part  
of providing a service to clients, having it change underneath you  
however, is a big problem. The important part is the code you develop,  
maintaining it and testing it.

Although "Fork de Andreas", has not adopted LPF, Sake/Packages,  
Installer, this is not a problem as long as it doesn't break them.  
However Andreas has actually undermined and broken the use of MANTIS  
as THE tool for documenting bugs, and providing fixes for us legacy  
users. Because trunk is a moving target, people are fixing bugs  
against the moving target, not against releases. This is a change of  
policy which is not in the interests of the community, and hasn't even  
been discussed. Bug fixes are not maintained for existing users any  
more, nor can you provide them to existing users any more. Sake/ 
Packages can include a bug fix with a package if it is needed. BUT  
that bug fix has to be published relative to a fixed point, i.e. a  
release. Throwing fixes willy-nilly into trunk, doesn't help anyone.  
We had a golden age in which you could load any bug fix you needed  
direct form Mantis, well now no one is providing fixes there any more.  
You are forced to use trunk to avail yourself of important fixes, but  
trunk is a moving target and is pre-release.

The Boards Job
============
The board's job is to consider the following points, and to provide a  
visionary direction as a solution to the community:

1) My own code base is now orphaned and there is no suitable base  
image upon which to build, beyond 3.10. I was going to use Pharo, but  
I find OmniBrowser unusable, and the image is hugely bloated.
The trunk based 3.11 will not come tested, it will not come with  
package management, I will have to port all my own tools, and my own  
code, I will have to manually regression test seaside, magritte, pier,  
Rio, Beach etc, and some 60 packages, against the release. Andreas  
will not do that for me (whereas Bob would have done). The Bob/LPF  
process enabled me to apply API fixes to legacy images, and so enables  
a smooth migration path to any new releases.

2) The pain of maintaining my existing 14 or so packages for all forks  
is getting progressively harder not easier, to the extent that the  
inability of getting anyone to work together at all is making  
continued community based development prohibitive.

3) The board's ability to make any decisions whatsoever has been  
undermined, since it cannot be trusted to support its own decisions,  
or even to use due-process for anything it does. Thus the board has  
become THE loose cannon, that it was created to stabilise through the  
application of diverse elected wisdom. The process of election, which  
was intended to enable the board to be a source of wisdom, and to be  
representative of the communities interests, has become the potential  
source of unpredictable insensitive and partisan disruption.

4) If the board did not exist, or remained as a low key background  
entity looking after servers, then the community would have a chance  
to work things out in a process of mutual collaboration. The heavy  
handed actions of the board, now ensure that for groups sharing common  
interests, forking, in order to get away form the potential disruption  
that the board may cause, is the only viable option. This is the  
opposite of what the community wants.

5) The facilities of the community, can be removed, or re-assigned  
without due process. Thus scuppering all work done by users of those  
facilities. I spent a lot of effort building tools for mantis, that  
would enable mantis to be used as part of the process, effectively.  
But now Mantis and mantis harvesters have been reassigned to a  
different purpose. For example, I cant deliver my 3.11 even if I  
wanted to, because it was bound to and intended to showcase a process  
and that process included the way mantis was used to collate, query,  
and manage bugs, in a professional manner for the foreseeable future.  
Andreas replaced the process with his "New process for contributing to  
squeak", in ONE email, with NO discussion.

6) Does the board even have a constitution? This email includes the  
announcement that my teddy bear Cyril is running for the board, in the  
upcoming elections.

So in conclusion, until the Board, defines what it means by the  
community, and what it means to be itself, I don't think the community  
is really able to function.

I have repeatedly asked the board to produce a simple little thing  
such as a "Terms of Reference", 6 months of complete in-action on this  
topic, leads me to feel that I would be within my rights to call for  
resignations.

I am not going in circles Igor, I stated my position clearly at the  
beginning and I haven't changed. "I will not contribute any further to  
squeak, until the board has some form of terms of reference, which  
protects anyone from going through what I went through in the future."

regards

Keith












-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100121/8242b99a/attachment.htm


More information about the Squeak-dev mailing list