Skip to content

Conversation

@justus-camp-microsoft
Copy link
Contributor

In order to get to reproducible builds, we're going to need all nodes that currently download something at build time to allow for Nix to download them instead and then specify the path at which they've been downloaded. There are several nodes that don't currently have Local override request variants. I've started with download_openvmm_deps (renamed to resolve_openvmm_deps, but have also plumbed a --use-local-deps command line parameter to build-igvm for testing locally.

Copilot AI review requested due to automatic review settings November 11, 2025 21:02
Copilot finished reviewing on behalf of justus-camp-microsoft November 11, 2025 21:09
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds support for using locally-downloaded dependencies in the flowey build system as a step toward reproducible builds. The main change renames download_openvmm_deps to resolve_openvmm_deps and adds a LocalPath request variant alongside the existing Version variant. A new --use-local-deps CLI option is added to the build-igvm pipeline for local testing.

Key changes:

  • Renamed download_openvmm_deps module to resolve_openvmm_deps to reflect its dual purpose (download or resolve local paths)
  • Added LocalPath request variant with logic to resolve dependencies from local x64/aarch64 subdirectories
  • Added --use-local-deps and --custom-openvmm-deps CLI options to build-igvm pipeline for testing with local dependencies

Reviewed Changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
flowey/flowey_lib_hvlite/src/resolve_openvmm_deps.rs Adds LocalPath request variant and implementation to resolve dependencies from local filesystem paths with x64/aarch64 subdirectory structure
flowey/flowey_lib_hvlite/src/lib.rs Updates module declaration from download_openvmm_deps to resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/init_vmm_tests_env.rs Updates import and request references to use resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/init_openvmm_magicpath_openhcl_sysroot.rs Updates import and request references to use resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/init_openvmm_magicpath_linux_test_kernel.rs Updates import and request references to use resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/build_openhcl_initrd.rs Updates import and request references to use resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/build_openhcl_igvm_from_recipe.rs Updates import and request references to use resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/_jobs/cfg_versions.rs Adds LocalDependencyRequest struct and Local/Download request variants; routes local dependency requests to resolve_openvmm_deps
flowey/flowey_lib_hvlite/src/_jobs/cfg_common.rs Updates import to use resolve_openvmm_deps
flowey/flowey_hvlite/src/pipelines/vmm_tests.rs Changes cfg_versions request from struct to Download enum variant
flowey/flowey_hvlite/src/pipelines/restore_packages.rs Changes cfg_versions request from struct to Download enum variant
flowey/flowey_hvlite/src/pipelines/mod.rs Updates clippy lint attribute from cfg_attr to unconditional expect
flowey/flowey_hvlite/src/pipelines/custom_vmfirmwareigvm_dll.rs Changes cfg_versions request from struct to Download enum variant
flowey/flowey_hvlite/src/pipelines/checkin_gates.rs Changes cfg_versions request from struct to Download enum variant
flowey/flowey_hvlite/src/pipelines/build_igvm.rs Adds --use-local-deps and --custom-openvmm-deps CLI parameters; conditionally uses Local or Download cfg_versions request
flowey/flowey_hvlite/src/pipelines/build_docs.rs Changes cfg_versions request from struct to Download enum variant
.github/workflows/openvmm-pr.yaml Updates generated workflow step names from download_openvmm_deps to resolve_openvmm_deps
.github/workflows/openvmm-pr-release.yaml Updates generated workflow step names from download_openvmm_deps to resolve_openvmm_deps
.github/workflows/openvmm-ci.yaml Updates generated workflow step names from download_openvmm_deps to resolve_openvmm_deps
Comments suppressed due to low confidence (2)

flowey/flowey_lib_hvlite/src/resolve_openvmm_deps.rs:71

  • The error message refers to "Path requests" but the actual request variant is named LocalPath. Consider updating the error message for consistency: "Cannot specify both Version and LocalPath requests".
    flowey/flowey_lib_hvlite/src/resolve_openvmm_deps.rs:75
  • The error message refers to "Path request" but the actual request variant is named LocalPath. Consider updating the error message for consistency: "Must specify a Version or LocalPath request".

@github-actions
Copy link

@github-actions
Copy link

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.

1 participant