[PythonCAD] SVN repo back online and other notes about development

Art Haas ahaas at airmail.net
Fri Jun 17 22:40:23 CEST 2005


It's back. During the downtime I converted my repository from Berkeley DB
format to the newer 'fsfs' format, something I've wanted to do for quite
some time as dealing with the Berkeley DB libraries has produced
occasional hiccups. Those problems should now be gone, and as I've heard
nothing but good reports of 'fsfs' based Subversion repositories I'm
hopeful that things are smooth sailing from here through the foreseeable

While on the subject of the public repository, I'm becoming interested
in replacing Subversion with 'git', the new source code tracker
developed by Linus to replace BitKeeper. I liked BitKeeper, and the
decentralized development model is also a model that appeals more and
more to me. BitKeeper, however, was proprietary and my fear was that the
company would be bought and then BK would no longer be available,
trapping projects in the BK format. When the BK/Linux divorce happened I was
surprised about why it happened, but I believed that the kernel data
stored in BK would be extracted because some people or company would put
up the money to buy the needed BK license. Aside from the proprietary
nature of BK, the program was taxing to run on older machines,
especially as the ChangeSet file grew larger. Now that BK is only
available with a license I would not consider it at all. Git, on the
other hand, is free, runs fantastically well on older hardware, and as
it is being used to maintain the kernel source code I know that git itself
will have some of the sharpest developers around keeping it running in top
fashion. Git code will almost certainly run on any Linux variant, as
well as the different BSD flavors, and probably OS X, so I don't suspect
any developer on these platforms would have a problem getting, building,
and installing the various 'git' programs.

So, why replace Subversion with a brand new source code management
system? Subversion has worked fine for PythonCAD, and there is no reason
to believe that it would not work for future development. However, I
think the development model that I'd set up for PythonCAD needs
reassessment. When I started PythonCAD three years ago I'd hoped that,
by this time, there would be an active community of developers
contributing to the project. That has not been the case. Part of the
problem I believe is that the master repository was not publicly
accessible, like it is for GNOME, KDE, Apache, BSD, etc., and that
people wanting to contribute would have to send the patches to me.
Also, a CAD package is a specialized software program that many
developers would not use in their daily lives, so drawing these people
in to work on a program that they would rarely use requires a bit of
luck in finding the people willing to do this. There are certainly other
reasons that can explain why a regular development team has not
appeared, and I want that to change.

A distributed development system like that BK, and now git, made possible
offers a possible route to making more people interested in contributing
to PythonCAD. Subversion itself does not support this type of development
model, but the 'svk' package extends Subversion in this direction. I've
never used 'svk', so I cannot comment on its strengths and weaknesses.

I've not made up my mind yet when, or if, the switch to 'git' will
happen. I'd want to convert the repository to 'git', but at present
there is not a svn2git converter. I am very serious about trying to
draw more developers in to work on PythonCAD, and want to make some
changes to see that happen. Maybe moving the master repository on the
the publicly accessible machine and offering write-privledges could
be a better short-term or long-term plan. Still, a single master
repository has the drawbacks that if that machine is offline it hinders
people from committing changes, where the 'git' based model you have the
repository on your machine, commit locally, and then send your changes
out to others.

Comments welcomed with regards to switching to git and for drawing more
developers into PythonCAD.


Man once surrendering his reason, has no remaining guard against absurdities
the most monstrous, and like a ship without rudder, is the sport of every wind.

-Thomas Jefferson to James Smith, 1822

More information about the PythonCAD mailing list