CVSTProject needs a porter to Squeak!

Göran Hultgren gohu at
Tue Mar 28 06:54:12 UTC 2000

Hi everybody!

The OpenSource CVSTProject needs your help. :-) For those not acquainted with our effort - we are
building CVS support for Smalltalk. For the moment we have two things:

1. "cvstproj" - A framework for producing a "CVS-friendly" filetree from a Smalltalk image. Using
this framework you are able to store Smalltalk source in CVS if you use an external CVS client in
combination with your Smalltalk environment. This part has been developed in VW by Martin Kobetic
from ObjectPeople and is already in a quite usable state.

2. "sqcvs" - An emerging implementation of the CVS client/server protocol on Sockets. This is my
"little baby " built in Squeak and it is not yet interesting for use - it can "only" do checkouts
and tonight maybe updates too. :-) But it is slowly falling into place.

Our plan is to port both cvstproj and sqcvs to as many dialects as possible - and this brings us
to the question of the day - is anyone interested to pick up the glove regarding the Squeak port
of cvstproj? Martin has worked quite hard to make it portable so it should be a "walk in the
park"... :-) :-)

If you are interested in this or just want to join the effort - start at:

Attached below is the announcement of version 0.5 from Martin on the CVSTProject mailing list:

Hi guys,

I am proud to announce the refactored and modularized release 0.5. This one
is finally the one to use for ports. I will copy the details from the Readme
file below. I hope somebody will be interested in doing the Squeak port. I
am going to focus on the documentation for now. If there isn't anybody up
for the Squeak port, I can do it myself after I am done with the docs. I
want to get the docs up to date so that we can make more buzz about the tool
in the public and hopefully attract some more porters for other dialects. I
also want to catch up and produce some design notes and some more class
comments as well.

Regarding the porting efforts. I believe it should not be too dificult to
make one. The repository on SF now contains 3 directories/modules: Base, VW3
and SIF. The source code of the class files is in SIF format and that's how
it should be from now on. The Base should be purely the portable code. VW3
and in the future Squeak, Dolphin, etc. should be the platform specific
part. The SIF module is probably not quite portable at the moment, but it
should become a portable one depending on the SIF Toolkit and the Base only.
Once there is a portable XML support, we will build XML encoding support as
The CVSSystemController side is platform specific. Only ChangeSet
integration is available now to make the Squeak port easy. We will add
VWParcel integration soon, because it will be more comfortable to use (right
now I am maintaining both parcels and change sets).
On the CVSSourceController side, only class file approach is supported at
the moment. It will require more work to decouple it from the Base to
support other arrangements as well. Moreover we still have to figure out how
to plug sqcvs and its CVSWorkingCopy into it as well. So I expect more
happening on this front in the near future. It is fine for now for use with
an external CVS client, though.

More details are below.




CVSTProject release 0.5
This package is zipped because any Linux user can unzip it, but not all
Windows users know how to unpack a tarball.
I just assume that Mac users can unzip, I hope I'm not wrong ;-).

1 ) Contents of this package:
README - This file
CVST - This is the portable base of the code provided as a VW3 parcel
(.pcl,.pst), a VW3 file-out(.st), a SIF format file-out(.sif)
CVST-VW3 - This is the VW3 specific part of the tool provided in the same
formats as above
CVST-SIF - Contains support for SIF source code format.

2) Changes:
- The code is now refactored and modularized and largely ready for porting.
Any porting effort generally needs to build an equivalent of CVST-VW3 for a
given target platform. There's actually not that much work to it so do not
be afraid to consider porting it yourself. We would be really grateful, if
you would let us know then, it will help to avoid duplication of efforts.
- Few fixes for the SIF encoding support were necessary. Now it seems to be
working OK. The SIF support requires Eric Arsenau's SIF toolkit
( I've got few fixes for the VW3 port
which are not available from the toolkit site yet, so in case you need them
before they are up, I am attaching the updated toolkit as well. Be aware
that the Squeak port of the toolkit is likely to have a bug I discovered
when using the VW3 port which was made by mostly copying the Squeak port one
to one. For details, please, see my report to Eric below.
- I've fixed the file out feature so that it uses the project's codec to
render the file-outs. So now you can package the project using any supported
format. This feature was used to create the sif file-outs of the tool.

3) Quick Usage Info:
Here is a copy of the workspace used to maintain the source of the

"This was used to create the project. The instanced is stored in the global
var CVST for easy access."
CVST := CVSProject create: 'cvst'.
CVST addModuleNamed: 'Base'.
CVST addModuleNamed: 'VW3'.
CVST addModuleNamed: 'SIF'.

"To commit the changes in the image into the source directories"
CVST commit.

"To update the image with the state in the source directories"
CVST update.

"To file out all modules, one file per module. Used for the relaease"
CVST fileOut.

More documentation is available on the project's swiki site at

4) Installation Info;
Pick whatever format of the modules you like most (parcel, file-out, sif).
a) Load the base from the CVST module.
b) Load the platform specific code from a corresponding module
c) If you want to use SIF format, which is likely the case if you are
running a cross-dialect project,
load the CVST-SIF module. The SIF support requires Eric Arsenau's SIF
Load the corresponding version of the toolkit for your platform, then the
CVST-SIF module.

5) What's Next:
- Squeak port should be available soon.
- Updating the documentation is very high priority now.
- A test suite should be built to support porting efforts
- Hopefully more ports will follow

Enjoy, mk

Info on SIF Toolkit Fixes:
> I've got few updates for the toolkit:
> 1) I've realized I screwed something up when filing in the portable base
> the toolkit and as a result all the methods had their souce code
> double-CR-ed. Attached is a fixed version of the (the
> was OK, since I had created it myself). I am attaching also a
> parcelled version of the toolkit to make up for my mistake ;-).
> 2) I've fixed the VW3 extension so that it handles class comments and
> variable subclasses properly (The Squeak version I was copying did not
> support it so I skipped it that time as well).
> 3) I've fixed SmalltalkInterchangeVW3FileOutManager>>packageItemInfoFor:
> which was aparently ignoring the class methods for the classes in the
> package/category. This is likely an issue in the Squeak port as well
> (since I've taken it from there originally)

Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.

More information about the Squeak-dev mailing list