magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit

Build from source

Building locally trades away the signed-release guarantee of the install script: you get whatever your checkout and your toolchain produce, verified by nothing.

git clone https://github.com/egladman/magus
cd magus
GOEXPERIMENT=jsonv2 go run -trimpath ./cmd/magus run go-build --no-cache .

That one command compiles magus and has it run its own go-build target, which regenerates the embedded spells and links a stamped ./magus. --no-cache skips the magus cache, whose key for that target cannot express the embedded spell ordering; Go's build cache stays on, and -trimpath matches the target's own build so packages compile once. GOEXPERIMENT=jsonv2 is on the line because magus refuses to compile without it. Use ./magus from then on.

A distro package that links with go build adds -tags noselfupdate to disable the self-update subcommand.

build-from-sourcego-buildnoselfupdateliblzmalibzstdpackaging
Last updated (b5647a35)
Earlier changes on this page (2)

Full history ↗ · Blame source ↗

Glossary

Target

A named operation (build, test, ...) you invoke with magus run <target>; it may compose a spell's tool-native operations and depend on other targets. See targets.

Spell

A language/runtime adapter (e.g. go, md) that maps generic targets onto a toolchain's real commands. See spells.

Cache

The content-addressed store magus consults before running a target, so unchanged work is skipped. See cache.

Run

One target executing under one magus invocation, such as magus run test web or magus affected ci. A run keeps its captured output behind an output reference. Every magus run is a run whether or not any job asked for it; see Job for how the two relate.

Lease

The grant a holder takes on a job: the write and read paths that job declared, enforced in the checkout that took it with magus job exec. A job is the piece of work; a lease is permission over it.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.