Skip to content

test/images with tailor [3]: resolve base includes and track fragment dependencies - #898

Draft
bfjelds (bfjelds) wants to merge 1 commit into
user/bfjelds/tailor-execution-signingfrom
user/bfjelds/tailor-fragment-dependencies
Draft

bfjelds (bfjelds) wants to merge 1 commit into
user/bfjelds/tailor-execution-signingfrom
user/bfjelds/tailor-fragment-dependencies

Conversation

@bfjelds

@bfjelds bfjelds (bfjelds) commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Resolve includes before base merging and hash the merged fragment dependency list once for incremental builds.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6501a6e2-9ece-44f9-a91a-4d8e0c0e6d07
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
1 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@bfjelds bfjelds (bfjelds) changed the title tailor: resolve base includes and track fragment dependencies test/images with tailor [3]: resolve base includes and track fragment dependencies Oct 26, 2026
@bfjelds
bfjelds (bfjelds) requested a balanced review from Copilot October 26, 2026 19:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Base includes declared directly in image.yaml are rejected during typed deserialization before the new resolver runs.

1 open issue
What changed in this PR

Part 3 of the Tailor migration adds base-fragment include resolution and per-cell dependency tracking for incremental image builds.

Changes:

  • Resolve base: includes before fragment merging and report them in explain plans.
  • Merge fragment extraDependencies into each cell’s cache inputs.
  • Add regression tests and document dependency-merging behavior.
File Description
tools/​tailor/​docs/​reference/​image-yaml.md Documents fragment dependency merging and path resolution.
tools/​tailor/​crates/​tailor/​src/​run.rs Initializes dependencies for conversion cells.
tools/​tailor/​crates/​tailor-exec/​src/​executor.rs Updates test cells with the dependency field.
tools/​tailor/​crates/​tailor-exec/​src/​arg_builder.rs Updates argument-builder test fixtures.
tools/​tailor/​crates/​tailor-core/​src/​selector.rs Updates selector test fixtures.
tools/​tailor/​crates/​tailor-core/​src/​orchestrator.rs Propagates and hashes merged cell dependencies.
tools/​tailor/​crates/​tailor-core/​src/​domain.rs Adds the merged dependency list to cells.
tools/​tailor/​crates/​tailor-config/​src/​render.rs Resolves base includes, merges dependencies, and adds regression coverage.
tools/​tailor/​crates/​tailor-config/​src/​fragment.rs Accepts fragment-level extra dependencies.

Review effort: Balanced

if let Some(mut value) = fragment.doc.base.clone() {
// Mirror config:'s $include handling (resolved before merge, see render_cell above) so a
// base: fragment can splice a shared snippet too, instead of only config: being able to.
include::resolve_includes(&mut value, image_dir)?;

This branch has not been deployed

No deployments
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.

2 participants