Skip to content

Getting started with minimal

Welcome! Follow the steps below to setup Minimal in one of your repositories.

Install minimal

Using our install script

shell
curl --proto '=https' --tlsv1.2 -sSf https://storage.googleapis.com/minimal-shim/install.sh | sh

From source using Cargo

shell
git clone https://github.com/gominimal/minimal && cd minimal
# install deps
sudo apt-get install build-essential openssl pkg-config \
             libssl-dev git protobuf-compiler
# Build minimal
cargo build --release # Output in `target/release/minimal`

Create an initial minimal.toml

Create the below minimal.toml file in the root of your repository.

toml
[upstream] # The software supply chain
repo = "https://github.com/gominimal/pkgs"
branch = "main"

[harness] # Wires Minimal to build a pnpm project
use = "pnpm"
toml
[upstream] # The software supply chain
repo = "https://github.com/gominimal/pkgs"
branch = "main"

[harness] # Wires Minimal to build a go binary
use = "go"
toml
[upstream] # The software supply chain
repo = "https://github.com/gominimal/pkgs"
branch = "main"

[harness] # Wires Minimal to build a rust workspace
use = "rust"

Run minimal update

Run minimal update to fetch the necessary tools and packages from the minimal public registry.

shell
$ minimal update
Upstream https://github.com/gominimal/pkgs:main updated from <unpinned> to 9d36aa3d0fec09658fe3bbc676beeae49a89c53d
$

Build your code

At this stage, minimal is fully configured to consistently & reproducibly build your code. You can check in the minimal.toml file, and building is as simple as:

shell
$ minimal build