Chiri (Japanese for the country "Chile") is a meta-build system, that is designed as a scaffold over existing build systems. It is modeled very loosely after Brazil which is used internally at Amazon.
This is mostly a personal pet project and personal workflow tool. I don't plan to expand its feature set to dependency modeling.
Chiri is a CLI that is invoked via a package-agnostic interface
(e.g. build, test, release, install) to invoke the underlying build
system for that package (e.g. CMake). A Chiri-compatible package contains
two things:
build_tools/bin: A directory housing an executable script that invokes the underlying build system. By convention, it is written in Python but does not need to be.chiri_config.json5: A JSON5 config pointing to the executable script mentioned above as an entry point, as well as other config variables.
- Python 3.8
- pyjson5
The CLI must be bootstrapped as a first install.
cd chiri
./bootstrap.shInstallation is located by default at ~/.chiri. The path to the Chiri CLI
must be added to your PATH (ZShell as an example below):
echo 'export PATH="${PATH}:~/.chiri/bin"' >> ~/.zshrcAfterwards, it can be installed via the CLI itself.
cd chiri
chiri pkg releaseThe Chiri CLI's command package (or pkg) reads the working directory's
Chiri config and invokes its executable build entry point.
This uses mamba as an example:
cd mamba
chiri pkg build
chiri pkg test