The Baserock Definitions format aims to be a universal, declarative vocabulary for software build and integration instructions.

I thought it'd be useful to collect existing build instructions of various forms to help us reason about this better.

See also: https://en.wikipedia.org/wiki/List_of_build_automation_software

Feature comparison of build+integration instructions formats

Name Syntax Complete OS Artifact caching Cross compilation
Apache Ant + Apache Ivy XML Maven repo
Baserock definitions YAML Baserock artifact cache
BitBake recipes BitBake Setscene
BOSH YAML ?
Bazel Bazel (Python-like) ?
Buildroot Make
CMake ExternalProject / CPM / Hunter / biicode CMake ?
Debian key-value (debian/control, debian/copyright, debian/changelog), Make (debian/rules) deb packages
GNOME Continuous JSON ostree repo
GNOME jhbuild XML
GNU Guix GUILE (Scheme) hydra
Gradle Gradle Maven repo
Maven XML Maven repo
Meson Meson
Nix expressions Nix Expression Language Nix Binary Cache
Ports-style Shell
RPM .spec files RPM spec syntax rpm-ostree, rpm packages
upkg XML upkg packages
xdg-app builder JSON ostree repo
ypkg and eopkg XML or YAML eopkg packages

CPython (the standard interpeter for the Python language)