Enable generate package manifest test - #68
Closed
Vince Perri (vinceaperri) wants to merge 4 commits into
Closed
Conversation
Copilot started reviewing on behalf of
Vince Perri (vinceaperri)
September 1, 2026 22:12
View session
There was a problem hiding this comment.
🔵 Needs a closer look
It changes core image/sysext build outputs and CI enforcement paths, and verifying end-to-end correctness requires pipeline/runtime validation beyond what can be fully confirmed from the diff alone.
Pull request overview
This PR adds generation and validation of SPDX 2.2 package manifests for RPM-based builds, and wires that output into both image/sysext build flows and the PR validation/testing pipeline. The intent is to make package manifests reproducible (timestamp-pinned) and enforce their presence/format via scripted tests.
Changes:
- Add an RPM package-manifest generator (
generate_package_manifest.py) plus golden/fixture-based conformance tests (and an optional deep validator). - Generate and install package manifests into built images and sysexts under
/usr/share/os-manifests, with deterministic timestamps. - Enable PR pipeline and kola enforcement coverage for the new manifest expectations.
File summaries
| File | Description |
|---|---|
| build_sysext | Pins SOURCE_DATE_EPOCH deterministically; generates sysext package manifests in RPM mode when packages are sysext-unique. |
| build_library/rpm/tests/validate_golden_manifest.sh | Adds optional SPDX/NTIA validation script for regenerated golden manifests (not intended for CI). |
| build_library/rpm/tests/testdata/tdnf-installed.txt | Adds test fixture for tdnf list installed format. |
| build_library/rpm/tests/testdata/nevra-packages.txt | Adds test fixture for NEVRA package list format. |
| build_library/rpm/tests/testdata/expected-manifest.spdx.json | Adds golden SPDX 2.2 JSON document used for byte-for-byte conformance testing. |
| build_library/rpm/tests/test_generate_package_manifest.sh | Adds CI-suitable conformance test for deterministic manifest generation and cross-format equivalence. |
| build_library/rpm/tests/requirements.txt | Pins Python validator dependencies for the optional golden-manifest validation script. |
| build_library/rpm/rpm_install.sh | Makes rpm_query_packages fail-safe under set -e by avoiding error-masking pipelines. |
| build_library/rpm/generate_package_manifest.py | Introduces the SPDX 2.2 manifest generator (packages → purl externalRefs, deterministic namespace UUID). |
| build_library/rpm/build_image_util.sh | Adds finish_image_package_manifest_rpm to write the final image package list + manifest from the final rpmdb. |
| build_library/reports_util.sh | Adds write_package_manifest helper and standardizes manifest output directory /usr/share/os-manifests. |
| build_library/prod_image_util.sh | Skips Portage-only package list writing in RPM mode (now handled by RPM manifest path). |
| build_library/build_image_util.sh | Calls finish_image_package_manifest_rpm at the correct point in the RPM image finalization flow. |
| acl/tests/kola_enforcing.yaml | Enforces a new kola test for package-manifest presence/behavior. |
| .pipelines/github-pr-validation.yml | Enables a pipeline parameter intended to run the new manifest generator tests in PR validation. |
Review details
- Files reviewed: 15/15 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Vince Perri (vinceaperri)
deleted the
user/vinceaperri/acl-package-manifest/add-os-manifest-spdx-json-2
branch
September 2, 2026 16:59
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
Change Log
Type of Change
Does this affect the image build?
Associated Issues
Test Methodology
Merge Checklist
All applicable boxes should be checked before merging