-
-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Example:
builddeps:
- asciidoc: { docdep: true }
- doxygen: { docdep: true }
- git: { auxdep: true } # some build systems use git to embed a git ref in their version
- python-pytest: { checkdep: true }
- python-sphinx: { docdep: true }
The idea is that we have the concept of Auxiliary Dependencies or auxdeps
for short, which are dependencies that should not be considered when resolving rebuild chains.
docdep
and checkdep
are variants of auxdep
that are there to give context for human maintainers and for purposes of increased insights. This is based on the Liskov substitution principle so checkep IS-A auxdep and docdep IS-A auxdep.
For instance, if python-pytest is updated, we can trivially check that this change will affect M recipes across the tree that have python-pytest marked as checkdep.
The benefit to Serpent is that this should make it simple to avoid cycles when generating dependency-based rebuild orders for the local workflow when scaling out the tree and (re)building stacks.
This also has implications for the introduction of boulder -b
buildrel support.
cc @GZGavinZhao for autobuild
support.