Repository navigation
fix(sbom): avoid marking editable Python packages as absent - #474
Merged
Merged
Conversation
Treat editable installation records as incomplete payload evidence. Preserve uncertainty across SBOM merges and imports instead of inferring absence from missing hooks, and regenerate artifacts written before that distinction existed. Signed-off-by: Radmir Khurum <radmir.khurum@flant.com>
Signed-off-by: Radmir Khurum <radmir.khurum@flant.com>
Collaborator
Author
Verification
Review focus
Follow-up
|
reyreavman
marked this pull request as ready for review
October 26, 2026 09:16
reyreavman
pushed a commit
that referenced
this pull request
Oct 26, 2026
🤖 I have created a release *beep* *boop* --- ## [3.12.0-dk.3](v3.12.0-dk.2...v3.12.0-dk.3) (2026-10-26) ### Features * **build, stapel:** sign files matched by a glob pattern ([#471](#471)) ([ffda24e](ffda24e)) * **sbom:** inventory installed Python, JavaScript and Lua packages ([#472](#472)) ([7fde219](7fde219)) ### Bug Fixes * **build, stapel, import:** stop imports failing with sbom enabled ([#470](#470)) ([478b751](478b751)) * **sbom:** avoid marking editable Python packages as absent ([#474](#474)) ([e0b4b66](e0b4b66)) * **sbom:** retain legacy Python bytecode after source removal ([#476](#476)) ([36debcb](36debcb)) * **sbom:** stop marking os-pm packages under /lib64 as not shipped ([#475](#475)) ([cd0a029](cd0a029)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Editable Python packages are no longer marked
werf:shipped=falsemerely because an importing image lacks their installation hooks. Previously, an editable donor's RECORD could list only a.pthfile and metadata; importing the actual source without those files then produced a false absence verdict.What
direct_url.jsonreportsdir_info.editable=true; malformed origin metadata, unreadable symlinked origins and RECORD entries naming__editable__*or.egg-linkscaffolding also preserve uncertainty..pthname alone does not classify an install as editable.werf:files=unknownon the component. Copying only metadata or hooks does not become complete evidence of the external source tree.Why
PEP 660 installations intentionally expose source outside site-packages. A RECORD may enumerate every installed hook while omitting the actual source payload, so its file list cannot prove that payload absent. Simply omitting the editable fileset is insufficient: evidence from another copy or imported SBOM of the same package could restore false certainty. Persisting uncertainty follows the existing binary-evidence model and keeps that distinction across merges and caches.