This page has a list of resources which you can learn to use about Vesta. If you're new to Vesta this is a good place to start, but even experienced users may find this a useful collection of references
Contents
General
- For an overview of Vesta, see:
The slides from CodeCon 2004 are another introduction to Vesta
As you read through the various documentation, you'll find some words and phrases that have a particular meaning in Vesta. When you find yourself asking "just what is a reservation stub?", refer to the "Terminology" section of the vesta-intro(1) man page.
The VestaFAQ has questions and answers on many topics
Users
- Overview
Section 4 (pages 8-18) of "The Vesta Approach to Software Configuration Management" is titled "A User's View of Vesta"
Experience the basic user's work flow by going through the tutorial
CoreAspects is a description of some of the import things users should know about Vesta
- Get familiar with more of the commands
The repos-ui(1) man page lists the core repository tools; the HTML version has links to the man page for each
The command summary is another overview of commonly-used commands
- Learn about the attributes which can be found throughout the repository
Some attributes control permissions (such as the owner of a directory), some record information (such as who checked in a version and when they did so), and many are used by the repository tools to do their work
Use vattrib to examine and modify attributes
See VestaAttributes/Index for a list of the different attributes and what each of them mean
See also VestaAttributes
The Vesta tools use a common configuration file
You can use vgetconfig to get values out of the config file
You can override the default settings by either setting the VESTACONFIG environment variable or creating $HOME/vesta.cfg
The man page of each Vesta tool describes the configuration settings it uses
ConfigVars is a partial index of Vesta's configuration settings
If you work with more than one repository, learn of to use the replicator
The replicator has a powerful object matching syntax which allows you to request things like "the last 3 versions of this package"
You can also use the vglob command to expand replicator patterns, which allows you to use the same matching syntax for other purposes
Learn about the language used to describe builds (which is what's in all those files ending in .ves)
The SDL walkthrough will explain the basics of the language
There's also a set of slides introducing SDL (available in either HTML or PDF) that covers about the same material as the walkthrough. These come with a collection of example models which you can find in /vesta/vestasys.org/examples/sdl_intro.
You can see some simple examples of models for building C and C++ programs in /vesta/vestasys.org/examples/hello_c and /vesta/vestasys.org/examples/hello_cxx
The lex bridge dissection goes through the details of how to run a simple tool
There's also a set of slides which introduces bridge writing (available in either HTML or PDF) by developing a bridge for grep. The examples used in the slides can be found in /vesta/vestasys.org/examples/bridge_intro.
Before writing any complicated SDL, you should read "Controlling Cache Behavior"
You can find more examples of varying complexity in /vesta/vestasys.org/bridges
All the different bridges are tied together by the SDL code in the standard build environment (aka "std_env")
See SdlHacks for some intersting/useful snippets of SDL code
- If you're used to other popular systems:
CVS: See VestaForCvsUsers and VestaConceptsForCvsUsers
make: See VestaForMakeUsers
- Customize your favorite editor for Vesta:
Administrators
- One of the best ways to get a crash course in Vesta administration is to set up a new installation
The classic "by hand" instructions require that you do a lot of work, but they will also force you to understand more about how the system works.
The install-able RedHat/Debian packages make it a lot easier to set up a new Vesta installation, but you'll also learn less using them
BestPractices provides some guidance on hardware choices and advice for administrators
- Understand the various access controls in the repository and how to use them
The repository man page has an entire section on access controls
The export file controls which hosts and users can access the repository server
The group and alias files allow you to provide information to the repository about non-local users
- There are some utilities for access controls
vid will get information from the repository about a user: what laises they havem what groups they belong to, and what special priviledges they have
vaccessrefresh asks the repository server to re-load its access control information. It will both re-load local users and groups from the operating system and re-read the export, group, and alias files
The permissions on objects within the repository are defined by attributes (which you can view and change with vattrib)
The #owner, #group, and #mode attributes define the owner, group, and user/group/world permissions bits respectively.
The #replicate-from, #mastership-from, and #mastership-to attributes define trust boundaries with other peer repositories. (See RemoteCheckoutSetup for more on these.)
RepositoryRules explains the special rules which apply in the repository filesystem.
- Understand how to purge old build results from the cache
VestaWeed is the normal command for purging some builds and keeping others
QuickWeed is an alternative which keeps everything in the build cache but cleans up any other files from the repository. (This is useful if you ever erase your cache.)
- Understand how different repositories interact with each other through replication and mastership transfer
"Vesta Replication Design" in the vrepl(1) man page gives an overview
RemoteCheckoutSetup describes how to set up two peer repositories to allow remote checkout/checkin
Set up vestaweb the web interface to the Vesta repository
You can either replicate it from pub.vestasys.org or download it from SourceForge
- Understand how the builder distributes work to different hosts
The RunToolServer daemon accepts tools to be run from the evaluator
The evaluator man page describes how platform definitions work and hosts are selected
If you have a large number of client hosts, you will probably want to invest some additional effort in keeping the hosts lists in the configuration file up to date
- Learn how to monitor the various servers
VCacheMonitor can be used to monitor the cache server
Recent pre-releases include a similar tool for the repository server called vreposmonitor
Recent pre-releases include a tool called RunToolProbe for checking on the RunToolServer. Older versions may include a program called RunToolTest which is nearly identical.
- Learn to monitor and optimize the build performance and use of the cache
Make sure your users writing SDL have read "Controlling Cache Behavior"
HowCachingWorks explains some additional details of how the evaluator and cache work together
Use VCacheStats to gather information about what's in your cache and find opportunities for optimization
See UsingVCacheStats for some tips on what all those statistics mean and how to make optimizations based on them
WritingBadSDL gives some tongue-in-cheek anti-advice on build performance
If you or your users are bringing new tools into a Vesta build process, you should know about RepeatabilityLimits