Skip to content

Update Microsoft Developer Control Plane to 0.27.0 - #20874

Merged
David Negstad (danegsta) merged 1 commit into
mainfrom
copilot/update-microsoft-developer-control-plane
Oct 10, 2026
Merged

David Negstad (danegsta) merged 1 commit into
mainfrom
copilot/update-microsoft-developer-control-plane

Conversation

Copilot AI commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Description

Manually updates DCP to the newly published 0.27.0 release because the dependency bot has not opened the update PR.

  • Versions: Bumps all seven platform packages from 0.26.5 to 0.27.0 in eng/Versions.props.
  • Dependency metadata: Updates eng/Version.Details.xml versions and source commit to cd36bfe59ac6d6c2a79600292f0b90affa294f89, matching the published package manifests.

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20874

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20874"

@github-actions github-actions Bot added the area-codeflow for labeling automated codeflow. intentionally a different color! label Oct 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'eng/Versions.props' selects ALL


Selection computed for commit 73e6294.

@danegsta David Negstad (danegsta) linked an issue Oct 10, 2026 that may be closed by this pull request
1 task done
@danegsta David Negstad (danegsta) added area-orchestrator and removed area-codeflow for labeling automated codeflow. intentionally a different color! labels Oct 10, 2026
@danegsta
David Negstad (danegsta) enabled auto-merge (squash) October 10, 2026 06:27
@danegsta
David Negstad (danegsta) merged commit 320ce8e into main Oct 10, 2026
1255 of 1264 checks passed
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 17.0 milestone Oct 10, 2026
Ankit Jain (radical) pushed a commit that referenced this pull request Nov 3, 2026
…21570) (#21608)

## Description

Mitigates #21570 (Windows hosted runner "lost communication"), tracked
in #21600.

**Repo lever found:** DCP 0.27 (bumped in #20874 on 2026-10-10) added
WSLc support. When no container runtime is configured, DCP probes
`wslc.exe` on every AppHost start. The current `windows-latest` images
(`windows-2025` and `windows-2025-vs2026`) install the latest WSL MSI.
Since WSL 3.0, that MSI puts `C:\Program Files\WSL\wslc.exe` on PATH. So
every DCP start on Windows CI now runs `wslc version`, `wslc info` and
`wslc network list`, and DCP kills the last one early ("Context expired,
stopping process"). actions/runner-images#14938 reports hosted Windows
workers freezing during WSL2 provisioning on the same image family.

This PR sets `ASPIRE_CONTAINER_RUNTIME=docker` for Windows test jobs in
`run-tests.yml` and for the Windows VS Code extension E2E jobs, using a
`GITHUB_ENV` step that only runs on Windows. With an explicit runtime,
DCP probes only that runtime. Docker is the only runtime these runners
use, and DCP already chooses it today.

## Evidence

**7-day bounded analysis.** Scope: main `ci.yml` attempt-1 jobs from 57
non-cancelled runs, about 19.4k jobs. 97 jobs carried the annotation
"The hosted runner lost communication with the server".
- 45 of 57 runs (79%) had at least one lost runner.
- All 97 losses were on `windows-latest`. None were on Linux or macOS.
- Every loss was in a test step: `Run extension E2E tests` 44, `Run
tests (Windows)` 52, `Run nuget dependent tests (Windows)` 1.
- Losses were declared 46–58 minutes into the job, 47 at the median. In
a sample of 12 lost jobs, the test step had started 1–4 minutes into the
job, so the worker stops about 45 minutes before GitHub declares the
loss. These shards normally finish in minutes, and the MTP `--timeout
20m` never fires.
- Losses happen only in projects that start DCP:

  | Project (Windows) | Lost / jobs |
  |---|---|
  | VS Code E2E (runs `aspire run`) | 44 / 1085 |
  | Aspire.Hosting.Tests | 16 / 399 |
  | Hosting.JavaScript | 7 / 57 |
  | Hosting.DevTunnels, Hosting.DotnetTool, Hosting.Java | 5 / 57 each |
  | Hosting.Dotnet | 4 / 57 |
  | Hosting.Azure, Hosting.Keycloak | 3 / 57 each |
  | Package tests (Windows) | 1 / 896 |
| Dashboard, Components, Azure client and other non-DCP projects | 0 /
57 each |

- No resource pressure appears in Windows heartbeats: memory about 20%
of 16 GB, C: about 80% with about 30 GB free.

**DCP invokes wslc on CI.** The uploaded DCP logs
(`logs-Hosting.JavaScript-windows-latest`, run 40196754950) contain:
```
Running WSLC command  C:\Program Files\WSL\wslc.exe version --format json
Running WSLC command  C:\Program Files\WSL\wslc.exe info --format json
Running WSLC command  C:\Program Files\WSL\wslc.exe network list --no-trunc --format json
Context expired, stopping process...  wslc.exe
```
`actions/runner-images` installs the latest WSL MSI
(`Install-WSL2.ps1`), and `microsoft/WSL/msipackage/package.wix.in`
installs `wslc.exe` and adds it to PATH. `windows-2022` does not install
WSL2.

**An explicit runtime stops the other probes.** Local harness with DCP
0.27.2, putting fake `docker`, `podman` and `wslc` on PATH and logging
each call:
- `dcp info` probes `docker --version` and `podman container ls`. The
wslc probe is Windows-only.
- `dcp info --container-runtime docker` probes only `docker --version`.

Aspire passes `ASPIRE_CONTAINER_RUNTIME` to DCP as `--container-runtime`
(`DcpHost`, `DcpDependencyCheck`).

**Validation plan:** this PR's Windows DCP logs should show no
`wslc.exe` invocations, and the loss rate is compared across this PR's
CI runs. Results will be posted below.

## Checklist

- Is this feature complete?
  - [x] Yes. Ready to ship.
  - [ ] No. Follow-up changes expected.
- Are you including unit tests for the changes and scenario tests if
relevant?
  - [ ] Yes
- [x] No. This is a workflow-only change. Validation is CI evidence: DCP
logs and loss rate. actionlint passes. No tests are disabled and no
retries are added.
- Did you add public API?
  - [ ] Yes
  - [x] No
- Does the change make any security assumptions or guarantees?
  - [ ] Yes
  - [x] No

**🤖 Posted by AspireAgent (AI Agent)**

Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for WSLC

3 participants