Skip to content

Port dotnet cataloger to new generic cataloger pattern#1286

Merged
wagoodman merged 1 commit intomainfrom
update-dotnet-generic-cataloger
Oct 24, 2022
Merged

Port dotnet cataloger to new generic cataloger pattern#1286
wagoodman merged 1 commit intomainfrom
update-dotnet-generic-cataloger

Conversation

@wagoodman
Copy link
Copy Markdown
Contributor

Follow up to #1281 , porting the APK cataloger to the new generic.Cataloger

This additionally brings in a new internal/pkgtest helper functions to aid in making tests easier to make (if you're using the generic cataloger). I was finding I was making the exact same changes to tests everywhere, and the code was very boilerplate... thus a helper test function makes sense here. I also found that the comparison function I was using wasn't considering all fields of the elements under test, which means there may be issues that are not raised during testing.

If accepted, I'll head back to the catalogers I just updated and move the pattern forward there as well.

@wagoodman wagoodman requested a review from a team October 24, 2022 20:48
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
@wagoodman wagoodman force-pushed the update-dotnet-generic-cataloger branch from a21e5ba to ca54e1b Compare October 24, 2022 20:52
@github-actions
Copy link
Copy Markdown

Benchmark Test Results

Benchmark results from the latest changes vs base branch
name                                                       old time/op    new time/op    delta
ImagePackageCatalogers/alpmdb-cataloger-2                    12.8ms ± 4%    11.5ms ± 1%  -10.06%  (p=0.016 n=5+4)
ImagePackageCatalogers/ruby-gemspec-cataloger-2              1.56ms ±14%    1.30ms ± 1%  -16.72%  (p=0.008 n=5+5)
ImagePackageCatalogers/python-package-cataloger-2            3.61ms ± 3%    3.25ms ± 1%   -9.88%  (p=0.008 n=5+5)
ImagePackageCatalogers/php-composer-installed-cataloger-2    1.19ms ± 2%    1.06ms ± 1%  -11.27%  (p=0.008 n=5+5)
ImagePackageCatalogers/javascript-package-cataloger-2         836µs ± 2%     739µs ± 0%  -11.58%  (p=0.008 n=5+5)
ImagePackageCatalogers/dpkgdb-cataloger-2                     990µs ± 2%     872µs ± 0%  -11.93%  (p=0.008 n=5+5)
ImagePackageCatalogers/rpm-db-cataloger-2                    1.46ms ±10%    1.26ms ± 0%  -14.05%  (p=0.008 n=5+5)
ImagePackageCatalogers/java-cataloger-2                      16.8ms ± 1%    14.3ms ± 0%  -15.10%  (p=0.008 n=5+5)
ImagePackageCatalogers/apkdb-cataloger-2                     1.48ms ± 4%    1.23ms ± 2%  -17.20%  (p=0.008 n=5+5)
ImagePackageCatalogers/go-module-binary-cataloger-2          2.48µs ±12%    2.19µs ± 2%  -11.53%  (p=0.008 n=5+5)
ImagePackageCatalogers/dotnet-deps-cataloger-2               1.68ms ± 5%    1.36ms ± 1%  -18.92%  (p=0.008 n=5+5)
ImagePackageCatalogers/portage-cataloger-2                    859µs ± 1%     700µs ± 1%  -18.57%  (p=0.008 n=5+5)

name                                                       old alloc/op   new alloc/op   delta
ImagePackageCatalogers/alpmdb-cataloger-2                    5.26MB ± 0%    5.26MB ± 0%     ~     (p=0.690 n=5+5)
ImagePackageCatalogers/ruby-gemspec-cataloger-2               202kB ± 0%     202kB ± 0%     ~     (p=1.000 n=5+5)
ImagePackageCatalogers/python-package-cataloger-2             944kB ± 0%     944kB ± 0%     ~     (p=0.841 n=5+5)
ImagePackageCatalogers/php-composer-installed-cataloger-2     213kB ± 0%     213kB ± 0%     ~     (p=0.690 n=5+5)
ImagePackageCatalogers/javascript-package-cataloger-2         158kB ± 0%     158kB ± 0%     ~     (p=1.000 n=5+5)
ImagePackageCatalogers/dpkgdb-cataloger-2                     203kB ± 0%     203kB ± 0%     ~     (p=0.222 n=5+5)
ImagePackageCatalogers/rpm-db-cataloger-2                     301kB ± 0%     302kB ± 0%   +0.17%  (p=0.008 n=5+5)
ImagePackageCatalogers/java-cataloger-2                      3.44MB ± 0%    3.44MB ± 0%     ~     (p=1.000 n=5+5)
ImagePackageCatalogers/apkdb-cataloger-2                     1.25MB ± 0%    1.25MB ± 0%     ~     (p=0.151 n=5+5)
ImagePackageCatalogers/go-module-binary-cataloger-2            672B ± 0%      672B ± 0%     ~     (all equal)
ImagePackageCatalogers/dotnet-deps-cataloger-2                368kB ± 0%     376kB ± 0%   +2.31%  (p=0.008 n=5+5)
ImagePackageCatalogers/portage-cataloger-2                    136kB ± 0%     136kB ± 0%     ~     (p=0.524 n=5+5)

name                                                       old allocs/op  new allocs/op  delta
ImagePackageCatalogers/alpmdb-cataloger-2                     85.7k ± 0%     85.7k ± 0%     ~     (p=1.000 n=5+5)
ImagePackageCatalogers/ruby-gemspec-cataloger-2               4.24k ± 0%     4.23k ± 0%     ~     (p=0.095 n=4+5)
ImagePackageCatalogers/python-package-cataloger-2             16.5k ± 0%     16.5k ± 0%     ~     (p=0.198 n=5+5)
ImagePackageCatalogers/php-composer-installed-cataloger-2     5.50k ± 0%     5.50k ± 0%     ~     (p=0.159 n=5+5)
ImagePackageCatalogers/javascript-package-cataloger-2         3.31k ± 0%     3.31k ± 0%     ~     (p=1.000 n=5+5)
ImagePackageCatalogers/dpkgdb-cataloger-2                     4.57k ± 0%     4.57k ± 0%     ~     (all equal)
ImagePackageCatalogers/rpm-db-cataloger-2                     8.11k ± 0%     8.11k ± 0%     ~     (all equal)
ImagePackageCatalogers/java-cataloger-2                       57.5k ± 0%     57.5k ± 0%     ~     (p=0.341 n=5+5)
ImagePackageCatalogers/apkdb-cataloger-2                      5.39k ± 0%     5.39k ± 0%     ~     (p=0.238 n=5+4)
ImagePackageCatalogers/go-module-binary-cataloger-2            15.0 ± 0%      15.0 ± 0%     ~     (all equal)
ImagePackageCatalogers/dotnet-deps-cataloger-2                7.15k ± 0%     7.32k ± 0%   +2.41%  (p=0.008 n=5+5)
ImagePackageCatalogers/portage-cataloger-2                    3.58k ± 0%     3.58k ± 0%     ~     (all equal)

@wagoodman wagoodman enabled auto-merge (squash) October 24, 2022 21:10
@wagoodman wagoodman merged commit c7a6530 into main Oct 24, 2022
@wagoodman wagoodman deleted the update-dotnet-generic-cataloger branch October 24, 2022 21:17
GijsCalis pushed a commit to GijsCalis/syft that referenced this pull request Feb 19, 2024
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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants