Skip to content

One row per library, naming the artefacts it sits in - #65

Merged
grafele merged 1 commit into
mainfrom
fix/currency-one-row-per-library
Aug 28, 2026
Merged

One row per library, naming the artefacts it sits in#65
grafele merged 1 commit into
mainfrom
fix/currency-one-row-per-library

Conversation

@grafele

@grafele grafele commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Since #63 a Dockerfile candidate is scanned as the image it produces, so the shipped images carry the application's dependency tree. A library is now found once per image that contains it and once in the lockfile that declares it, and annotate_bom stamps the currency note by purl — so every copy carries it.

Sections 2 and 4 built one row per component, which meant up to three rows for one library and one decision:

@emotion/react  11.14.0  no upstream release in 627 days
@emotion/react  11.14.0  no upstream release in 627 days
@emotion/react  11.14.0  no upstream release in 627 days

The headline tiles counted the same way. One report showed 38 libraries beyond the update limit where there are 19, and 33 stale-or-deprecated where there are 16.

Rows are now collapsed by purl, the artefacts merged and printed under the library name:

@emotion/react                                    11.14.0
in web, web-dockerfiles-Dockerfile.node-final,
web-packages-strapi, web-packages-strapi-Dockerfile-final

The bundle is untouched — CycloneDX carries a component per occurrence, and the artefact assignment is used by the remediation grouping, which already deduplicated correctly.

Column widths rebalanced within the same 170mm. 235 passed, 0 failed.

Since a Dockerfile candidate is scanned as the image it produces, a library is
found once per image that contains it and once in the lockfile that declares
it. The currency note is stamped by purl, so every copy carried it and
sections 2 and 4 listed the same library up to three times — three rows for
one decision, and headline counts to match: one report showed 38 libraries
beyond the update limit where there were 19.

Rows are collapsed by purl and the artefacts merged, printed under the library
name so it stays visible where each one sits. The bundle keeps the copies:
CycloneDX carries a component per occurrence and the artefact assignment is
used elsewhere.

Column widths rebalanced within the same 170mm to fit the artefact list.
@grafele
grafele merged commit 7a77d62 into main Aug 28, 2026
@grafele
grafele deleted the fix/currency-one-row-per-library branch August 28, 2026 15:51
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.

1 participant