-
-
Notifications
You must be signed in to change notification settings - Fork 10.1k
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
SBOM improvements #17254
SBOM improvements #17254
Conversation
I'm not sure how useful the SBOM writing on install is since it's supposed to be a record of the build. |
@SMillerDev My thinking is: it still records the build but this avoids the need to backfill this information into all bottles and also gets it when building from source. |
1db103d
to
e6e344b
Compare
One thing I noticed (that might be worth checking here) is that the build time is always a |
Depending on |
@Bo98 It's not doing that unless you've set |
Yes, |
@Bo98 In this case it doesn't matter because the On reflection: I'm all for trying to avoid breaking based on actual usage rather than documentation but |
Happy to add this on with a ✅ now and I'll add it in tomorrow. |
This + #17255 will lead to warning noise in some of our CI. Example: https://github.com/Homebrew/brew/blob/master/.github/workflows/actionlint.yml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haven't combed through the code but overall idea looks great. Thanks for this ❤️
I've adjusted this to avoid printing any warnings when the gem is missing and instead lean in on the
Did this (but with Tab instead of bottle manifest) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The relocating of functions is making the diff a bit hard to read, but generally this looks good
}, | ||
], | ||
externalRefs: [ | ||
{ | ||
referenceCategory: "PACKAGE-MANAGER", | ||
referenceLocator: "pkg:brew/#{dependency["full_name"]}@#{dependency["version"]}", | ||
referenceLocator: "pkg:brew/#{dependency["full_name"]}@#{dependency["pkg_version"]}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thing I see now in testing that I didn't consider before, we might need to URL encode the full name since it can contain @
too. @woodruffw you know the purl spec better. Is pkg:brew/homebrew/core/[email protected]@3.12.3
allowed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SMillerDev merged this to get the fixes in but: I'll open up a follow-up PR to address this once @woodruffw confirms 👍🏻
- write a schema when installing formulae (if not already present) - cache the schema on disk rather than downloading it every time - make more methods/attributes `private` - allow validation to be optional, only enable for Homebrew developers at installation time - use the tab for more, correct information - ensure that dependencies/bottles are written correctly - use new SBOM 3 schema URL - improve test coverage
private