Python Notes

Thursday, November 11, 2004

News on my Python development environment setup

It's been about two months since I started rebuilding my development environment using only free tools. For a long time, I was stuck in the search for a good IDE. It took me a while to figure out that I was not missing the IDE, but a set of good project management tools. Once I realized it, I could find several good code editors that supported my basic requirements: the ability to create projects, to group related files; the ability to store session information, so I can resume working where I left; and the ability to quickly navigate all the files in the project.

Now, I'm going a step forward. I'm moving all my development files into Subversion, an open-source source code control system. It's not a new concept to me -- I have used CVS and commercial tools before -- but for several reasons, I wasn't willing to do it before, basically because I hadn't a stable enviroment. My home machine is still a low-performance Win98 box, and my dev machine was a temporary one. Now that my development machine is (hopefully) a permanent one, I have installed Linux, and now I feel better about setting up a true development environment.

Up to this point, the installation is being surprisingly easy. The thoughest part was to define the repository structure: the question is, at which level do I want to control things? The easiest way is to put everything in the same repository, but this may lead to problems in the future. Anyway, it's not something that I can't change later. I'm going with the single repository now, and each project is a directory inside it. If some project grows enough to deserve its own repository, so be it.

Another related thing is the use of a test-driven-methodology, which I'm already commited to start using from now on. I think that the source code control system will make it easier to implement it. Also, the fact that I had to make some decisions on repository structure means that I could reestructure the way I store the source code. I have splitted some projects, and created the tests directories. Let us see where does this experience leads me...