[Squeakfoundation]Initial project - Squeak core

Cees de Groot squeakfoundation@lists.squeakfoundation.org
Mon, 28 May 2001 00:14:38 +0200


Here's my second initial project proposal, mostly triggered by the meeting 
with Paul.

The first project must be a no-brainer, reasonably easy to implement, and a 
test of the (initial) environment. I propose CVS/Sourceforge, I know it's not 
optimal for St projects but it is there, it works, and we can use it to 
bootstrap up to a Squeak-specific SCM system.

Proposal:

Calling SqC's hand on SqF cooperation, I propose that we put the VM plus a 
very minimal core class library on SourceForge, and call that the official 
Squeak reference implementation.

Rationale:

As Paul indicated in his notes on our conversation, there are lots of 
parallels between Squeak and Linux - as Linux is tremendously succesful, we 
might just as well learn from it :-).

Both systems are an operating system, and both are applicable in a very broad 
range, both horizontally (from iPAQ to "SqueakNOS for System/390 ;-)") and 
vertically ("BusinessSqueak", "SchoolSqueak", ...). Like Linux, a worthwhile 
model could be to define a very basic core (kernel, libraries) and have third 
parties build distributions on top of that with added value. So a 
BusinessSqueak could be core+networking+Glorp+Swazoo (with a competing one 
core+networking+Comanche+SMS), a SchoolSqueak would have Morphic and eToys, 
etcetera. Keep in mind, that's the general direction I think it useful, the 
first step I propose here is just a very minimal first step. A side effect of 
this operation is that we force the issue of modularity.

Squeak-Core (as I propose to name this bit) would define the de-facto 
standard, which automatically opens up a clear, minimal target for competing 
and/or platform-optimized implementations. The first work, apart from maybe 
some refactoring, could be to write unit tests for this core so that 
alternative implementations could be validated.

The "Calling SqC's hand" terminology I used above is in response to Dan's 
message indicating SqC's support for the SqF effort ("great, Dan - prove it" 
;-)). Handing over the responsibility for the core to the community and 
pledging to cooperate on this bit would make this support very concrete. As it 
would be a extremely minimal bit of Squeak, it is very likely to consist of 
very stable code so that the impact on SqC day-to-day operations is likely to 
be small. That helps us to focus on procedures around SqC/SqF cooperation, 
roles, responsibilities.

Goal:

Produce Squeak-Core v1.0 on SourceForge.

Steps:

- (in parallel with the other steps) setup a mailing list where we can discuss 
the scope of Squeak-Core (probably VMConstruction plus stripped-down versions 
of Kernel, ST80, Collections, System - the goal is to have stuff in Core that 
must be present everywhere, no matter what the size of the platform or the 
application).

- Setup a SourceForge project or adopt an existing one for this goal.

- Setup a self-contained CVS changeset with some extra bits of code so that 
e.g. the Help menu is extended with SourceForge CVS interactions ("update code 
from SourceForge", "commit code to SourceForge", "send patches to Squeak-Core 
project mailing list", etcetera).

- Take a code cut and stash it into SourceForge. Call it "1.0.0".

- Start a machinery like the linux kernel machinery: Squeak-Core 1.1.x is 
hacking, alpha, unstable, when there's a nice set of new features start 
stabilizing until a version can be called 1.2.0 which is the next "official" 
release, etcetera.
-- 
Cees de Groot               http://www.cdegroot.com     <cg@cdegroot.com>
GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD  1986 F303 937F E098 9E8B