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

Capture file ownership relationships from portage ecosystem #1702

Merged
merged 4 commits into from
Apr 3, 2023

Conversation

wagoodman
Copy link
Contributor

@wagoodman wagoodman commented Mar 29, 2023

This PR tries to close the gap in terms of existing catalogers that already catalog paths to owned files and the generation of package-to-file relationships .

I also found:

  • the gem ecosystem could not be added, so more comments were added denoting why
  • The Files attribute for the NPMPackageJSONMetadata was not being used (and the Description was not being wired up). this requires a schema update (addition)

Question: if there is a breaking schema change, why is this not accounted for in the new schema version (we're bumping from v7.0.1 to v7.1.0 instead of v8.0.0). Answer: this field was never populated, thus, no consumer could have been relying on data from syft in this attribute. This is pragmatically non-breaking.

@github-actions
Copy link

github-actions bot commented Mar 29, 2023

Benchmark Test Results

Benchmark results from the latest changes vs base branch
goos: linux
goarch: amd64
pkg: github.com/anchore/syft/test/integration
cpu: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
                                                          │ ./.tmp/benchmark-751bf38.txt │
                                                          │            sec/op            │
ImagePackageCatalogers/alpmdb-cataloger-2                                   12.06m ±  3%
ImagePackageCatalogers/ruby-gemspec-cataloger-2                             867.0µ ± 19%
ImagePackageCatalogers/python-package-cataloger-2                           3.088m ±  6%
ImagePackageCatalogers/php-composer-installed-cataloger-2                   733.4µ ±  4%
ImagePackageCatalogers/javascript-package-cataloger-2                       373.8µ ±  2%
ImagePackageCatalogers/dpkgdb-cataloger-2                                   528.3µ ±  1%
ImagePackageCatalogers/rpm-db-cataloger-2                                   505.7µ ±  4%
ImagePackageCatalogers/java-cataloger-2                                     11.37m ±  1%
ImagePackageCatalogers/graalvm-native-image-cataloger-2                     8.428µ ±  3%
ImagePackageCatalogers/apkdb-cataloger-2                                    567.6µ ±  1%
ImagePackageCatalogers/go-module-binary-cataloger-2                         19.10µ ±  2%
ImagePackageCatalogers/dotnet-deps-cataloger-2                              983.1µ ±  1%
ImagePackageCatalogers/portage-cataloger-2                                  344.1µ ±  1%
ImagePackageCatalogers/sbom-cataloger-2                                     105.3µ ±  0%
ImagePackageCatalogers/binary-cataloger-2                                   185.7µ ±  1%
geomean                                                                     479.5µ

                                                          │ ./.tmp/benchmark-751bf38.txt │
                                                          │             B/op             │
ImagePackageCatalogers/alpmdb-cataloger-2                                   5.063Mi ± 0%
ImagePackageCatalogers/ruby-gemspec-cataloger-2                             123.8Ki ± 0%
ImagePackageCatalogers/python-package-cataloger-2                           946.5Ki ± 0%
ImagePackageCatalogers/php-composer-installed-cataloger-2                   155.8Ki ± 0%
ImagePackageCatalogers/javascript-package-cataloger-2                       90.57Ki ± 0%
ImagePackageCatalogers/dpkgdb-cataloger-2                                   144.8Ki ± 0%
ImagePackageCatalogers/rpm-db-cataloger-2                                   170.1Ki ± 0%
ImagePackageCatalogers/java-cataloger-2                                     2.723Mi ± 0%
ImagePackageCatalogers/graalvm-native-image-cataloger-2                     1.555Ki ± 0%
ImagePackageCatalogers/apkdb-cataloger-2                                    129.2Ki ± 0%
ImagePackageCatalogers/go-module-binary-cataloger-2                         3.133Ki ± 0%
ImagePackageCatalogers/dotnet-deps-cataloger-2                              314.6Ki ± 0%
ImagePackageCatalogers/portage-cataloger-2                                  77.19Ki ± 0%
ImagePackageCatalogers/sbom-cataloger-2                                     13.07Ki ± 0%
ImagePackageCatalogers/binary-cataloger-2                                   29.03Ki ± 0%
geomean                                                                     108.5Ki

                                                          │ ./.tmp/benchmark-751bf38.txt │
                                                          │          allocs/op           │
ImagePackageCatalogers/alpmdb-cataloger-2                                    86.71k ± 0%
ImagePackageCatalogers/ruby-gemspec-cataloger-2                              2.049k ± 0%
ImagePackageCatalogers/python-package-cataloger-2                            15.48k ± 0%
ImagePackageCatalogers/php-composer-installed-cataloger-2                    3.458k ± 0%
ImagePackageCatalogers/javascript-package-cataloger-2                        1.205k ± 0%
ImagePackageCatalogers/dpkgdb-cataloger-2                                    2.646k ± 0%
ImagePackageCatalogers/rpm-db-cataloger-2                                    3.759k ± 0%
ImagePackageCatalogers/java-cataloger-2                                      38.26k ± 0%
ImagePackageCatalogers/graalvm-native-image-cataloger-2                       40.00 ± 0%
ImagePackageCatalogers/apkdb-cataloger-2                                     3.438k ± 0%
ImagePackageCatalogers/go-module-binary-cataloger-2                           101.0 ± 0%
ImagePackageCatalogers/dotnet-deps-cataloger-2                               5.011k ± 0%
ImagePackageCatalogers/portage-cataloger-2                                   1.539k ± 0%
ImagePackageCatalogers/sbom-cataloger-2                                       392.0 ± 0%
ImagePackageCatalogers/binary-cataloger-2                                     872.0 ± 0%
geomean                                                                      2.223k

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
@wagoodman
Copy link
Contributor Author

wagoodman commented Apr 3, 2023

# $ diff schema/json/schema-7.0.1.json schema/json/schema-7.1.0.json
857,862d856
<         "files": {
<           "items": {
<             "type": "string"
<           },
<           "type": "array"
<         },

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
@wagoodman wagoodman marked this pull request as ready for review April 3, 2023 13:33
@wagoodman wagoodman added the enhancement New feature or request label Apr 3, 2023
@wagoodman wagoodman merged commit 681d250 into main Apr 3, 2023
@wagoodman wagoodman deleted the add-more-owned-file-pkgs branch April 3, 2023 13:46
GijsCalis pushed a commit to GijsCalis/syft that referenced this pull request Feb 19, 2024
…1702)

* add portage as file owners

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* fix tests

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* fix linting

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* update json schema with NPM files

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

---------

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants