Software Configuration

for an open source world

Software Configuration Management Tools

configuration managment system Posted by Rob Castellow


So now is the fun part.  You get to pick which tools you will be using to make your development process as smooth as possible.  I will attempt to give my experiences with a select few tools that I have seen be useful in a software configuration management environment.  If you, the reader, know of other tools that you feel should really be mentioned, please feel free to send suggestions to my email address in the contact section.         First, let's address each area that you will need at some point of the software design life cycle...


Version Control Tools

Subversion (http://subversion.tigris.org) - This is quickly becoming the open source industry standard for version control.  Subversion provides numerous features and also there is  an enormous amount of support for development tools (Eclipse, NetBeans, etc)  Subversion was developed by many of the original CVS developers and was designed to address all the things wrong with CVS.

Git (http://git.or.cz/) - A non-traditional SCM tool but efficient and distributed version control system.  This project was originally created to manage version controlling LINUX kernels.  The main push on Git is to handle large projects more efficiently.

Clearcase (http://www-306.ibm.com/software/awdtools/clearcase/) - Did I say that I was cheap?  Yes, I did, but I would like to mention Clearcase anyway.   First, understand the cost of Clearcase is more than what appears on your invoice.  The real cost to maintain Clearcase is in maintaining a local server, and then if multi-site is needed, just multiply that cost by the number of remote locations.  Other than the enormous costs, if I had to pay for a version control tool I would select Clearcase for its overall functionality.

Comparison Subversion GIT Bazaar CVS
NOTE : Subversion negatives are based on the Berkley DB, which is fairly uncommonly used since the introduction of the fsfs repositories.  FSFS repositories are extremely stable.


Multi Site replicators

WANDisco (http://www.wandisco.com) - I have not personally used this product, but I know that WANDisco is the leader in providing multi site solutions for Subversion, JIRA, and CVS.

Defect and Enhancement Tracking

JIRA (http://www.atlassian.com/software/jira/) - JIRA is a customizable bug and issue tracker.  JIRA provides custom workflows, web service interfaces and much more.  I have used JIRA and it is extremely intuitive.  JIRA is not free, but it is extremely cheap compared to other tools.  

TRAC (http://trac.edgewall.org) - I use TRAC on all my home projects, and it is extremely simple and flexible.  TRAC has an interface to Subversion and also has an integrated wiki.  TRAC also reads wiki markup in the commit comments of Subversion.  TRAC is also open source.

Bugzilla (http://www.bugzilla.org) - Bugzilla is an old standby for many developers.  I would suggest though that there are many better tools out there these days.  However, if you just want  the old classic, Bugzilla is still actively maintained.  Bugzilla is open source.

Scarab (http://scarab.tigris.org) - Scarab is an open source tool to track issues.  Scarab is a Java based implementation over MySQL.  Scarab is highly configurable, and will also import/export data from other defect tracking tools.

Mantis (http://www.mantisbt.org) - Mantis is a popular open source web based issue tracker.  Easily installed and configurable.


Requirement Tools

OSRMT (http://sourceforge.net/projects/osrmt) - Open Source Requirements Management Tool manages features, requirements, design, implementation, and testing.  


Iterative Build Tools

Cruise Control - CruiseControl was for many years on the forefront of continuous build integration.  CruiseControl has been a favorite by many.  There are many options to the CruiseControl tool, which can all be configured in its xml configuration file.

Hudson - A newer but powerful continuous integration build tool.  I am using this tool on a project now, and enjoy Hudson's many options, nice interface, and good communication options.  


Environment Management Tools

SourceForge - (http://sourceforge.net) - The world's largest open source development web site.  This environment allows any open source project to host itself for free on the site.  SourceForge also enables developers to communicate efficiently, track defects, and provides version control.


Build Tools

Ant (http://ant.apache.org) - Ant is a Java XML based build tool that has many built in libraries to automate builds and deploys.  Most development environments have plugins to Ant, and Ant enjoys widespread support.

Maven (http://maven.apache.org) - Maven is another Java XML based build tool with many built in libraries.  Maven differs in a few aspects from Ant.  First Maven is object oriented.  A developer will create a POM file to build code and that file will be inherited on all subprojects.  If you are trying to decide whether to use Maven or Ant, I would recommend that if you have a basic  J2EE app that does not deviate from good design patterns, then Maven is great.  If you really need to create creative design patterns, I would recommend Ant.

Make (http://www.gnu.org/software/make) - You may be designing C++ apps and using Make.  If so, I dropped the link, but chances are this is tattooed on your forearm by now.


Other Utilities Worth Mentioning

KOSMOS - (http://labs.jboss.com/kosmos) - This product is so useful, if you are using JIRA, Subversion, CruiseControl, or SourceForge.  If you are into high level understandings of where the code is at at any given moment, this tool provides a dashboard to several version control and defect tracking tools.  This tool is a JBoss portlet, so you will need a JBoss application server to run this app.  That's OK though.  It's all free!

more >





Bookmark and Share