Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should a dependency tree be scoped to a single project ? #888

Open
Hritik14 opened this issue Aug 22, 2023 · 1 comment
Open

Should a dependency tree be scoped to a single project ? #888

Hritik14 opened this issue Aug 22, 2023 · 1 comment

Comments

@Hritik14
Copy link
Contributor

As being discussed in #885, we need to improve the Package and Dependency relationships to support transitive dependencies.

During this, should a dependency tree be specific to a single project being scanned or shared across all the projects.
Say, for example:

purl A
    +------purl B
    +------purl C
                +------purl D

here, whenever and wherever we find purl A, we know - for sure - that the above dependency tree will be present. Same applies for purl C (purl D will always be a dependency) regardless of the project being scanned.

Would it make more sense to have a central dependency relationship mapping as the source of truth for entire SCIO that will be ever-evolving with every scan performed ?

There is one caveat to this approach, let's say purl C changes its dependency from purl D to purl E at some point of time after the scan was run. This breaks the entire hypothesis of having a central dependency mapping source of truth.
Ideally, purls should not change dependencies at points of time but we live in a weird world.

@keshav-space
Copy link
Member

Keeping a shared dependency tree across projects will only work when the transitive dependencies at all levels are pinned, and even then there is good reason for developers to tinker with the transitive dependencies inside their own project. IMO, it would be much more practical to keep the dependency tree at project level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants