comp.software-eng archive file "blurb/aegis" last changed 29 Mar 1993 Announcing aegis version 1.3 The latest version of aegis, a project change supervisor, is now available. Some of you may recall previous versions of aegis, announced in this newsgroup and others. If you have never heard of it, the README file is attached, below. This software is still alpha, but any and all comments are eagerly sought. Please pick it up and have a look at it if you have the time. Where to get aegis.1.3 You can get the latest version from the same place as before: Host: ftp.nau.edu Dir: /pub/Aegis File: aegis.1.3.tar.Z # the complete source File: aegis.1.3.patch.Z # patch to take 1.2 to 1.3 File: aegis.1.3.ps.Z # PostScript of the User Guide Thanks to Steve Wampler for his generosity in providing this archive space. This directory also contains a few other pieces of software written by me. Some are referred to in the aegis documentation. Please have a look if you are interested. For those of you without FTP, I recommend the use of an FTP-email server. There are a number around - see news.answers for an FAQ on this very subject - the best one depends on where you are. The README file, or What the heck is this aegis thing? NAME Aegis - a project change supervisor Copyright (c) 1990-1993 Peter Miller. All rights reserved. aegis (ee.j.iz) n., a protection, a defence. The aegis program is distributed under the terms of the GNU General Public License. See the LICENSE section, below, for more details. ALPHA NOTICE Please note that this is Alpha software. It probably has bugs, it is known to have unimplemented features. This version is not intended to be the final product. For more information, see the ALPHA file included in this release. DESCRIPTION The aegis program is a CASE tool with a difference. In the spirit of the UNIX Opertaing System, the aegis program is a small component designed to work with other programs. Many CASE systems attempt to provide everything, from bubble charts to source control to compilers. Users are trapped with the components supplied by the CASE system, and if you don't like one of the components (it may be too limited, for instance), then that is just tough. In contrast, UNIX provides many components of a CASE system - compilers, editors, dependency tools (such as make), source control (such as SCCS). You may substitute the tool of your choice - gcc, jove, cake, rcs (to name a few) if you don't like the ones supplied with the system. The aegis program adds to this list with software configuration management (SCM), and true to UNIX philosophy, the aegis program does not dictate the choice of any of the other tools (although it may stretch them to their limits). Enough hype, what is it that this Aegis program does? Just what is software configuration management? This question is sufficiently broad as to require a book in answer. In essence, the aegis program is a project change supervisor. It provides a framework within which a team of developers may work on many changes to a program independently, and the aegis program coordinates integrating these changes back into the master source of the program, with as little disruption as possible. Resolution of contention for source files, a major headache for any project with more than one developer, is one of the aegis program's major functions. It should be noted that the aegis program is a developer's tool, in the same sense as make or SCCS are developer's tools. It is not a manager's tool - it does not provide progress tracking or help with work allocation. BENEFITS So why should you use the aegis program? The aegis program uses a particular model of the development of software projects. This model has a master source (or baseline) of a project, and a team of developers creating changes to be made to this baseline. When a change is complete, it is integrated with the baseline, to become the new baseline. Each change must be atomic and self- contained, no change is allowed to cause the baseline to cease to work. "Working" is defined as passing it's own tests. The tests are considered part of the baseline. The aegis program provides support for the developer so that an entire copy of the baseline need not be taken to change a few files, only those files which are to be changed need to be copied. The win in using the aegis program is that there are O(n) interactions between developers and the baseline. Contrast this with a master source which is being edited directly by the developers - there are O(n!) interactions between developers - this makes adding "just one more" developer a potential disaster. Another win is that the project baseline always works. Always having a working baseline means that a version is always available for demonstrations, or those "pre-release snapshots" we are always forced to provide. The above advantages are all very well - for management types. Why should Joe Average Programmer use the aegis program? Recall that SCCS provides file locking, but only for one file at a time. The aegis program provides the file locking, atomically, for the set of files in the change. Recall also that SCCS locks the file the instant you start editing it. This makes popular files a project bottleneck. The aegis program allows concurrent editing, and a resolution mechanism just before the change must be integrated, meaning fewer delays for J.A.Programmer. NEW IN THIS RELEASE A number of features have been added to aegis with this release. A few of them are detailed here: + Support for NFS and the automounter. The aegis program will now function correctly in this environment. + Generation of patch files. The aegis program now provides functionailty for the generation of patch files. An example shell script may be found in the aux/patches.sh file. + Extracting previous versions. It is now possible to extract an historical version of a file when copying a file into change, not just the most up-to-date version. This aids in reproducing and killing bugs. + The tests distributed with the aegis program now use RCS. Previously SCCS was used, but this costs money and thus not everyone had it. RCS is free software and more readily accessible and far less expensive. Plus the usual crop of bug fixes and tinkering. For excruciating detail, and also acknowlegements of those who generously sent me feedback, please see the CHANGES file included in this distribution. BUILDING Instructions on how to build and test the aegis program are to be found in the BUILDING file included with this release. LICENSE The aegis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. The aegis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. It should be in the COPYING file. AUTHOR Peter Miller UUCP uunet!munnari!bmr.gov.au!pmiller /\/\* CSNET pmiller@bmr.gov.au