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

Dependencies

A package can declare other packages it depends on. Whenever it’s selected for an operation, its dependencies are pulled in automatically.

[packages.nvim]
src = "dotfiles/nvim"
dest = "~/.config/nvim/"
dependencies = ["fonts"]

[packages.fonts]
src = "dotfiles/fonts"
dest = "~/.local/share/fonts/"

Deploying just nvim

dotr deploy --packages nvim

…also deploys fonts, since nvim depends on it. This applies to deploy, update, and diff — anywhere packages are selected.

Skipping dependency resolution

Pass --ignore-dependencies to select only the named (or profile-driven) packages, without pulling in anything they depend on:

dotr deploy --packages nvim --ignore-dependencies

This is currently available on deploy (dotr deploy and dotr packages deploy).

Removing a package with dependents

dotr packages remove (and top-level dotr remove) refuses to remove a package that another package’s dependencies — or a profile’s dependencies — still references, to avoid leaving a dangling reference in config.toml:

Package 'fonts' cannot be removed because it is depended on by profiles: [] and packages: ["nvim"]. Use --force to override.

Pass --force to remove it anyway. See also --remove-orphans, which does the reverse: clean up dependencies that are no longer referenced by anything after a removal.