Software-Configuration.com
Published by PAC Enterprises LLC
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.

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!