Spices is a universal dependency resolver: declare packages once in
.spices.yml and install them with the matching native or language
package manager on the host.
Current version: 0.0.3
Spices reads a validated .spices.yml``_ file and installs the declared
dependencies using the package manager that matches the host Linux
distribution (apt, yum/dnf, apk, pacman, portage) or a language manager
(pip, npm, yarn, bundler). You can also declare third-party repositories,
GPG keys, post-install scripts, and a free-form ``custom manager.
For more information, please read the full documentation.
- One config file — declare OS and language deps in
.spices.yml. - Distro-aware — detects debian, alpine, arch, centos, fedora, and gentoo.
- Language managers — pip, npm, yarn, and bundler alongside native apt/yum/apk/pacman/portage.
- Repos and keys — optional third-party repos and GPG keys per manager.
- Custom scripts — run arbitrary install steps via the
custommanager. - Schema validation — Yamale schema under
spices/config/schema.yml.
Clone the repository and use the Docker-backed Makefile targets:
$ git clone https://github.com/LuisAlejandro/spices.git $ cd spices $ make image $ make console
Run quality checks inside the container (run pip install -e . first if the
dev image was rebuilt):
$ make format $ make lint $ make test $ make test-all
When Docker is unavailable, create a local virtualenv (dev deps + editable install) and run tox directly:
$ make virtualenv $ ./virtualenv/bin/tox -e format $ ./virtualenv/bin/tox -e lint $ ./virtualenv/bin/tox -e coverage
Lint uses Ruff, pydocstyle, bandit, and Pyright from
pyproject.toml.
The spices program is written in python and hosted on PyPI.
Therefore, you can use pip to install the stable version:
$ pip install --upgrade spices
If you want to install the development version (not recommended), you can install directly from GitHub like this:
$ pip install --upgrade https://github.com/LuisAlejandro/spices/archive/master.tar.gz
Create a .spices.yml in your project, then:
$ spices install $ spices install -c path/to/.spices.yml
See .spices.yml in this repo and example_with_repos.yml for examples.
Legacy command docs in USAGE.rst may be outdated relative to the current CLI.
If you have any doubts or problems, subscribe to our Discord server and ask for help. You can also
ask your question on StackOverflow (tag it spices) or drop me an email at luis@collagelabs.org.
See CONTRIBUTING for details.
See HISTORY for details.
Copyright 2016-2022, Spices Developers (read AUTHORS for a full list of copyright holders).
Released under a GPL-3 License.
Web luisalejandro.org · GitHub @LuisAlejandro · Twitter @LuisAlejandro