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:
http://www.bluefish.se:8080/sqcvs.1
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 well. 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.
Martin
==========================================================
Readme:
CVSTProject release 0.5 http://cvstproj.sourceforge.net/ (2000/03/27) ------------------------------- 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 (http://www.pocketsmalltalk.com/sif/). 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 toolitself:
"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 http://www.bluefish.se:8080/sqcvs.1
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 CVST-platform. 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 toolkit (http://www.pocketsmalltalk.com/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:
- I've realized I screwed something up when filing in the portable base
of
the toolkit and as a result all the methods had their souce code double-CR-ed. Attached is a fixed version of the SIF-support.st (the SIF-VW3.st 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. http://im.yahoo.com
squeak-dev@lists.squeakfoundation.org