Skip to main content
Documentation
Preview
You're viewing the Next docs — a rolling preview of in-development changes. The current release docs may differ.

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/rugix/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.

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:

RepositoryConfig object

Repository configuration.

name string
description string
repositories object
SourceConfig SourceConfig

Repository source.

option 1 object
git string required
tag string
branch string
rev string
dir string
option 2 object
path string required

You will find the most recent version of this schema on GitHub.