[][src]Crate tugger

The tugger crate contains functionality for packaging and distributing software applications.

The core of tugger consists of a set of types for defining packaging actions and functions to operate on them. There is a frontend component which defines a Starlark dialect for allowing these types to be constructed from user-provided configuration files. A command-line interface is also provided to perform common actions.

Data Model

At its core, Tugger is a pipeline execution engine where the primitives composing pipelines are tasks related to packaging and distribution. Tugger can be thought of a domain-specific build system.

Tugger executes primitives call pipelines. Each pipeline is an entity with a name, some attached execution context (e.g. the working directory), and an ordered series of steps to execute. Each step is simply some action that can be executed. Actions include things like produce a tarball or run snapcraft.

Starlark Config Files

Tugger uses Starlark to allow defining pipelines in rich configuration files. These configuration files can be evaluated and their results turned into pipeline execution actions via the tugger command-line tool or by calling appropriate functions in this crate.

Tugger configuration files are named tugger.ship by convention.

See the starlark module for documentation of the Starlark dialect.

Modules

cli
debian
filemanifest
glob
snap
starlark

The starlark module and related sub-modules define the Starlark dialect used to power tugger configuration files and provide mechanisms for evaluating those files.