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.
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
auxdepsfor short, which are dependencies that should not be considered when resolving rebuild chains.docdepandcheckdepare variants ofauxdepthat 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 -bbuildrel support.cc @GZGavinZhao for
autobuildsupport.