Repositories
Repositories provide reusable recipes and layers, facilitating straightforward sharing within the Rugix community. Instead of operating its own distribution infrastructure, an external Git repository or local directory within the project directory can be used as a repository. The builtin core
repository is always implicitly available. Additional repositories can be included via the repositories
section in the project configuration. For instance, the quick-start templates may include the rugix-extra
repository with:
[repositories]
rugix-extra = { git = "https://github.com/silitics/rugix-extra.git", branch = "v0.8" }
The recipes and layers provided by a repository can then be used by prefixing their name with the name given to the repository. For instance, the zsh
recipe from the rugix-extra
repository can be referenced with rugix-extra/zsh
. Note that this name is determined by the key in the repositories
section and can be freely chosen. Local directories can be included by specifying a path
instead of git
.
Note that the path must be relative to and contained in the project directory.
When using Git repositories, additionally rev
, branch
, and tag
properties are supported to specify the Git revision, branch, or tag to use. Among other things, this enables semantic versioning of recipes and layers.
Repository Structure
To be used as a repository, a Git repository or local directory must include a repository configuration file rugix-repository.toml
, providing a name
and a description
for the repository. Here is an example from rugix-extra
:
name = "rugix-extra"
description = "Additional recipes and layers for Rugix Bakery."
The structure of the repository follows the structure of projects, i.e., there are typically two directories, layers
and recipes
, containing layer configurations and recipes, respectively. Check out the rugix-extra
repository as an example.
For reference, here is the complete schema for repository configuration files:
You will find the most recent version of this schema on GitHub.