Autobuild/Lexicon

From Second Life Wiki
Jump to navigation Jump to search

Project Lexicon

This document intends to define our team jargon, so we can agree to communicate using key phrases and words. This is not a supplement for design documentation, only a resource to help define key phrases and words we use to communicate ABOUT our designs.

Autobuild

Autobuild is the name of the tool we are building. It will be, at least initially, a command line tool. It will be usuable by devs and scripts to ease building and maintaining projects from multiple modular sources.

Package

Metadata that describes the dependencies, artifacts and supported configuration info for a build. The sharing the metadata allows dependent builds to use the artifacts. The metadata should also describe how to start with a source version and produce expected artifacts from a build.

Artifact

One or more files from a package that can be dependencies of another build. Some artifacts are the output of the build of a package, like a static library, dll or an executable. Some artifacts can be source for a package that needs to be redistributed, like header files that define symbols in a build.

Build-time Dependency

A file needed by a build for successful completion. Some artifacts, like header files, are build time dependencies.

Run-time Dependency

A file needed by a build to execute its output. Some artifacts, like dlls, are run time dependencies and will need to be redistributed with the output of a dependent build. Artifacts can be both run-time and build-time dependencies. Its up to the dependent build to determine.

Archive

A file containing a set of artifacts used to store and transport dependencies from source builds to dependent builds.

Version

A unique and reproducible set of source data for a package.

Configuration

A superset of all paramters affecting a build of a given version. The package will need to describe which artifacts are specific to which configurations for downstream builds. config info: Platform, Compiler, Build Variant, CPU architecture.

Build Configuration

A named configuration variant specifically for configuring or building package source. In particular a build configuration selects sets of options to pass to the configuration and compiler executables.

Package Repository

A database containing info about available packages and the URLs for finding their versions and artifacts.

Source Repository

A location containing the source for a project. The source repository format is not specified, it could be an hg repository or a tarball, etc.

Working Copy

The location where a source is being built. A developer will create a local working copy of source and a package to do development. The artifacts for the working copies dependencies will be copied into the working copies build folder.

Working Platform

The platform under which the autobuild tool is invoked, e.g. 'darwin' when running an autobuild tool on a Mac running OS X.