Refactor Java metadata: use top-level maven metadata & deprecate scope from PomProperties
- Dominant language
- Go
- Stars
- 9.6k
- Forks
- 954
- Avg merge
- 23h 27m
- Merged PRs (30d)
- 48
Description
Today, when scanning a source repository, including resolving packages from Maven `pom.xml`, Syft uses the metadata type `pkg.JavaArchive`, which is not really representative of what was scanned. These could perhaps use `JavaPomProject` as the top-level metadata.
Additionally, the dependency `scope` is being captured in `JavaPomProperties`, which is not the correct spot for this information -- it should be part of the _relationship_, but this is not being tracked as any part of the relationship today.
Contributor guide
Research direction
Start at source-repository scanning and Maven pom.xml resolution, then locate the metadata definitions for JavaArchive, JavaPomProject, and JavaPomProperties. Determine how dependency relationships are represented and define completion as using top-level Maven metadata while moving scope out of PomProperties into the relationship model.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, java
- Domain
- cli, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100