Software Construction and Management Tools
Table of Contents
-
Software Building
- Software Pre-building Configuration
- Software Packaging
-
Source Control Managament Systems
- Bug Tracking
- Testing Frameworks
Software Building
- GNU Make - the best make in town! An implementation of make with many enhancements and some parallelization. There's a drop-in replacement for it written in Perl called Makepp.
- Cook - a make replacement with variables, user-defined functions, parallelisation, file checksums, and other powerful features.
- CONS - a make replacement written in Perl with file checksums and other features. SCons is a Python version, that has been more actively maintained recently.
- Ant - a make replacement written in Java that uses an XML description language.
Links to Lists, Comparisons and Other Resources
- Google's Web Directory for Make Tools - contains other useful links.
- A-A-P Build Tools List - A very comprehensive list of build tools.
- The Wikipedia Entry for Make - contains a list of alternatives.
- A Google Spreadsheet with a Comparison of various Alternatives
Software Pre-building Configuration
- GNU Autoconf, Automake, and Libtool: a trio of programs to portably build applications across multiple UNIX platforms. The de-facto standard in the open-source world, but very kludgy and cause many problems.
- Imake - a portability tool that ships with X11. Old and deprecated.
- CMake - a generator for cross-platform makefiles, not unlike Autoconf, but works much better. Actively used by KDE starting from version 4 and by many other projects.
- QEF - a high-level software construction system. Operates consistently across UNIX and Windows NT platforms. Proprietary.
- SCons can be used for writing such configuration tasks as well.
Software Packaging
- RPM - a package management system used on RedHat Linux and other RPM-based distributions. Also look at urpmi, yum, and apt-rpm, which install packages and resolve dependencies.
- dpkg - The Debian Package Manager, which is also used on similar distributions. Also look at Apt which automatically installs packages and resolves dependencies.
- Portage - The Gentoo Package Manager - a package management system for Gentoo Linux. Akin to the BSD ports but based on Python.
- OpenPKG - a cross-platform UNIX software packaging system.
Source Control Managament Systems
- CVS - the old standard of open-source source control systems. Functional and stable, but limited in many ways. (GPLed).
- Subversion - a CVS replacement with atomic commits, networking over HTTP, efficient handling of binary file and other features. Still mostly a client/server, centralised protocol, but much more reliable than CVS and works better. (Apache/BSD Licence).
- Git - a version control system originally designed for the Linux kernel. Very fast and 100% distributed, but has some user-interface idiosyncracies, a complex command-set, and lacks good documentation.
Links to Lists, Comparisons and Other Resources
- The Better-SCM Site - a site for comparison and advocacy of Version Control Systems. (Maintained by Shlomi Fish, who also originated this page and site.) Contains a comparison.
- Wikipedia Comparison of Revision Control Systems
- Dmoz.org's Category for Version Control Systems - contains links to many other implementations and resources. The Google Directory's equivalent directory may also prove helpful..
Bug Tracking
Note: Due to the large number of such systems, I decided to link only to very prominent open-source ones, and to directories where comprehensive lists can be found.
- Bugzilla - a WWW-based bug management system written as part of the Mozilla project with many advanced features.
- GNATS - The GNU Bug Tracking System, which uses Plaintext files to store its information and has several front-ends.
- GForge - The open-source derivative of the original VA SourceForge codebase contains a rudimentary bug-tracking system as part of the many web-based collaborative services it offers for developers.
- Mantis - An open-source PHP/MySQL web-based bug tracking system.
- Trac - a wiki and issue tracking system for software development projects. Written in Python and based on Subversion.
-
Request Tracker -
"RT is an enterprise-grade ticketing system which enables a group of people to intelligently and efficiently manage tasks, issues, and requests submitted by a community of users."
. Among else, it is used for tracking CPAN issues. - Google's Web Directory Bug Tracking Category - contains links to many other implementations.
- DMoz Bug Tracking - a perhaps more updated version of the same resource, with slower access times, and lack of Google's PageRank integration.
Testing Frameworks
- DejaGNU - a testing framework by the GNU project based on Tcl and Expect.
- XUnit - A testing framework that was suggested by Extreme Programming.
- TET - A cross-platform testing framework by the Open Group.
- The "Test Anything Protocol" (TAP) - a protocol for test scripts to communicate the results of their tests to the harness/consumer. Allows for heterogeneous test suites written in several languages.