Skip to content

Add support for package dependency relationships #572

@wagoodman

Description

@wagoodman

What would you like to be added:
Support tracking the full dependency graph for packages in the form of relationships, for the ecosystems that support extracting this information.

Why is this needed:
An SBOM is useful for at least listing what makes up a software artifact. However, it is more useful to know how a dependency is related to the artifact (is it a direct dependency? or a transitive dependency? is this dependency used by several other packages, or just one?).

Below is a list of each ecosystem that we could implement this for (really it's a list of all of the parsers for all catalogers). It doesn't mean that we should implement this entire list, there are some ecosystems that just don't raise up enough information to make adding relationships useful. This will have to be taken on a case-by-case basis.

These are catalogers that have been deemed not possible / practical to implement raise up relationships for at this time:

  • Python (setup.py): no relationship information
  • Python (requirements.txt): no relationship information
  • Python (Pipfile.lock): no relationship information to the package this is being installed for
  • RPM (rpm file): there is relationship data, but not with potentially other installed packages

Notes:
This assumes that #556 is implemented, allowing for package catalogers to return relationships as first class evidence.

Metadata

Metadata

Assignees

Labels

ecosystem:gorelating to the golang ecosystemecosystem:javarelating to the java ecosystemecosystem:javascriptrelating to the javascript ecosystemecosystem:osrelating to an OS packaging ecosystemecosystem:pythonrelated to the python ecosystemecosystem:rubyrelating to the ruby ecosystemecosystem:rustrelating to the rust ecosystemenhancementNew feature or requestplanninghigh level epic that should be broken into smaller tasks

Type

No type

Projects

Status

Stalled

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions