Glossary

Quick reference for Terrabuild terminology and concepts.

TermDefinitionSee Also
ActionA specific operation provided by an extension (e.g., build, test, publish). Actions are invoked as commands within targets.Key Concepts, Extensions
ArtifactBuild outputs that are cached and can be restored in subsequent builds. Specified via project.outputs or target.outputs.Project Block, Target Block
ClusterA group of targets that can be built together in a batch operation for compiler-level optimizations.Key Concepts, Batch Builds
CommandThe invocation of an extension action within a target. Syntax: @extension action { arguments }.Key Concepts, Syntax
DAGDirected Acyclic Graph - the data structure representing the build graph. Nodes are tasks, edges are dependencies.Key Concepts, Graph
DependencyA relationship between projects or targets. Project dependencies indicate build-time requirements; target dependencies control execution order.Key Concepts, Project Block
ExtensionA plugin that provides build capabilities. Identified with @ prefix (e.g., @dotnet, @npm). Can be built-in or custom.Key Concepts, Extension Block
HashA deterministic value computed from project files, dependencies, commands, and variables. Used as cache key.Key Concepts, Caching
InsightsThe backend service for sharing build artifacts across machines and CI/CD pipelines. Provides remote cache capabilities.Workspace Block, Usage
NodeA vertex in the build graph representing a task. Nodes are connected by dependency edges.Key Concepts, Graph
ProjectA buildable unit within a workspace. Each project has a PROJECT file defining its configuration, dependencies, and targets.Key Concepts, Project
TargetA named build goal defined in a PROJECT or WORKSPACE file. Specifies commands to run and dependencies. Examples: build, test, dist.Key Concepts, Target Block
TaskA concrete execution unit in the build graph. Represents “build target X for project Y”. Tasks become nodes in the graph.Key Concepts, Tasks
WorkspaceThe root of your monorepo containing a WORKSPACE file. Defines global configuration for all projects.Key Concepts, Workspace

Common Syntax Patterns

PatternMeaningExample
target.^buildAncestor dependency - all dependency projects’ build targetdepends_on = [ target.^build ]
target.buildCurrent project dependency - current project’s build targetdepends_on = [ target.build ]
~autoRebuild mode: rebuild when changes detected (default)rebuild = ~auto
~alwaysRebuild mode: always rebuild, ignore cacherebuild = ~always
~cascadeRebuild mode: rebuild with parent within clusterrebuild = ~cascade
~noneArtifact cacheability: do not cacheartifacts = ~none
~workspaceArtifact cacheability: cache in workspaceartifacts = ~workspace
~managedArtifact cacheability: cache in Insightsartifacts = ~managed
@extensionExtension identifier (must start with @)@dotnet, @npm, @docker

Related Documentation

Last updated on