Dependencies between projects are very common. Often a project will produce a library used by another project. When few project dependencies exist, manually adding the products of one project into another is straightforward. However, when dependencies start to get complicated, you need an automated solution.
Dependency relationships are often used to configure build
scheduling. Typically, there are three main approaches: use of a
scheduling method independent of the dependency graph; a pulling
model; and a pushing model:
|
In AnthillPro, dependencies between projects are described at the workflow level. Workflows in dependencies specify the location (in the working directory) of the artifacts used by dependent projects. A workflow may be both a dependency and dependent, but cycles are not allowed. When a workflow uses dependency artifacts, AnthillPro maintains a record of which build life the artifacts came from. This provides instant traceability from the dependent project back to its own source files, as well as those of each of its dependencies. See Configuring Dependencies.
AnthillPro provides an internal artifact store to track
generated artifacts, tie them to build lives, and provide them to
the dependent workflows. This store also makes it easy for a
workflow to specify that it needs an artifact from a dependency that
comes from a specific build life. For instance, this could be a
requirement that the shared library has passed testing. Or an
artifact could be locked down to a specific version. This approach
is common as a project nears release because it helps prevent the
team from making any deleterious changes. See Using Codestation
Projects.
|