Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

A New Rust Project

A collection’s bundle sets a whole repository up at once. This page takes atxp’s rust bundle, a collection of profiles provided by Atomix Labs: a Cargo workspace with its first crate, the pinned toolchain, formatting and lints, dependency policy, tests, the changelog, CI and the weekly bump. Any other collection’s bundle is taken the same way.

Apply the Bundle

In an empty directory, or a new repository’s top level:

mkdir hello && cd hello && git init
devset add atxp/rust --git https://github.com/atomix-labs/atxp --tag v0.20.0 --var repository=you/hello

add starts the target, names the source atxp, pins its tag, and applies the bundle and every profile it requires, each a layer of its own. Each variable the profiles declare takes its default, and devset names them all in one note; --var name=value answers one otherwise, now or later. A variable with no default, as repository is, is asked for in a terminal, and with --no-input, the form for a script, it is an error naming the flag to pass.

See What It Wrote

devset status            # every file, and whether it matches its profile
devset explain rust      # the bundle's features, and which are off
devset explain Cargo.toml

explain of a file names each layer with a part of it, the part and the policy. What the repository lacked, a profile wrote once, as a scaffold: the workspace and its first crate, the changelog, the justfile’s start. Those are the repository’s from now on; the rest stays in step with the profiles.

Set up and Check

The profiles pin their tools with mise and hang their checks from just. setup.sh, which the bundle writes, installs mise at its pinned version, checked against the release’s checksum, then every tool the lock pins, then runs just setup; run again, it keeps what is in place:

./setup.sh
just check

just check runs every check the profiles define, as CI runs them, and names each that fails. just --list shows every recipe: fix, test, bump and the rest.

Turn on More

The bundle’s features add what a project may want, none on by default:

devset add atxp/rust --features docs,publish

devset explain rust lists them. A feature turned off later takes its files with it, unless the repository has edited them. And any profile of the collection is a layer of its own: devset add atxp/vhs records a demo for the README.

Commit

Commit everything, .devset/ included: it records what devset wrote, so a teammate, or CI, sees the same state. From here, In CI makes drift fail a build, and Update and Resolve Conflicts takes the collection’s next release.