Skip to main content
Version: 0.4.0

Concepts

Caching

Targets are stored in a local cache on your machine. This allows you to switch branches, do reviews as you like and jump right back to the work you are up to. A checksum calculated over all inputs and the task description itself allows to load artifacts from the cache instead of doing a rebuild. With the upcoming remote caching capabilities, you can do real magic to the build time of your CI pipeline.

Bob on Top

Bobs intend is to be used as a build system on top of your language specific buildsystems. While the language build systems take care of aranging bit's and bytes bob can be seen to operate on subsystems like code-generation, building or packaging bringing everything together.

No Language Specific Plugins

Build systems like bazel or pants have their own distinctive Plugin api to allow language or tool maintainer to write glue code to work with their build system. This allows them to reach full hermetic builds at the cost of hard to learn and adopt build systems. It also forces plugin system maintainers to keep their language specific plugin up to date. Bob takes a more pragmatic approach by not requiring full language integration, instead bob offers a fully integrated shell with the ability to provide input and output (targets) information for each build task. Take a look at gazelle, which is a preprocessing step for bazel to understand the Golang build process down to the last file. We think that level of detail is just not needed for most cases.

Hermetic-Shell

Wait for it ...