Team development

lex at cc.gatech.edu lex at cc.gatech.edu
Wed Oct 13 20:02:41 UTC 2004


In short, it sounds like you could well use Monticello files to hold the
code, plus an external tool to version them and handle dependencies. 
Here are some more detailed suggestions.

You'd certainly want to use the monticello code merger to handle
simultaneous edits by separate developers.  I don't think there is
really any alternative.  The functionality is important, and the
Monticello merge tool is the only place you can get it.

You would likely want to have an installer script floating around,
insetad of using Monticello dependencies.  A real CM system can likely
do better than the exact version-specific dependencies of Monticello. 
To be honest, I already have trouble with them on a one-person project
with 10-20 packages in it; a multi-person project with hundreds of
packages is likely to work better by using your CM system's facilities.

A complication is that Monticello files tend to include a version number
in the filename.  I dunno what the best way to handle this would be. 
The simple way is to use Monticello as it is, and get used to deleting
the old versions in the CM system.  (And I mean "delete" in a versioned
sense of version n+1 of a directory no longer has the file.)


In general, the idea of using a separate CM system sounds good both in
the short run and the long run.  In the short run, Squeak simply doesn't
have good CM options for a larger project.  In the long run, you don't
want to get locked into to doing absolutely everything in Squeak. 
Additionally, Squeak (IMHO) should never put people in the position of
choosing all or nothing.  Squeak is perfectly capable of being a polite
citizen in general, and in particular it should work fine to use Squeak
code files along with any file-based configuration management system.

Just one warning: don't try to hook the CM tools into Squeak at a very
low level, unless you are prepared to spend a lot of time hacking
Squeak.  I think you already have a better plan: let people hack in
Squeak, but then occasionally synchronize to the CM system.  The one
group I know that tried to have low-level integration to the CM tools,
had a mess where every time they started Squeak it spend many minutes
reloading all of its files.  Your approach is a much better fit for the
strengths of Squeak.

Let us know what you decide and how it goes!!

-Lex



More information about the Squeak-dev mailing list