The Vesta Approach to Software Configuration Management

Vesta is a system for software configuration management. It stores collections of source files, keeps track of which versions of which files go together, and automates the process of building a complete software artifact from its component pieces. Vesta’s novel approach gives it three important properties. First, every build is repeatable, because its component sources and build tools are stored immutably and immortally, and its configuration description completely specifies what components and tools are used and how they are put together. Second, every build is incremental, because results of previous builds are cached and reused. Third, every build is consistent, because all build dependencies are automatically captured and recorded, so that a cached result from a previous build is reused only when doing so is certain to be correct. In addition, Vesta’s flexible language for writing configuration descriptions makes it easy to describe large software configurations in a modular fashion and to create variant configurations by customizing build parameters. This paper gives a brief overview of Vesta, outlining Vesta’s advantages over traditional tools, how those benefits are achieved, and the system’s overall performance.

[1]  Roy Levin,et al.  The Vesta Language for Configuration Management , 1993 .

[2]  F TichyWalter RCSa system for version control , 1985 .

[3]  Roy Levin,et al.  The Vesta Repository: A File System Extension for Software Development , 1993 .

[4]  Allan Heydon,et al.  The Vesta-2 Software Description Language , 1998 .

[5]  Walter F. Tichy,et al.  Implementation and evaluation of a revision control system , 1982 .

[6]  Timothy Mann,et al.  Partial Replication in the Vesta Software Repository , 2001 .

[7]  Roy Levin,et al.  The Vesta Approach to Precise Configuration of Large Software Systems , 1993 .

[8]  Robert W. Taylor Bridges: Tools to Extend the Vesta Configuration Management System , 1993 .

[9]  Allan Heydon,et al.  Caching function calls using precise dependencies , 2000, PLDI '00.

[10]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[11]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[12]  Carl A. Gunter Abstracting dependencies between software configuration items , 2000, ACM Trans. Softw. Eng. Methodol..

[13]  Carl A. Gunter Abstracting dependencies between software configuration items , 1996, SIGSOFT '96.

[14]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984, SDE 1.

[15]  Glenn S. Fowler A case for make , 1990, Softw. Pract. Exp..

[16]  Allan Heydon,et al.  The Vesta Software Configuration Management System , 2002 .