Skip to content

Add separate build dependency concerns in DSL

Ryan Egesdahl requested to merge extract-dependency-concepts into 9.0.19-stable

The dependency specifier in the DSL currently encompasses build, system, and runtime dependencies. (There is a separate runtime_dependency specifier for system packages needed at runtime). However, the fact that these concepts are combined into one specifier means that it's much more difficult to specify a build that deterministically results in a functional installation package. We have seen failures in our pipelines many times where nothing has changed, and yet either the build fails or it succeeds and the installable package fails in some other way.

Here, the build_dependency and system_dependency concepts are extracted into separate specifiers, which should help to make the builds more likely to produce a successful result. We can also use the specifiers to build a useful dependency graph and add linting to catch more failures more quickly in the build process.

Related to omnibus-gitlab#8383

Edited by Ryan Egesdahl

Merge request reports