Projects
A Rugix Bakery project is a directory containing the following files and directories:
run-bakery: Shell script for running Rugix Bakery pinned to a major version.rugix-bakery.toml: Project configuration file.layers: Directory containing project-specific layer configurations (optional).recipes: Directory containing project-specific recipes (optional).tests: Directory containing system tests (optional).
We also refer to the directory containing all these files and directories as the project directory.
Note that you must always run ./run-bakery directly in the project directory.
Project Configuration
Each project is configured in a rugix-bakery.toml configuration file.
Such a file typically has two sections, repositories and systems.
We explain those sections in further detail in dedicated sections of this documentation.
To give you an idea how a configuration file may look like, here is an example:
#:schema https://raw.githubusercontent.com/rugix/rugix/refs/tags/v0.8.0/schemas/rugix-bakery-project.schema.json
[repositories]
rugix-extra = { git = "https://github.com/rugix/rugix-extra.git", branch = "v0.9" }
[systems.customized-arm64]
layer = "customized"
architecture = "arm64"The #:schema directive is used to specify a JSON Schema for the TOML file. Rugix Bakery comes with JSON Schemas for all its configuration files, enabling straightforward validation and autocompletion in modern IDEs.
For reference, here is the complete schema for project configuration files:
ProjectConfigobject
Project configuration.
Properties
repositoriesobject
Additional properties
SourceConfigSourceConfig
Repository source.
Any of
option 1object
Properties
gitstringrequired
tagstring
branchstring
revstring
dirstring
option 2object
Properties
pathstringrequired
systemsobject
Additional properties
SystemConfigSystemConfig
Properties
layerstringrequired
architectureArchitecturerequired
Architecture.
amd64arm64armv7armhfarm
targetTarget
Target.
generic-grub-efirpi-trybootrpi-ubootunknown
imageSystemImageConfig
Properties
sizeNumBytes
Number of bytes.
layoutImageLayout
Layout of an image.
Properties
typePartitionTableType
Partition table type.
mbrgpt
partitionsarray<ImagePartition>
Items
ImagePartitionImagePartition
Partition of an image.
Properties
sizeNumBytes
Number of bytes.
filesystemFilesystem
Filesystem.
One of
option 1object
Properties
typeconst "ext4"required
ext4
additional-optionsarray<string>
Items
valuestring
clamp-mtimeTimestamp
Timestamp.
option 2object
Properties
typeconst "fat32"required
fat32
option 3object
Properties
typeconst "squashfs"required
squashfs
no-compressionboolean
rootstring
typePartitionType
Partition type.
optionsSystemOptions
Properties
use-squashfsSquashfsOptions
Properties
no-compressionboolean
You will find the most recent version of this schema on GitHub.