Skip to content

moss-format: Support Auxiliary Dependency annotations #206

@ermo

Description

@ermo

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions