This page is a collection of resources for people working on improving Vesta.
LearningVesta is a great place to start.
The list of publications on the front page has a number of papers on Vesta's design an implementation
"The Vesta Software Configuration Management System" is a book-length research report by the original Vesta authors. It explains many implementation details and is worth reading for anyone who wants to work on Vesta.
HowCachingWorks briefly explains some of the details of how the evaluator and cache work together
There's a more detailed explanation in the paper "Caching Function Calls Using Precise Dependencies"
HowWeedingWorks gives an overview of the weeding process (arguably the most complicated part of the Vesta system)
In-depth Technical Information
/CodeTourNotes is another review of (some parts of) the Vesta code
The porting guide explains the boot-strapping method we've used in the past to port Vesta to new platforms
/GcHeapSize Outlines possible code changes to keep the heap size of prgrams using garbage collection under control
/PkFileEvolutionExample illustrates how the data structures in a PKFile change as entries are added
/GdbSequences has a collection of user-defined gdb commands which you might find useful when working with Vesta applications
/ReposPerfAnalysis explains tools available for analyzing the performance of the repository to look for bottlenecks and opportunities to improve performance
/ImprovingQa describes some things we should do to improve our testing of changes to Vesta
/EasyTasks lists some easy improvements and bug-fixes. Why don't you make one today?
/SymlinkSupport has notes on changes needed to support symlinks more pervasively (for tools, in versions)
ReposUIPackageClass contains a proposed, and mostly implemented, API for representing and manipulating repository objects like packages, session directories, and working directories. This would offer a higher-level interface as an alternative to the low-level VestaSource interface.
DiffIssues talks about issues with implementing a general-purpose diff for Vesta.
/RunToolRoster has implementation notes for a new way for evaluators to find RunToolServers
/NoCacheRunTool has some notes for how one might make /**nocache**/ work for the _run_tool primitive function
If you want to check in under /vesta/vestasys.org you'll need access to dev.vestasys.org (the repository with mastership of that hierarchy). (You'll need help from the project administrators for either of these.) You have two options:
The vestasys.org VPN can be used to create a secure tunnel which will allow your repository and its client hosts to access dev.vestasys.org as a peer repository. This allows you to perform remote checkouts from and checkins back to dev.vestasys.org.
If there's some reason why the VPN is not an option for you (e.g. a network security policy you don't have control over), we can give you an account on dev.vestasys.org which you can log into using ssh. (See DevUserInfo including SshPortForwardingExample.)
ReleasePlans is where we keep plans of what will go into upcoming Vesta releases
/ReleasePhases describes how we intend to schedule our work towards each release
/BranchStatus explains how we keep track of the different branches containing active development work
/ChangeEmailTrigger Suggested trigger setup to send e-mail when you make changes to the Vesta code
/CodeReviewTools Some notes about different code review tools we might use with Vesta