Skip to content

Isolate V8 toolchain discovery from inherited Visual Studio state #168

Closed

Description

@wieslawsoltes

Problem

The Windows native runtime package job prepares Dawn and ANGLE before invoking scripts/build-native-engine-runtime.ps1. Those actions intentionally leave the outer process in an initialized x64 Visual Studio environment. The V8/depot_tools bootstrap inherits that state, then Chromium's GN setup requests its own x86 environment:

vcvarsall.bat amd64_x86 10.0.26100.0
... failed with error 255

Exact stacked evidence: NuGet packages run 35123381474, attempt 2, job 104896221550. The preceding Dawn and ANGLE preparation succeeded; V8 GN failed in build/toolchain/win/setup_toolchain.py.

Scope

  • Give only the V8/depot_tools subprocess chain a clean Windows child environment.
  • Restore PATH from __VSCMD_PREINIT_PATH and remove inherited Visual Studio/compiler/SDK variables before V8 checkout, GN generation, and Ninja.
  • Preserve unrelated runner, package, and WebScene variables.
  • Leave the caller/outer environment and the later native WebScene x64 build environment unchanged.
  • Fail closed if an initialized developer environment does not expose its original path.
  • Add meaningful regression tests for child isolation, caller preservation, unrelated-variable preservation, and fail-closed behavior.
  • Re-run the cumulative three-RID package/evidence/package-inventory/consumer matrix.

Acceptance

  • Regression tests pass locally and in CI.
  • Exact Windows package job passes Dawn → ANGLE → V8 → native runtime build/tests.
  • Required and candidate evidence include osx-arm64, linux-x64, and win-x64.
  • Release package inventory and installed-package consumer tests pass for all three RIDs.

Blocks #161 and native Stack #157. Related to #79, #80, #165, #166, and draft consolidation PR #76.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions