Artifact Dependency Graph

The Artifact Dependency Graph (ADG) of an artifact is the recursive DAG (Directed Acyclic Graph) of all the input artifacts that are transformed by a build tool into that artifact. It includes the direct input artifacts, and the recursive set of artifacts to each input artifact, all the way down to source code.

C Examples

Simple C Executable

.c
.o
.h
.h
.c
.o
.h
.h
executable

Running C Executable with Shared Object

.c
.o
.h
.h
.c
.o
.h
.h
executable
.c
.o
.h
.h
.c
.o
.h
.h
.so
running executable

Java Example

.java
.class
.java
.class
.java
.class
.java
.class
.java
.class
running executable

Go Example

.go
.o
.go
.o
.go
.o
.go
.o
.go
.o
executable

Python Example

.py
.pyc
.py
.pyc
.py
.pyc
.py
.pyc
.py
.pyc
running executable

Artifact Dependency Graph singularity

An artifact should have precisely one Artifact Dependency Graph. All equivalent artifacts should have the same Artifact Dependency Graph.

  • Find out how GitBOM represents Artifact Dependency.