Skip to content

[net11.0] Update dependencies to preview.3 build 26202.110#34852

Merged
PureWeen merged 3 commits intonet11.0from
fix/update-deps-to-p3-26202
Apr 14, 2026
Merged

[net11.0] Update dependencies to preview.3 build 26202.110#34852
PureWeen merged 3 commits intonet11.0from
fix/update-deps-to-p3-26202

Conversation

@PureWeen
Copy link
Copy Markdown
Member

@PureWeen PureWeen commented Apr 7, 2026

Update all dotnet/dotnet, Android, and macios dependencies to match the release/11.0.1xx-preview3 branch versions (build 26202.110).

Changes

  • SDK: 11.0.100-preview.3.26166.11111.0.100-preview.3.26202.110
  • Runtime: 11.0.0-preview.3.26166.11111.0.0-preview.3.26202.110
  • Android SDK: 36.1.99-ci.main.21736.99.0-preview.3.10
  • macios SDKs: 26.2.11547-net11-p326.2.11587-net11-p3
  • Arcade/Helix: 11.0.0-beta.26166.11111.0.0-beta.26202.110

Why

The existing Maestro bump PR (#34552) moves to preview.4, which has incompatible dependencies (_SystemNative_IsATty link error from runtime/macios mismatch). This PR stays on preview.3 using the same proven versions as the release/11.0.1xx-preview3 branch.

Additional fix

  • Fix CS8602 nullable dereference in WebViewHandler.iOS.cs (stricter analysis in newer SDK)

Copilot AI review requested due to automatic review settings April 7, 2026 16:01
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

🚀 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/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34852

Or

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

Copy link
Copy Markdown
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

Updates the net11.0 branch dependency set to align with release/11.0.1xx-preview3 (build 26202.110), plus a small iOS handler fix and some build/automation plumbing updates.

Changes:

  • Bumps .NET SDK/runtime, Android SDK, macios SDKs, and Arcade/Helix versions across global.json, Versions.props, and Version.Details.xml (and updates related NuGet feeds).
  • Fixes a nullable dereference path in WebViewHandler.iOS.cs when iterating WKWebsiteDataRecords.
  • Extends build and Renovate pipeline infrastructure (new warnNotAsError plumbing; Renovate template updates).

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/Core/src/Handlers/WebView/WebViewHandler.iOS.cs Avoids null deref when reading website data records/display names during cookie deletion.
NuGet.config Updates Dependency Flow-managed feeds for new Android/macios inputs.
global.json Updates required .NET SDK/toolset versions for net11.0 preview.3 build 26202.110.
eng/Versions.props Updates pinned package/toolset versions (SDK/runtime/Android/macios/Arcade).
eng/Version.Details.xml Updates dependency flow metadata (versions + SHAs) for updated inputs.
eng/common/tools.sh Adds plumbing to pass a “not as error” warning list into MSBuild invocation.
eng/common/tools.ps1 Same as above for PowerShell builds.
eng/common/build.sh Adds CLI argument parsing/help for --warnNotAsError.
eng/common/build.ps1 Adds parameter/help for -warnNotAsError.
eng/common/renovate.env Updates Renovate environment configuration (including allowed commands).
eng/common/core-templates/stages/renovate.yml Extends Renovate pipeline template to support multi-repo scenarios / SDL exclusion.
eng/common/core-templates/job/renovate.yml Updates Renovate job to support multi-checkout and improved logging.
eng/common/core-templates/job/source-index-stage1.yml Sets skipComponentGovernanceDetection for the stage1 job.

${{ if ne(parameters.arcadeRepoResource, 'self') }}:
sourceRepositoriesToScan:
exclude:
- repository: ${{ parameters.arcadeRepoResource }}
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

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

The exclude list item is mis-indented under sourceRepositoriesToScan. As written, - repository: ... is at the same indentation level as exclude:, which makes the YAML invalid and will break the pipeline template. Indent the list item under exclude:.

Suggested change
- repository: ${{ parameters.arcadeRepoResource }}
- repository: ${{ parameters.arcadeRepoResource }}

Copilot uses AI. Check for mistakes.
sourceAnalysisPool: ${{ parameters.sdlPool }}
# When repos that aren't onboarded to Arcade use this template, they set the
# arcadeRepoResource parameter to point to their Arcade repo resource. In that case,
# Aracde will be excluded from SDL analysis.
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

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

Typo in comment: "Aracde" should be "Arcade".

Suggested change
# Aracde will be excluded from SDL analysis.
# Arcade will be excluded from SDL analysis.

Copilot uses AI. Check for mistakes.
Comment thread eng/common/renovate.env
Comment on lines +41 to +42
# Allow all commands for post-upgrade commands.
export RENOVATE_ALLOWED_COMMANDS='[".*"]'
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

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

RENOVATE_ALLOWED_COMMANDS is set to allow any command (".*"). This effectively removes the safety boundary for postUpgradeTasks and can allow arbitrary command execution in the Renovate pipeline if the Renovate config is changed or compromised. Restrict this to an allow-list of known-safe commands (or remove it if not required).

Suggested change
# Allow all commands for post-upgrade commands.
export RENOVATE_ALLOWED_COMMANDS='[".*"]'
# Do not allow arbitrary post-upgrade commands by default. If specific
# commands are required in the future, add a narrow allow-list here.

Copilot uses AI. Check for mistakes.
Comment thread eng/Version.Details.xml Outdated
Comment on lines +37 to +51
<Dependency Name="Microsoft.MacCatalyst.Sdk.net10.0_26.2" Version="26.2.10233" CoherentParentDependency="Microsoft.MacCatalyst.Sdk.net11.0_26.2">
<Uri>https://github.com/dotnet/macios</Uri>
<Sha>57976277a6498b347ab10e9fe79daf6d96d72aba</Sha>
<Sha>6542b70adb1d4f3e068e3615d8c63ca9e4dd226a</Sha>
</Dependency>
<Dependency Name="Microsoft.macOS.Sdk.net10.0_26.2" Version="26.2.10223" CoherentParentDependency="Microsoft.macOS.Sdk.net11.0_26.2">
<Dependency Name="Microsoft.macOS.Sdk.net10.0_26.2" Version="26.2.10233" CoherentParentDependency="Microsoft.macOS.Sdk.net11.0_26.2">
<Uri>https://github.com/dotnet/macios</Uri>
<Sha>57976277a6498b347ab10e9fe79daf6d96d72aba</Sha>
<Sha>6542b70adb1d4f3e068e3615d8c63ca9e4dd226a</Sha>
</Dependency>
<Dependency Name="Microsoft.iOS.Sdk.net10.0_26.2" Version="26.2.10223" CoherentParentDependency="Microsoft.iOS.Sdk.net11.0_26.2">
<Dependency Name="Microsoft.iOS.Sdk.net10.0_26.2" Version="26.2.10233" CoherentParentDependency="Microsoft.iOS.Sdk.net11.0_26.2">
<Uri>https://github.com/dotnet/macios</Uri>
<Sha>57976277a6498b347ab10e9fe79daf6d96d72aba</Sha>
<Sha>6542b70adb1d4f3e068e3615d8c63ca9e4dd226a</Sha>
</Dependency>
<Dependency Name="Microsoft.tvOS.Sdk.net10.0_26.2" Version="26.2.10223" CoherentParentDependency="Microsoft.tvOS.Sdk.net11.0_26.2">
<Dependency Name="Microsoft.tvOS.Sdk.net10.0_26.2" Version="26.2.10233" CoherentParentDependency="Microsoft.tvOS.Sdk.net11.0_26.2">
<Uri>https://github.com/dotnet/macios</Uri>
<Sha>57976277a6498b347ab10e9fe79daf6d96d72aba</Sha>
<Sha>6542b70adb1d4f3e068e3615d8c63ca9e4dd226a</Sha>
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

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

Version.Details.xml updates the net10 macios SDK dependencies to 26.2.10233, but eng/Versions.props still pins the corresponding *net100_262PackageVersion properties to 26.2.10223. This version skew can cause restores/builds to use different SDK versions than what dependency flow expects. Update eng/Versions.props net10 macios package versions to match (or revert these dependency entries if the bump is unintended).

Copilot uses AI. Check for mistakes.
Comment on lines +114 to +127
# In multi-checkout (without custom paths), Azure DevOps places each repo under
# $(Build.SourcesDirectory)/<repoName>. selfRepoName must be provided in that case.
- name: selfRepoPath
readonly: true
${{ if eq(parameters.arcadeRepoResource, 'self') }}:
value: '$(Build.SourcesDirectory)'
${{ else }}:
value: '$(Build.SourcesDirectory)/${{ parameters.selfRepoName }}'
- name: arcadeRepoPath
readonly: true
${{ if eq(parameters.arcadeRepoResource, 'self') }}:
value: '$(Build.SourcesDirectory)'
${{ else }}:
value: '$(Build.SourcesDirectory)/${{ parameters.arcadeRepoName }}'
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

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

When arcadeRepoResource != 'self', selfRepoName/arcadeRepoName default to empty strings, which makes selfRepoPath/arcadeRepoPath resolve to $(Build.SourcesDirectory)/ and can lead to confusing file-not-found failures. Add a validation/guard (e.g., fail early with a clear error) requiring these parameters when multi-checkout is enabled.

Copilot uses AI. Check for mistakes.
@PureWeen
Copy link
Copy Markdown
Member Author

PureWeen commented Apr 7, 2026

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 2 pipeline(s).

…36.99.0-preview.3.10, macios to 11588

- dotnet/dotnet: darc update-dependencies --id 309238 (build 20260403.7,
  release/11.0.1xx-preview3, SDK 11.0.100-preview.3.26203.107)
- dotnet/android: 36.1.99-ci.main.217 -> 36.99.0-preview.3.10
- dotnet/macios: 26.2.11547 -> 26.2.11588-net11-p3 (matches workload-versions#766)
- global.json tools.dotnet bumped to 26203.107 for bgen runtime compatibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen PureWeen force-pushed the fix/update-deps-to-p3-26202 branch from ffc292d to 281bb5e Compare April 7, 2026 19:55
Keep android-36 in the list (without IsDefault), add android-36.1 with
IsDefault=True so CI installs it, and add android-37 for forward-compat.

Supersedes #34805.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen
Copy link
Copy Markdown
Member Author

PureWeen commented Apr 8, 2026

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 2 pipeline(s).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@PureWeen
Copy link
Copy Markdown
Member Author

PureWeen commented Apr 8, 2026

/azp run maui-pr-uitests, maui-pr-devicetests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 2 pipeline(s).

@PureWeen PureWeen merged commit 0ab6841 into net11.0 Apr 14, 2026
201 of 216 checks passed
@PureWeen PureWeen deleted the fix/update-deps-to-p3-26202 branch April 14, 2026 18:56
PureWeen pushed a commit that referenced this pull request Apr 15, 2026
Without -buildVersion, xcodebuild -downloadPlatform iOS downloads the
latest available simulator runtime, which may not match the selected
Xcode's SDK. On agents with Xcode 26.2, this installs iOS 26.3.1
instead of iOS 26.2, causing actool/ibtool failures:

  actool: No simulator runtime version from ["22F77"] available
  to use with iphonesimulator SDK version 23C53

  ibtool: iOS 26.2 Platform Not Installed

This broke all 17 macOS CI jobs on net11.0 after the SDK bump in
PR #34852.

Fix: Pin -buildVersion to ${MAJOR}.${MINOR} for Xcode 26.x (where
iOS version matches Xcode version). Include -architectureVariant
universal for x64 simulator support on Apple Silicon agents. Keep
unpinned download for pre-26 Xcode where version mapping differs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github-actions bot added a commit that referenced this pull request Apr 16, 2026
Without -buildVersion, xcodebuild -downloadPlatform iOS downloads the
latest available simulator runtime, which may not match the selected
Xcode's SDK. On agents with Xcode 26.2, this installs iOS 26.3.1
instead of iOS 26.2, causing actool/ibtool failures:

  actool: No simulator runtime version from ["22F77"] available
  to use with iphonesimulator SDK version 23C53

  ibtool: iOS 26.2 Platform Not Installed

This broke all 17 macOS CI jobs on net11.0 after the SDK bump in
PR #34852.

Fix: Pin -buildVersion to ${MAJOR}.${MINOR} for Xcode 26.x (where
iOS version matches Xcode version). Include -architectureVariant
universal for x64 simulator support on Apple Silicon agents. Keep
unpinned download for pre-26 Xcode where version mapping differs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jfversluis pushed a commit that referenced this pull request Apr 16, 2026
…4978)

## Problem

All 17 macOS CI jobs on `net11.0` are failing after the SDK bump in
#34852. The provisioning script runs `xcodebuild -downloadPlatform iOS`
**without pinning a version**, which downloads the **latest available**
simulator runtime (iOS 26.3.1) instead of the one matching the selected
Xcode 26.2.

The macios SDK `26.2.11588-net11-p3` expects iphonesimulator SDK `23C53`
(iOS 26.2), but the installed simulator is iOS 26.3.1 (`23D8133`). This
causes:

```
actool: No simulator runtime version from ["22F77"] available to use with iphonesimulator SDK version 23C53
ibtool: iOS 26.2 Platform Not Installed
```

## Evidence

From build
[1379721](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1379721)
(`Install Simulator Runtimes` log):
1. First attempt: `Unable to connect to simulator` (exit code 70)
2. Script deletes all runtimes, retries
3. Retry installs **iOS 26.3.1** (not iOS 26.2)
4. Every macOS build/test job fails downstream

The Xcode 26.0 case already had this fix — it explicitly pins
`-buildVersion 26.0`. The bug was only in the `else` branch for Xcode
26.1+.

## Fix

Pin `-buildVersion ${MAJOR}.${MINOR}` for all Xcode 26.x versions (where
iOS version matches Xcode version). Include `-architectureVariant
universal` for x64 simulator support on Apple Silicon agents. Keep
unpinned download for pre-26 Xcode where the version mapping differs
(Xcode 16.x → iOS 18.x).

## Reviewed by

Approach validated by 3 independent AI models (Sonnet 4.6, Opus 4.6,
Codex 5.3) — all agreed on the fix and flagged the two concerns
addressed in the final version:
1. ✅ Include `-architectureVariant universal` for all 26.x (not just
26.0)
2. ✅ Guard with `MAJOR == 26` to avoid breaking pre-26 Xcode branches

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
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