Skip to content

Dependency graph resolution #425

@carolynvs

Description

@carolynvs

Let's define how the runtime should resolve the dependency graph for a bundle. There are a few types of dependencies that impact the graph:

  • hard coded dependencies
  • dependencies where the user supplies the name of the bundle to use. The runtime will install that dependency
  • dependencies where the user supplies an existing installation to use. The runtime will not install that dependency but may need to retrieve its outputs to pass to other dependencies of the parent bundle (see the second example in Pass credentials and parameters to a dependency #424).

Let's define how tools should resolve a graph of bundle dependencies so that the resolution is consistent and well-defined between tools.

  • It is a directed acyclic graph
  • The dependency graph should resolve the bundles/installations that will be used before executing anything.
  • When a node in the graph is a bundle that needs to be executed, that node must include how the parameters and credentials of that bundle will be satisfied. i.e. it should know that the wordpress connection string parameter will be sourced from the output of the mysql bundle.
  • A graph can be of any depth (unless it reduces complexity to say otherwise I would like this in there)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions