feat(source-files): wire archive overlays into prep-sources with post-overlay hash tracking#276
Open
Tonisal-byte wants to merge 5 commits into
Open
feat(source-files): wire archive overlays into prep-sources with post-overlay hash tracking#276Tonisal-byte wants to merge 5 commits into
Tonisal-byte wants to merge 5 commits into
Conversation
This was referenced Jul 13, 2026
Tonisal-byte
force-pushed
the
asalinas/tarball-overlays-1
branch
from
July 14, 2026 17:19
c8b6390 to
0a209cc
Compare
Tonisal-byte
force-pushed
the
asalinas/tarball-overlays-2
branch
from
July 15, 2026 21:25
bae831d to
8635511
Compare
Tonisal-byte
marked this pull request as ready for review
July 15, 2026 23:14
Contributor
There was a problem hiding this comment.
Pull request overview
This PR wires archive-scoped overlays into the prep-sources pipeline: archives modified by overlays are deterministically repacked, their corresponding sources entries are re-hashed, and configuration can record/validate expected post-overlay hashes via a new origin.type = "overlay" source-file origin.
Changes:
- Add new
OriginTypeOverlay/ schema enum value"overlay"and associated config validation rules for overlay-originsource-filesentries. - Apply archive overlays during
prep-sources, repack modified archives, and rehash only the affectedsourcesentries; additionally validate configured post-overlay hashes during full prep. - Adjust Fedora lookaside extraction to avoid skipping files that are not actually fetched by
FetchFiles(e.g., overlay-origin entries).
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| schemas/azldev.schema.json | Adds "overlay" to the origin.type enum in the JSON schema. |
| scenario/snapshots/TestSnapshotsContainer_config_generate-schema_stdout_1.snap | Updates schema snapshot output for the new enum value. |
| scenario/snapshots/TestSnapshots_config_generate-schema_stdout_1.snap | Updates schema snapshot output for the new enum value. |
| internal/providers/sourceproviders/sourcemanager.go | Skips downloads for overlay-origin refs; refactors provider attempts into helper; adds internal guard for overlay origin in download path. |
| internal/providers/sourceproviders/fedorasourceprovider.go | Avoids skipping upstream lookaside downloads for non-fetched origin types (e.g., overlay). |
| internal/projectconfig/fingerprint_test.go | Improves fingerprint tag parsing/validation to account for hashstructure tag options. |
| internal/projectconfig/configfile.go | Adds overlay-origin validation rules and calls archive-overlay/origin validation during config validation. |
| internal/projectconfig/configfile_test.go | Adds validation coverage for archive overlay requiring an overlay-origin entry. |
| internal/projectconfig/component.go | Introduces OriginTypeOverlay, OriginType.IsFetched, and ValidateArchiveOverlayOrigins. |
| internal/app/azldev/core/sources/sourceprep.go | Applies archive overlays first, tracks repacked archives, rehashes corresponding sources entries, and validates configured post-overlay hashes. |
| internal/app/azldev/core/sources/sourceprep_test.go | Adds end-to-end tests around archive overlay repacking + sources rehashing behavior. |
| internal/app/azldev/core/sources/archiveoverlays.go | Implements batching of archive overlays per archive (single extract/modify/repack cycle per archive). |
| internal/app/azldev/core/sources/archiveoverlays_test.go | Adds coverage for archive overlay glob semantics and end-to-end behavior via PrepareSources. |
| internal/app/azldev/core/sources/archiveoverlays_internal_test.go | Adds direct unit coverage for archive overlay grouping behavior. |
| internal/app/azldev/core/components/resolver.go | Validates archive overlay/origin invariants after config resolution/overlay-file expansion. |
| docs/user/reference/config/overlays.md | Documents drift-protection requirement for archive overlays via overlay-origin source-files. |
| docs/user/reference/config/components.md | Documents the new "overlay" origin type and the workflow for recording post-overlay hashes. |
added 4 commits
July 16, 2026 18:10
Add the archive extract/apply/repack engine plus the ComponentOverlay 'archive' field, validation, and fingerprint handling. Extends internal/utils/archive with compression sniffing, ExtractAuto, and strict unsupported-entry handling. Pipeline wiring and hash tracking follow in a subsequent change.
…-overlay hash tracking Apply archive overlays in the source-prep pipeline, rehash repacked archives in the 'sources' file, and add the 'overlay' source-file origin type that records and validates the expected post-overlay hash.
Tonisal-byte
force-pushed
the
asalinas/tarball-overlays-2
branch
from
July 16, 2026 18:10
175703d to
08ddb93
Compare
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.
Wires archive-scoped overlays into the source preparation pipeline.
This applies archive overlays during prep-sources, repacks modified archives, refreshes their sources file hashes, and adds origin.type = "overlay" for recording expected post-overlay archive hashes. It also ensures overlay-origin source files are not downloaded separately and validates stale configured hashes during full source prep.
Example: