Skip to content

About

Reproducible developer environments, declared in one config.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Compendium

Reproducible developer environments, declared in one config. Pin the toolchains and tools your project needs in compendium.toml, and every developer gets the same versions on every machine.

Think nvm + pyenv + rustup unified under one declarative config.

Install

curl -fsSL https://compendium.ilean.me/install.sh | sh

Installs to ~/.local/bin/compendium. No sudo required.

For pinning a specific version, choosing a custom install location, or building from source, see the installation guide.

Quick example

Add a compendium.toml to your project:

[compendium]
name = "my-project"
version = "0.1.0"
min_compendium = "0.1.0"

[registry]
source = "public"

[languages]
go = "1.26.1"

[tools]
golangci-lint = "2.11.4"

Then:

compendium install               # download and extract everything
source <(compendium activate)    # add tools to PATH for this shell
go build ./...                   # uses Compendium's pinned Go
golangci-lint run                # uses Compendium's pinned linter
source <(compendium deactivate)  # restore original environment

Same compendium.toml, same versions on every machine.

Build from source

Requires Go 1.26.1 (see go.mod).

git clone https://github.com/ileanmjr88/compendium.git
cd compendium
make build      # produces ./bin/compendium
make test       # runs the test suite
make lint       # runs golangci-lint

Links

License

GPL-3.0-or-later. The source stays open: anyone can use, modify, or redistribute Compendium, but modifications and derivative works must be released under the same license. Running the tool carries no obligations.

Built by Ilean Monterrubio Jr.

About

Reproducible developer environments, declared in one config.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages